mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-13 01:59:28 +00:00
Merge branch 'ci' of https://github.com/FH-Complete/FHC-Core into ci
This commit is contained in:
+6
-4
@@ -9,11 +9,13 @@ documents/
|
||||
.settings
|
||||
.project
|
||||
.buildpath
|
||||
tests/codeception.yml
|
||||
tests/codeception/api.suite.yml
|
||||
tests/codeception/functional.suite.yml
|
||||
tests/codeception/acceptance.suite.yml
|
||||
tests/codeception/codeception.yml
|
||||
tests/codeception/tests/api.suite.yml
|
||||
tests/codeception/tests/functional.suite.yml
|
||||
tests/codeception/tests/acceptance.suite.yml
|
||||
tests/codeception/_support/_generated
|
||||
tests/codeception/_output/*
|
||||
!/tests/codeception/_output/.placeholder
|
||||
/submodules/d3
|
||||
composer.lock
|
||||
bin
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
[submodule "submodules/tablesorter"]
|
||||
path = submodules/tablesorter
|
||||
url = https://github.com/christianbach/tablesorter.git
|
||||
[submodule "submodules/bootstrap"]
|
||||
path = submodules/bootstrap
|
||||
url = https://github.com/twbs/bootstrap.git
|
||||
|
||||
Executable
+63
@@ -0,0 +1,63 @@
|
||||
# Change Log
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- **[FAS]** Zusätzliches Feld für Uhrzeit bei Abschlussprüfung
|
||||
- **[FAS]** Reihungstest Dropdown zeigt verfügbare/belegte Plätze an
|
||||
- **[CORE]** Reihungstest Punkteübernahme oder Prozentpunkte ist konfigurierbar
|
||||
- **[CIS]** LVPlan Export für Excel
|
||||
- **[FAS]** Termine Karteireiter im FAS zeigt die Anmerkung aus dem LVPlan an
|
||||
- **[CIS]** Onlinebewerbungstool greift auf mehrsprachige Statusbezeichnungen zu.
|
||||
|
||||
### Changed
|
||||
- **[FAS]** Dokumente Menü im FAS neu sortiert um den Lebenszyklus des Studierenden abzubilden
|
||||
- **[CORE]** LVPlan Update Mail ist nun zweisprachig Deutsch/Englisch
|
||||
- **[FAS]** Prüfungen im FAS werden nur noch vom aktuell ausgewählten Studiensemester angezeigt. Umschalten auf volle Ansicht möglich
|
||||
- **[CIS]** LVPlan Begrenzung der 4er Blockung aufgehoben.
|
||||
- **[CIS]** Im Menü 'Zeitsperren' Link zu Resturlaubsübersicht entfernt. Falls benötigt Verlinkung über CMS möglich.
|
||||
- **[CORE]** Removed NOT NULL constraint on 'verfasser\_uid' from public.tbl\_notiz
|
||||
|
||||
### Updateinfo
|
||||
- **[FAS]** Für Lehraufträge muss eine Unoconv-Vorlage erstellt werden, da der für xsl-fo notwendige Seitenumbruch-Tag aus dem RDF entfernt wurde.
|
||||
- **[FAS]** Mehrsprachigkeitsspalte tbl_status.bezeichnung_mehrsprachig wird durch das Updatescript automatisch in den ersten beiden Sprachen mit der status_kurzbz vorbefüllt. Übersetzungen sind anzupassen.
|
||||
|
||||
## [3.1.0] - 2015-11-12
|
||||
### Added
|
||||
|
||||
- **[FAS]** Bei Noten können zusätzlich Punkte gespeichert werden. Notenschlüssel für Gesamtnote kann hinterlegt werden
|
||||
- **[FAS]** Anwesenheiten von Studierenden können erfasst werden
|
||||
- **[FAS]** Vertragsverwaltung bei Mitarbeiter
|
||||
- **[FAS]** Dokumente im FAS können mit SHIFT bzw STRG statt als PDF auch als DOC oder ODT erstellt werden
|
||||
- **[BERECHTIGUNG]** system/changeoutputformat Legt fest ob Dokumente als DOC/ODT exportiert werden dürfen
|
||||
- **[FAS]** Termine Karteireiter im FAS zeigt den LVPlan von Studierenden/Lehrveranstaltungen
|
||||
- **[FAS]** Bereits verplante Lektoren können vom FAS aus, aus dem LVPlan gelöscht werden. Zusätzlich wird im FAS angezeigt ob dieser Lektor bereits verplant ist
|
||||
- **[FAS]** Bereits verplante Gruppen können direkt vom FAS heraus aus dem LV-Plan gelöscht werden wenn diese bereits verplant wurden.
|
||||
- **[TEMPUS]** Drop auf Lehrstunde Feature für 2 Gruppen die zur selben Zeit im gleichen Raum unterricht haben (Setzt UNR gleich damit es nicht als kollision angezeigt wird)
|
||||
- **[TEMPUS]** Option zum Anzeigen von allen Einträgen damit auch Incominggruppen und Gruppen aus anderen Studiengängen sichtbar sind
|
||||
- **[FAS]** Bei Notizen können jetzt zusätzlich Dokumente hochgeladen werden
|
||||
- **[CORE]** Bei Dokumentenvorlagen können nun Style und content.xml auf einmal erfasst werden, Dokumente können deaktiviert werden, Eigene GUI im Vilesci zum Verwalten der Dokumentenvorlagen
|
||||
- **[CORE]** Mehrsprachigkeit bei diversen Tabellen (Dokumente, ZGV, ...) hinzugefügt
|
||||
|
||||
### Fixed
|
||||
- **[TEMPUS]** Kollisionsfreie User werden in Verbandsansicht nicht mehr als Kollision angezeigt
|
||||
|
||||
### Changed
|
||||
- **[FAS]** Stundenobergrenze für Lektoren kann jetzt pro Organisationseinheit festgelegt werden. (warn_semesterstunden_frei/fix tbl_organisationseinheit)
|
||||
- **[BERECHTIGUNG]** lv-plan/gruppenentfernen Lektorenänderung: Lektoren die bereits verplant sind können jetzt auch dann direkt im FAS geändert werden, wenn dadurch eine Kollision entsteht. Vorraussetzung dafür ist, dass ignore_kollision true ist. Wenn ignore_kollision false ist, dann ist die Lektorenänderung nicht mehr möglich. Vorher wurde der Lektor in diesem Fall nur im FAS geändert aber nicht im LVPlan.
|
||||
- **[FAS]** Ausstellungsstaat der ZGV wird jetzt getrennt für Bachelor und Master erfasst
|
||||
|
||||
|
||||
## [3.0.0] - 2015-02-13
|
||||
### Added
|
||||
|
||||
- **[CORE]** Studienordnungen / Studienpläne
|
||||
- **[CORE]** Module
|
||||
- **[CIS]** CIS Redesign
|
||||
- **[CORE]** Unterstützung für Addons
|
||||
- **[FAS]** Notizsystem
|
||||
|
||||
### Fixed
|
||||
|
||||
- **[CORE]** Diverse Bugfixes
|
||||
@@ -1,4 +1,7 @@
|
||||
# FH-Complete
|
||||
|
||||
[](http://phpci.fhcomplete.org/project/view/1)
|
||||
|
||||
* [FH-Complete Homepage](http://www.fhcomplete.org)
|
||||
* [Wiki](http://fhcomplete.technikum-wien.at/dokuwiki/)
|
||||
* [Changelog](CHANGELOG.md)
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*/
|
||||
/**
|
||||
* Initialisierung des Addons
|
||||
*/
|
||||
?>
|
||||
if(typeof addon =='undefined')
|
||||
var addon=Array();
|
||||
|
||||
addon.push(
|
||||
{
|
||||
init: function(page, params)
|
||||
{
|
||||
// Diese Funktion wird nach dem Laden der Seite im CIS aufgerufen
|
||||
|
||||
/*
|
||||
switch(page)
|
||||
{
|
||||
case 'cis/private/tools/zeitaufzeichnung.php':
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
*/
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*/
|
||||
/**
|
||||
* Initialisierung des Addons
|
||||
*/
|
||||
?>
|
||||
if(typeof addon =='undefined')
|
||||
var addon=Array();
|
||||
|
||||
addon.push(
|
||||
{
|
||||
init: function(page, params)
|
||||
{
|
||||
// Diese Funktion wird nach dem Laden der Seite im Vilesci aufgerufen
|
||||
|
||||
/*
|
||||
switch(page)
|
||||
{
|
||||
case 'vilesci/lehre/lehrveranstaltung.php':
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
*/
|
||||
}
|
||||
});
|
||||
@@ -508,14 +508,10 @@ $config['proxy_ips'] = '';
|
||||
| Autoload Custom Controllers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
Don't work so sometime delete this*/
|
||||
function __autoload($class)
|
||||
{
|
||||
| It's working, so don't delete this :D
|
||||
*/
|
||||
spl_autoload_register(function ($class) {
|
||||
if (substr($class,0,3) !== 'CI_' && substr($class,0,4) !== 'FHC_')
|
||||
{
|
||||
if (file_exists($file = APPPATH . 'core/' . $class . '.php'))
|
||||
{
|
||||
require_once $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (file_exists($file = APPPATH . 'core/' . $class . '.php'))
|
||||
require_once $file;
|
||||
});
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| FH-Complete Constants
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These constants are used for internal messages. It are also be used
|
||||
| and translated in the language files.
|
||||
|
|
||||
*/
|
||||
define('FHC_SUCCESS', 0); // General Success Message
|
||||
define('FHC_ERROR', 1); // General Error Message
|
||||
define('FHC_MODEL_ERROR', 2); // Model Error
|
||||
define('FHC_DB_ERROR', 3); // Database Error
|
||||
define('FHC_NODBTABLE', 4); // No DB-Table is set
|
||||
define('FHC_NORIGHT', 5); // No rights
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| File and Directory Modes
|
||||
@@ -75,6 +93,7 @@ define('SHOW_DEBUG_BACKTRACE', TRUE);
|
||||
*/
|
||||
define('EXIT_SUCCESS', 0); // no errors
|
||||
define('EXIT_ERROR', 1); // generic error
|
||||
define('EXIT_MODEL', 2); // model error
|
||||
define('EXIT_CONFIG', 3); // configuration error
|
||||
define('EXIT_UNKNOWN_FILE', 4); // file not found
|
||||
define('EXIT_UNKNOWN_CLASS', 5); // unknown class
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
|
||||
$config['fhc_version'] = '3.2';
|
||||
|
||||
|
||||
// status return message codes
|
||||
define('FHC_SUCCESS', 0);
|
||||
define('FHC_ERR_GENERAL', 1);
|
||||
$config['fhc_acl'] = array
|
||||
(
|
||||
'public.tbl_person' => 'basis/person',
|
||||
'public.tbl_prestudent' => 'basis/person',
|
||||
'public.tbl_organisationseinheit' => 'basis/organisationseinheit'
|
||||
,
|
||||
'public.tbl_sprache' => 'admin'
|
||||
);
|
||||
|
||||
@@ -119,7 +119,8 @@ $config['rest_auth'] = 'basic';
|
||||
|
|
||||
| Is login required and if so, the user store to use
|
||||
|
|
||||
| '' Use config based users or wildcard testing
|
||||
| '' Use config based users or wildcard testing, only for testing purpose
|
||||
| it would be very unsecure to let unset in a production environment
|
||||
| 'ldap' Use LDAP authentication
|
||||
| 'library' Use a authentication library
|
||||
|
|
||||
@@ -139,13 +140,16 @@ $config['auth_source'] = 'library';
|
||||
| In other cases override the function _perform_library_auth in your controller
|
||||
|
|
||||
| For digest authentication the library function should return already a stored
|
||||
| md5(username:restrealm:password) for that username
|
||||
|
|
||||
| e.g: md5('admin:REST API:1234') = '1e957ebc35631ab22d5bd6526bd14ea2'
|
||||
| password for that username, even if it is hashed
|
||||
|
|
||||
*/
|
||||
$config['auth_library_class'] = 'FHC_Auth';
|
||||
$config['auth_library_function'] = 'auth';
|
||||
|
||||
// rest_auth is basic
|
||||
$config['auth_library_function'] = 'basicAuthentication';
|
||||
|
||||
// rest_auth is digest
|
||||
//$config['auth_library_function'] = 'digestAuthentication';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -211,7 +215,7 @@ $config['auth_override_class_method_http']['Kontakt']['kontaktPerson']['get'] =
|
||||
| Array of usernames and passwords for login, if ldap (even library) is configured this is ignored
|
||||
|
|
||||
*/
|
||||
$config['rest_valid_logins'] = ['admin' => '1234', 'test' => 'test'];
|
||||
//$config['rest_valid_logins'] = ['admin' => '1234', 'test' => 'test'];
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -228,7 +232,7 @@ $config['rest_valid_logins'] = ['admin' => '1234', 'test' => 'test'];
|
||||
| restrict certain methods to IPs in your whitelist
|
||||
|
|
||||
*/
|
||||
$config['rest_ip_whitelist_enabled'] = TRUE;
|
||||
$config['rest_ip_whitelist_enabled'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Template configuration
|
||||
|--------------------------------------------------------------------------
|
||||
| This file will contain the settings for the template library.
|
||||
|
|
||||
| 'parser' = if you want your main template file to be parsed, set to TRUE
|
||||
| 'template' = the filename of the default template file
|
||||
| 'cache_ttl' = the time all partials should be cache in seconds, 0 means no global caching
|
||||
*/
|
||||
|
||||
$config['parser'] = FALSE;
|
||||
$config['template'] = 'template';
|
||||
$config['cache_ttl'] = 0;
|
||||
Executable
+165
@@ -0,0 +1,165 @@
|
||||
<?php
|
||||
defined('BASEPATH') || exit('No direct script access allowed');
|
||||
|
||||
class ModelTest extends FHC_Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Index Page for this controller.
|
||||
*
|
||||
* Maps to the following URL
|
||||
* http://example.com/index.php/welcome
|
||||
* - or -
|
||||
* http://example.com/index.php/welcome/index
|
||||
* - or -
|
||||
* Since this controller is set as the default controller in
|
||||
* config/routes.php, it's displayed at http://example.com/
|
||||
*
|
||||
* So any other public methods not prefixed with an underscore will
|
||||
* map to /index.php/welcome/<method_name>
|
||||
* @see http://codeigniter.com/user_guide/general/urls.html
|
||||
* @return void
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->session->uid='admin'; // Should normaly be set through auth
|
||||
$this->load->model('person/Prestudent_model');
|
||||
$id=null;
|
||||
|
||||
// Insert PreStudent
|
||||
$data = array
|
||||
(
|
||||
'aufmerksamdurch_kurzbz' => 'k.A.',
|
||||
'person_id' => 1,
|
||||
'studiengang_kz' => 0
|
||||
);
|
||||
$res = $this->Prestudent_model->insert($data);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
$id=$res->retval;
|
||||
|
||||
// Update PreStudent
|
||||
$data = array
|
||||
(
|
||||
'zgvort' => 'Wien',
|
||||
'zgvdatum' => '2012-12-12',
|
||||
'facheinschlberuf' => true
|
||||
);
|
||||
$res = $this->Prestudent_model->update($id, $data);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
$id=$res->retval;
|
||||
|
||||
// Replace PreStudent
|
||||
/*$data = array
|
||||
(
|
||||
'prestudent_id' => $id,
|
||||
'zgvmaort' => 'Linz',
|
||||
'zgvmadatum' => '2011-11-11',
|
||||
'facheinschlberuf' => false
|
||||
);
|
||||
$res = $this->Prestudent_model->replace($data);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval;
|
||||
else
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval;*/
|
||||
|
||||
// Load PreStudent
|
||||
$res = $this->Prestudent_model->load($id);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
var_dump($res->retval);
|
||||
|
||||
// Delete PreStudent
|
||||
$res = $this->Prestudent_model->delete($id);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
var_dump($res->retval);
|
||||
|
||||
$this->load->model('organisation/Organisationseinheit_model');
|
||||
// Insert OE
|
||||
$data = array
|
||||
(
|
||||
'oe_kurzbz' => 'testoe',
|
||||
'bezeichnung' => 'testoe',
|
||||
'organisationseinheittyp_kurzbz' => 'Institut',
|
||||
'standort_id' => null
|
||||
);
|
||||
$res = $this->Organisationseinheit_model->insert($data);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
$id = $data['oe_kurzbz'];
|
||||
var_dump($res);
|
||||
|
||||
// Update PreStudent
|
||||
$data = array
|
||||
(
|
||||
'freigabegrenze' => 1234.56,
|
||||
'kurzzeichen' => 'TestOE',
|
||||
'lehre' => false
|
||||
);
|
||||
$res = $this->Organisationseinheit_model->update($id, $data);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
$id=$res->retval;
|
||||
|
||||
// Delete PreStudent
|
||||
$res = $this->Organisationseinheit_model->delete($id);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
var_dump($res->retval);
|
||||
|
||||
$this->load->model('core/Sprache_model');
|
||||
// Insert Sprache
|
||||
$data = array
|
||||
(
|
||||
'sprache' => 'test',
|
||||
'bezeichnung' => "{'testsprache'}",
|
||||
'locale' => 'te_TE',
|
||||
'content' => false
|
||||
);
|
||||
$res = $this->Sprache_model->insert($data);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
$id = $data['sprache'];
|
||||
var_dump($res);
|
||||
|
||||
// Update Sprache
|
||||
$data = array
|
||||
(
|
||||
'index' => 4,
|
||||
'bezeichnung' => "{'TestSprache', 'TestLanguage', 'TestSpanisch'}",
|
||||
'content' => true
|
||||
);
|
||||
$res = $this->Sprache_model->update($id, $data);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
$id=$res->retval; //echo $id;
|
||||
|
||||
// Load Sprache
|
||||
$res = $this->Sprache_model->load($id);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
{
|
||||
$result = $res->retval->result_object();
|
||||
var_dump($this->Sprache_model->pgArrayPhp($result[0]->bezeichnung));
|
||||
}
|
||||
|
||||
// Delete Sprache
|
||||
$res = $this->Sprache_model->delete($id);
|
||||
if ($res->error)
|
||||
echo 'Error: ',$res->error, ', Code: ',$res->code,' -> ',$res->msg,': ',$res->retval,'<br/>';
|
||||
else
|
||||
var_dump($res->retval);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
defined('BASEPATH') || exit('No direct script access allowed');
|
||||
|
||||
class Vilesci extends CI_Controller
|
||||
class Vilesci extends FHC_Controller
|
||||
{
|
||||
|
||||
/**
|
||||
@@ -22,30 +22,8 @@ class Vilesci extends CI_Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// ToDo: check if update is needed
|
||||
if (false && $this->dbupdate())
|
||||
echo 'System-DB needs update!';
|
||||
else
|
||||
{
|
||||
$this->load->view('templates/header');
|
||||
$this->load->view('vilesci_frameset');
|
||||
$this->load->view('templates/footer');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function __dbupdate()
|
||||
{
|
||||
// Check for update (codeigniter migration)
|
||||
$this->load->library('migration');
|
||||
if ($this->migration->current() === false)
|
||||
show_error($this->migration->error_string());
|
||||
if ($this->migration->current() != $this->migration->latest())
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
$this->load->view('templates/header');
|
||||
$this->load->view('vilesci_frameset');
|
||||
$this->load->view('templates/footer');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,133 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Whisperocity
|
||||
*
|
||||
* @package Whisperocity
|
||||
* @author WSP-Team
|
||||
* @copyright Copyright (c) 2015, Whisperocity
|
||||
* @license proprietary
|
||||
* @link http://whisperocity.com/
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
* @example curl -H "FHC-API-Key: testapikey@fhcomplete.org" http://localhost/fhcomplete/index.ci.php/api/v1/APIAuth/login?code=aladsfasdf
|
||||
*/
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if (! defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
|
||||
// This can be removed if you use __autoload() in config.php OR use Modular Extensions
|
||||
//require APPPATH . '/libraries/REST_Controller.php';
|
||||
|
||||
/**
|
||||
* Handles user authentication and registration process
|
||||
*/
|
||||
class APIAuth extends APIv1_Controller
|
||||
{
|
||||
/**
|
||||
* Userauth-Controller constructor.
|
||||
* A more elaborate description of the constructor.
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Construct the parent class
|
||||
parent::__construct();
|
||||
|
||||
// Configure limits on our controller methods
|
||||
// Ensure you have created the 'limits' table and enabled 'limits' within application/config/rest.php
|
||||
$this->methods['login_get']['limit'] = 500; // 500 requests per hour per user/key
|
||||
|
||||
// Load helper
|
||||
//$this->load->helper('fhcauth');
|
||||
$this->load->library('session');
|
||||
$this->load->library('FHC_Auth');
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks user credentials and creates a new session
|
||||
*
|
||||
* @example normal account: http://wsp.fortyseeds.at/backend/api/userauth/login/username/foo%40bar.at/password/secret/device_id/abcdef123
|
||||
* @example OAuth Google: http://wsp.fortyseeds.at/backend/api/userauth/login/username/foo%40bar.at/device_id/abcdef123/google_token/qwert321
|
||||
* @example OAuth Facebook: http://wsp.fortyseeds.at/backend/api/userauth/login/username/foo%40bar.at/device_id/abcdef123/fb_token/qwert321
|
||||
* @return void JSON that indicates success/failure of login.
|
||||
*/
|
||||
public function login_get()
|
||||
{
|
||||
$payload = array();
|
||||
$errormsg = "";
|
||||
$httpstatus = null;
|
||||
$username = urldecode($this->get('username'));
|
||||
$password = urldecode($this->get('password'));
|
||||
|
||||
$account = $this->fhc_auth->auth($username, $password);
|
||||
|
||||
// perform login checks
|
||||
if (!$account)
|
||||
$errormsg = "Auth not accepted!";
|
||||
|
||||
if (empty($errormsg))
|
||||
{
|
||||
// generate new session
|
||||
$this->session->sess_regenerate();
|
||||
$token = session_id();
|
||||
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'User successfully logged in',
|
||||
'session_id' => $token
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => $errormsg
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_UNAUTHORIZED;
|
||||
}
|
||||
|
||||
// Set the response and exit
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs out user by destroying session
|
||||
*
|
||||
* @example http://wsp.fortyseeds.at/backend/api/userauth/logout/username/foo%40bar.at/session_id/55afab8ba6f1b/device_id/abcdef123
|
||||
* @return void JSON that indicates success/failure of logout
|
||||
*/
|
||||
public function logout_get()
|
||||
{
|
||||
$payload = array();
|
||||
$httpstatus = null;
|
||||
$token = $this->get('session_id');
|
||||
$username = urldecode($this->get('username'));
|
||||
$deviceid = $this->get('device_id');
|
||||
$account = $this->user_model->load($username);
|
||||
|
||||
// destroy session
|
||||
if ($this->session_model->destroy($account, $token, $deviceid))
|
||||
{
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'user successfully logged out'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => 'user could not be logged out'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_BAD_REQUEST;
|
||||
}
|
||||
|
||||
// Set the response and exit
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
@@ -1,316 +0,0 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
|
||||
// This can be removed if you use __autoload() in config.php OR use Modular Extensions
|
||||
require APPPATH.'/libraries/REST_Controller.php';
|
||||
|
||||
/**
|
||||
* Keys Controller
|
||||
* This is a basic Key Management REST controller to make and delete keys
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @subpackage Rest Server
|
||||
* @category Controller
|
||||
* @author Phil Sturgeon, Chris Kacerguis
|
||||
* @license MIT
|
||||
* @link https://github.com/chriskacerguis/codeigniter-restserver
|
||||
*/
|
||||
class APIKey extends REST_Controller
|
||||
{
|
||||
protected $methods = [
|
||||
'index_put' => ['level' => 10, 'limit' => 10],
|
||||
'index_delete' => ['level' => 10],
|
||||
'level_post' => ['level' => 10],
|
||||
'regenerate_post' => ['level' => 10],
|
||||
];
|
||||
|
||||
/**
|
||||
* Insert a key into the database
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function index_put()
|
||||
{
|
||||
// Build a new key
|
||||
$key = $this->__generateKey();
|
||||
|
||||
// If no key level provided, provide a generic key
|
||||
$level = $this->put('level') ? $this->put('level') : 1;
|
||||
$ignore_limits = ctype_digit($this->put('ignore_limits')) ? (int)$this->put('ignore_limits') : 1;
|
||||
|
||||
// Insert the new key
|
||||
if ($this->_insert_key($key, ['level' => $level, 'ignore_limits' => $ignore_limits]))
|
||||
{
|
||||
$this->response([
|
||||
'status' => true,
|
||||
'key' => $key
|
||||
], REST_Controller::HTTP_CREATED); // CREATED (201) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response([
|
||||
'status' => false,
|
||||
'message' => 'Could not save the key'
|
||||
], REST_Controller::HTTP_INTERNAL_SERVER_ERROR); // INTERNAL_SERVER_ERROR (500) being the HTTP response code
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a key from the database to stop it working
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function index_delete()
|
||||
{
|
||||
$key = $this->delete('key');
|
||||
|
||||
// Does this key exist?
|
||||
if (!$this->_key_exists($key))
|
||||
{
|
||||
// It doesn't appear the key exists
|
||||
$this->response([
|
||||
'status' => false,
|
||||
'message' => 'Invalid API key'
|
||||
], REST_Controller::HTTP_BAD_REQUEST); // BAD_REQUEST (400) being the HTTP response code
|
||||
}
|
||||
|
||||
// Destroy it
|
||||
$this->_delete_key($key);
|
||||
|
||||
// Respond that the key was destroyed
|
||||
$this->response([
|
||||
'status' => true,
|
||||
'message' => 'API key was deleted'
|
||||
], REST_Controller::HTTP_NO_CONTENT); // NO_CONTENT (204) being the HTTP response code
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the level
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function level_post()
|
||||
{
|
||||
$key = $this->post('key');
|
||||
$new_level = $this->post('level');
|
||||
|
||||
// Does this key exist?
|
||||
if (!$this->_key_exists($key))
|
||||
{
|
||||
// It doesn't appear the key exists
|
||||
$this->response([
|
||||
'status' => false,
|
||||
'message' => 'Invalid API key'
|
||||
], REST_Controller::HTTP_BAD_REQUEST); // BAD_REQUEST (400) being the HTTP response code
|
||||
}
|
||||
|
||||
// Update the key level
|
||||
if ($this->_update_key($key, ['level' => $new_level]))
|
||||
{
|
||||
$this->response([
|
||||
'status' => true,
|
||||
'message' => 'API key was updated'
|
||||
], REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response([
|
||||
'status' => false,
|
||||
'message' => 'Could not update the key level'
|
||||
], REST_Controller::HTTP_INTERNAL_SERVER_ERROR); // INTERNAL_SERVER_ERROR (500) being the HTTP response code
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Suspend a key
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function suspend_post()
|
||||
{
|
||||
$key = $this->post('key');
|
||||
|
||||
// Does this key exist?
|
||||
if (!$this->_key_exists($key))
|
||||
{
|
||||
// It doesn't appear the key exists
|
||||
$this->response([
|
||||
'status' => false,
|
||||
'message' => 'Invalid API key'
|
||||
], REST_Controller::HTTP_BAD_REQUEST); // BAD_REQUEST (400) being the HTTP response code
|
||||
}
|
||||
|
||||
// Update the key level
|
||||
if ($this->_update_key($key, ['level' => 0]))
|
||||
{
|
||||
$this->response([
|
||||
'status' => true,
|
||||
'message' => 'Key was suspended'
|
||||
], REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response([
|
||||
'status' => false,
|
||||
'message' => 'Could not suspend the user'
|
||||
], REST_Controller::HTTP_INTERNAL_SERVER_ERROR); // INTERNAL_SERVER_ERROR (500) being the HTTP response code
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Regenerate a key
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function regenerate_post()
|
||||
{
|
||||
$old_key = $this->post('key');
|
||||
$key_details = $this->__getKey($old_key);
|
||||
|
||||
// Does this key exist?
|
||||
if (!$key_details)
|
||||
{
|
||||
// It doesn't appear the key exists
|
||||
$this->response([
|
||||
'status' => false,
|
||||
'message' => 'Invalid API key'
|
||||
], REST_Controller::HTTP_BAD_REQUEST); // BAD_REQUEST (400) being the HTTP response code
|
||||
}
|
||||
|
||||
// Build a new key
|
||||
$new_key = $this->__generateKey();
|
||||
|
||||
// Insert the new key
|
||||
if ($this->_insert_key($new_key, ['level' => $key_details->level, 'ignore_limits' => $key_details->ignore_limits]))
|
||||
{
|
||||
// Suspend old key
|
||||
$this->_update_key($old_key, ['level' => 0]);
|
||||
|
||||
$this->response([
|
||||
'status' => true,
|
||||
'key' => $new_key
|
||||
], REST_Controller::HTTP_CREATED); // CREATED (201) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response([
|
||||
'status' => false,
|
||||
'message' => 'Could not save the key'
|
||||
], REST_Controller::HTTP_INTERNAL_SERVER_ERROR); // INTERNAL_SERVER_ERROR (500) being the HTTP response code
|
||||
}
|
||||
}
|
||||
|
||||
/* Helper Methods */
|
||||
|
||||
/**
|
||||
* Generate a key
|
||||
*
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
private function __generateKey()
|
||||
{
|
||||
do
|
||||
{
|
||||
// Generate a random salt
|
||||
$salt = base_convert(bin2hex($this->security->get_random_bytes(64)), 16, 36);
|
||||
|
||||
// If an error occurred, then fall back to the previous method
|
||||
if ($salt === false)
|
||||
{
|
||||
$salt = hash('sha256', time().mt_rand());
|
||||
}
|
||||
|
||||
$new_key = substr($salt, 0, config_item('rest_key_length'));
|
||||
}
|
||||
while ($this->_key_exists($new_key));
|
||||
|
||||
return $new_key;
|
||||
}
|
||||
|
||||
/* Private Data Methods */
|
||||
|
||||
/**
|
||||
* Get a key
|
||||
*
|
||||
* @access private
|
||||
* @param string $key The API-Key.
|
||||
* @return array
|
||||
*/
|
||||
private function __getKey($key)
|
||||
{
|
||||
return $this->db
|
||||
->where(config_item('rest_key_column'), $key)
|
||||
->get(config_item('rest_keys_table'))
|
||||
->row();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if key exists
|
||||
*
|
||||
* @access private
|
||||
* @param string $key The API-Key.
|
||||
* @return bool
|
||||
*/
|
||||
private function _key_exists($key)
|
||||
{
|
||||
return $this->db
|
||||
->where(config_item('rest_key_column'), $key)
|
||||
->count_all_results(config_item('rest_keys_table')) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert a key
|
||||
*
|
||||
* @access private
|
||||
* @param string $key The API-Key.
|
||||
* @param array $data The API-Key-Data.
|
||||
* @return bool
|
||||
*/
|
||||
private function _insert_key($key, $data)
|
||||
{
|
||||
$data[config_item('rest_key_column')] = $key;
|
||||
$data['date_created'] = function_exists('now') ? now() : time();
|
||||
|
||||
return $this->db
|
||||
->set($data)
|
||||
->insert(config_item('rest_keys_table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a key
|
||||
*
|
||||
* @access private
|
||||
* @param string $key The API-Key.
|
||||
* @param array $data The API-Key-Data.
|
||||
* @return bool
|
||||
*/
|
||||
private function _update_key($key, $data)
|
||||
{
|
||||
return $this->db
|
||||
->where(config_item('rest_key_column'), $key)
|
||||
->update(config_item('rest_keys_table'), $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a key
|
||||
*
|
||||
* @access private
|
||||
* @param string $key The API-Key.
|
||||
* @return bool
|
||||
*/
|
||||
private function _delete_key($key)
|
||||
{
|
||||
return $this->db
|
||||
->where(config_item('rest_key_column'), $key)
|
||||
->delete(config_item('rest_keys_table'));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
defined('BASEPATH') || exit('No direct script access allowed');
|
||||
|
||||
class Kontakt extends REST_Controller
|
||||
class Kontakt extends APIv1_Controller
|
||||
{
|
||||
|
||||
//public $session;
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package FHC-API
|
||||
* @author FHC-Team
|
||||
* @copyright Copyright (c) 2016, fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link http://fhcomplete.org
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if(!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Nation extends APIv1_Controller
|
||||
{
|
||||
/**
|
||||
* Course API constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
// Load model PersonModel
|
||||
$this->load->model('nation_model', 'NationModel');
|
||||
// Load set the addonID of the model to let to check the permissions
|
||||
$this->NationModel->setAddonID($this->_getAddonID());
|
||||
}
|
||||
|
||||
public function getAll()
|
||||
{
|
||||
$result = $this->NationModel->getAll($this->get('ohnesperre'), $this->get('orderEnglish'));
|
||||
|
||||
if(is_object($result))
|
||||
{
|
||||
$payload = [
|
||||
'success' => TRUE,
|
||||
'message' => 'Nation found',
|
||||
'data' => $result->result()
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => FALSE,
|
||||
'message' => 'Nation not found'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
public function getBundesland()
|
||||
{
|
||||
$result = $this->NationModel->getBundesland();
|
||||
|
||||
if(is_object($result))
|
||||
{
|
||||
$payload = [
|
||||
'success' => TRUE,
|
||||
'message' => 'Bundesland found',
|
||||
'data' => $result->result()
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => FALSE,
|
||||
'message' => 'Bundesland not found'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
@@ -1,207 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package FHC-API
|
||||
* @author FHC-Team
|
||||
* @copyright Copyright (c) 2016, fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link http://fhcomplete.org
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
defined('BASEPATH') || exit('No direct script access allowed');
|
||||
|
||||
class Person extends APIv1_Controller
|
||||
{
|
||||
|
||||
//public $session;
|
||||
/**
|
||||
* Person API constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->load->model('person/person_model');
|
||||
}
|
||||
|
||||
public function person_get()
|
||||
{
|
||||
//if (!$this->session_model->validate($this->get('session_id'), $this->get('device_id')))
|
||||
// $this->response(array(['success' => false, 'message' => 'access denied']), REST_Controller::HTTP_UNAUTHORIZED);
|
||||
|
||||
$code = $this->get('code');
|
||||
$email = $this->get('email');
|
||||
$person_id = $this->get('person_id');
|
||||
|
||||
if ((!is_null($code)) && (!is_null($email)))
|
||||
{
|
||||
$result = $this->person_model->getPersonByCodeAndEmail($code, $email);
|
||||
}
|
||||
elseif (! is_null($code))
|
||||
{
|
||||
$result = $this->person_model->getPersonByCode($code, $email);
|
||||
}
|
||||
elseif (!is_null($person_id))
|
||||
{
|
||||
$result = $this->person_model->getPerson($person_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $this->person_model->getPerson();
|
||||
}
|
||||
|
||||
if (empty($result))
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => 'Person not found'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
// return all available persons
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Persons found'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
// Set the response and exit
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
public function personFromCode_post()
|
||||
{
|
||||
$code = $this->post('code');
|
||||
$email = $this->post('email');
|
||||
$person_id = $this->post('person_id');
|
||||
|
||||
if ((!is_null($code)) && (!is_null($email)))
|
||||
{
|
||||
$result = $this->person_model->getPersonByCodeAndEmail($code, $email);
|
||||
}
|
||||
elseif (!is_null($person_id))
|
||||
{
|
||||
$result = $this->person_model->getPerson($person_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $this->person_model->getPerson();
|
||||
}
|
||||
|
||||
if (empty($result))
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => 'Person not found'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
// return all available persons
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Persons found'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
// Set the response and exit
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
public function person_post()
|
||||
{
|
||||
$result = $this->person_model->savePerson($this->post());
|
||||
if($result != FALSE)
|
||||
{
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Person saved.'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => 'Could not save person.'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
public function personUpdate_post()
|
||||
{
|
||||
$result = $this->person_model->updatePerson($this->post());
|
||||
if($result != FALSE)
|
||||
{
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Person updated.'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => 'Could not update person.'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
//
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
public function checkBewerbung_get()
|
||||
{
|
||||
$result = $this->person_model->checkBewerbung($this->get("email"),$this->get("studiensemester_kurzbz"));
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Bewerbung exists.'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
public function checkZugangscodePerson_get()
|
||||
{
|
||||
$result = $this->person_model->checkZugangscodePerson($this->get("code"));
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
if(!empty($result))
|
||||
{
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Zugangscode exists.'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => 'Zugangscode does not exist.'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') || exit('No direct script access allowed');
|
||||
|
||||
//require_once APPPATH . '/libraries/REST_Controller.php';
|
||||
|
||||
/**
|
||||
* Testing class for REST calls and authentication
|
||||
*/
|
||||
class Test extends APIv1_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test HTTP GET method
|
||||
* It responses whith the HTTP status 200 and prints this JSON string
|
||||
* {"success":true,"message":"API HTTP GET call test succeed"}
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getTest()
|
||||
{
|
||||
$payload = [
|
||||
'success' => TRUE,
|
||||
'message' => 'API HTTP GET call test succeed'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test HTTP POST method
|
||||
* * It responses whith the HTTP status 200 and prints this JSON string
|
||||
* {"success":true,"message":"API HTTP POST call test succeed"}
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function postTest()
|
||||
{
|
||||
$payload = [
|
||||
'success' => TRUE,
|
||||
'message' => 'API HTTP POST call test succeed'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package FHC-API
|
||||
* @author FHC-Team
|
||||
* @copyright Copyright (c) 2016, fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link http://fhcomplete.org
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if(!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Studiengang extends APIv1_Controller
|
||||
{
|
||||
/**
|
||||
* Course API constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
// Load model PersonModel
|
||||
$this->load->model('lehre/studiengang_model', 'StudiengangModel');
|
||||
// Load set the addonID of the model to let to check the permissions
|
||||
$this->StudiengangModel->setAddonID($this->_getAddonID());
|
||||
}
|
||||
|
||||
public function getAllForBewerbung()
|
||||
{
|
||||
$result = $this->StudiengangModel->getAllForBewerbung();
|
||||
|
||||
if(is_object($result) && $result->num_rows() > 0)
|
||||
{
|
||||
$payload = [
|
||||
'success' => TRUE,
|
||||
'message' => 'Courses found',
|
||||
'data' => $result->result()
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => FALSE,
|
||||
'message' => 'No courses found'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package FHC-API
|
||||
* @author FHC-Team
|
||||
* @copyright Copyright (c) 2016, fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link http://fhcomplete.org
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if(!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Studienplan extends APIv1_Controller
|
||||
{
|
||||
/**
|
||||
* Course API constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
// Load model PersonModel
|
||||
$this->load->model('lehre/studienplan_model', 'StudienplanModel');
|
||||
// Load set the addonID of the model to let to check the permissions
|
||||
$this->StudienplanModel->setAddonID($this->_getAddonID());
|
||||
}
|
||||
|
||||
public function getStudienplaene()
|
||||
{
|
||||
$result = $this->StudienplanModel->getStudienplaene($this->get('studiengang_kz'));
|
||||
|
||||
if(is_object($result) && $result->num_rows() > 0)
|
||||
{
|
||||
$payload = [
|
||||
'success' => TRUE,
|
||||
'message' => 'Plan found',
|
||||
'data' => $result->result()
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => FALSE,
|
||||
'message' => 'Plan not found'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
@@ -13,97 +12,62 @@
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if (! defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
if(!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Person extends APIv1_Controller
|
||||
{
|
||||
/**
|
||||
* Person API constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
/**
|
||||
* Person API constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('person/person_model');
|
||||
}
|
||||
// Load model PersonModel
|
||||
$this->load->model('person/person_model', 'PersonModel');
|
||||
// Load set the addonID of the model to let to check the permissions
|
||||
$this->PersonModel->setAddonID($this->_getAddonID());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function person_get()
|
||||
{
|
||||
//if(!$this->session_model->validate($this->get('session_id'), $this->get('device_id')))
|
||||
// $this->response(array(['success' => false, 'message' => 'access denied']), REST_Controller::HTTP_UNAUTHORIZED);
|
||||
|
||||
public function getPerson()
|
||||
{
|
||||
$personID = $this->get('person_id');
|
||||
$code = $this->get('code');
|
||||
$email = $this->get('email');
|
||||
$person_id = $this->get('person_id');
|
||||
|
||||
if ((!is_null($code)) && (!is_null($email)))
|
||||
{
|
||||
$result = $this->person_model->getPersonByCodeAndEmail($code, $email);
|
||||
}
|
||||
elseif (! is_null($code))
|
||||
{
|
||||
$result = $this->person_model->getPersonByCode($code);
|
||||
}
|
||||
elseif (! is_null($person_id))
|
||||
{
|
||||
$result = $this->person_model->getPerson($person_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $this->person_model->getPerson();
|
||||
}
|
||||
$result = $this->PersonModel->getPerson($personID, $code, $email);
|
||||
|
||||
if ($result['err'])
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => $result['msg'].': '.$result['retval']
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
// return all available persons
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Persons found'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
if (empty($result))
|
||||
if(is_object($result) && $result->num_rows() > 0)
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => 'Person not found'
|
||||
'success' => TRUE,
|
||||
'message' => 'Person found',
|
||||
'data' => $result->result()
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
// return all available persons
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Persons found'
|
||||
'success' => FALSE,
|
||||
'message' => 'Person not found'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
// Set the response and exit
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function person_post()
|
||||
{
|
||||
$result = $this->person_model->savePerson($this->post());
|
||||
if ($result != false)
|
||||
public function postPerson()
|
||||
{
|
||||
$result = $this->PersonModel->savePerson($this->post());
|
||||
|
||||
if($result === TRUE)
|
||||
{
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
$payload = [
|
||||
@@ -121,40 +85,40 @@ class Person extends APIv1_Controller
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function personUpdate_post()
|
||||
{
|
||||
$result = $this->person_model->updatePerson($this->post());
|
||||
if ($result != false)
|
||||
public function postPrestudent()
|
||||
{
|
||||
$result = $this->PersonModel->savePrestudent($this->post());
|
||||
|
||||
if($result === TRUE)
|
||||
{
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
$payload = [
|
||||
'success' => true,
|
||||
'message' => 'Person updated.'
|
||||
'message' => 'Interested student saved.'
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
}
|
||||
else
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => 'Could not update person.'
|
||||
'message' => 'Could not save interested student.'
|
||||
];
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
}
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function checkBewerbung_get()
|
||||
{
|
||||
$result = $this->person_model->checkBewerbung($this->get("email"), $this->get("studiensemester_kurzbz"));
|
||||
public function getCheckBewerbung()
|
||||
{
|
||||
$result = $this->PersonModel->checkBewerbung($this->get("email"), $this->get("studiensemester_kurzbz"));
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
$payload = [
|
||||
'success' => true,
|
||||
@@ -162,16 +126,16 @@ class Person extends APIv1_Controller
|
||||
];
|
||||
$payload['data'] = $result;
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function checkZugangscodePerson_get()
|
||||
{
|
||||
$result = $this->person_model->checkZugangscodePerson($this->get("code"));
|
||||
public function getCheckZugangscodePerson()
|
||||
{
|
||||
$result = $this->PersonModel->checkZugangscodePerson($this->get("code"));
|
||||
$httpstatus = REST_Controller::HTTP_OK;
|
||||
if (!empty($result))
|
||||
if(!empty($result))
|
||||
{
|
||||
$payload = [
|
||||
'success' => true,
|
||||
@@ -189,5 +153,5 @@ class Person extends APIv1_Controller
|
||||
}
|
||||
|
||||
$this->response($payload, $httpstatus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
class Kontakt extends FHC_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('kontakt/kontakt_model');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['person'] = $this->person_model->getPersonen();
|
||||
$data['title'] = 'Personen Archiv';
|
||||
|
||||
$this->load->view('templates/header', $data);
|
||||
$this->load->view('kontakt/index', $data);
|
||||
$this->load->view('templates/footer');
|
||||
}
|
||||
|
||||
public function view($slug = null)
|
||||
{
|
||||
$data['person_item'] = $this->person_model->getPersonen($slug);
|
||||
if (empty($data['person_item']))
|
||||
show_404();
|
||||
|
||||
$data['title'] = $data['person_item']->titelpre;
|
||||
|
||||
$this->load->view('templates/header', $data);
|
||||
$this->load->view('kontakt/view', $data);
|
||||
$this->load->view('templates/footer');
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
class Person extends FHC_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('person/person_model');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['person'] = $this->person_model->getPersonen();
|
||||
$data['title'] = 'Personen Archiv';
|
||||
|
||||
$this->load->view('templates/header', $data);
|
||||
$this->load->view('person/index', $data);
|
||||
$this->load->view('templates/footer');
|
||||
}
|
||||
|
||||
public function view($slug = null)
|
||||
{
|
||||
$data['person_item'] = $this->person_model->getPersonen($slug);
|
||||
if (empty($data['person_item']))
|
||||
show_404();
|
||||
|
||||
$data['title'] = $data['person_item']->titelpre;
|
||||
|
||||
$this->load->view('templates/header', $data);
|
||||
$this->load->view('person/view', $data);
|
||||
$this->load->view('templates/footer');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
require_once APPPATH . '/libraries/REST_Controller.php';
|
||||
|
||||
class APIv1_Controller extends REST_Controller
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
//$this->load->library('session'); // -> autoload
|
||||
//$this->load->library('database'); -> autoload
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,233 @@
|
||||
<?php
|
||||
|
||||
class DB_Model extends FHC_Model
|
||||
{
|
||||
protected $dbTable; // Name of the DB-Table for CI-Insert, -Update, ...
|
||||
protected $pk; // Name of the PrimaryKey for DB-Update, Load, ...
|
||||
protected $acl; // Name of the PrimaryKey for DB-Update, Load, ...
|
||||
|
||||
// Addon ID, stored to let to check the permissions
|
||||
private $_addonID;
|
||||
|
||||
function __construct($dbTable = null, $pk = null)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = $dbTable;
|
||||
$this->pk = $pk;
|
||||
$this->load->database();
|
||||
$this->acl = $this->config->item('fhc_acl');
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Insert Data into DB-Table
|
||||
*
|
||||
* @param array $data DataArray for Insert
|
||||
* @return array
|
||||
*/
|
||||
public function insert($data)
|
||||
{
|
||||
// Check Class-Attributes
|
||||
if(is_null($this->dbTable))
|
||||
return $this->_error(lang('fhc_'.FHC_NODBTABLE), FHC_MODEL_ERROR);
|
||||
|
||||
// Check rights
|
||||
if (! $this->fhc_db_acl->isBerechtigt((string)($this->acl[$this->dbTable]), 'i'))
|
||||
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl[$this->dbTable], FHC_MODEL_ERROR);
|
||||
|
||||
// DB-INSERT
|
||||
if ($this->db->insert($this->dbTable, $data))
|
||||
return $this->_success($this->db->insert_id());
|
||||
else
|
||||
return $this->_error($this->db->error(), FHC_DB_ERROR);
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Replace Data in DB-Table
|
||||
*
|
||||
* @param array $data DataArray for Replacement
|
||||
* @return array
|
||||
*/
|
||||
public function replace($data)
|
||||
{
|
||||
// Check Class-Attributes
|
||||
if(is_null($this->dbTable))
|
||||
return $this->_error(lang('fhc_'.FHC_NODBTABLE), FHC_MODEL_ERROR);
|
||||
|
||||
// Check rights
|
||||
if (! $this->fhc_db_acl->isBerechtigt((string)($this->acl[$this->dbTable]), 'ui'))
|
||||
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl[$this->dbTable], FHC_MODEL_ERROR);
|
||||
|
||||
// DB-REPLACE
|
||||
if ($this->db->replace($this->dbTable, $data))
|
||||
return $this->_success($this->db->insert_id());
|
||||
else
|
||||
return $this->_error($this->db->error(), FHC_DB_ERROR);
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Update Data in DB-Table
|
||||
*
|
||||
* @param string $id PK for DB-Table
|
||||
* @param array $data DataArray for Insert
|
||||
* @return array
|
||||
*/
|
||||
public function update($id, $data)
|
||||
{
|
||||
// Check Class-Attributes
|
||||
if(is_null($this->dbTable))
|
||||
return $this->_error(lang('fhc_'.FHC_NODBTABLE), FHC_MODEL_ERROR);
|
||||
if(is_null($this->pk))
|
||||
return $this->_error(lang('fhc_'.FHC_NOPK), FHC_MODEL_ERROR);
|
||||
|
||||
// Check rights
|
||||
if (! $this->fhc_db_acl->isBerechtigt((string)($this->acl[$this->dbTable]), 'u'))
|
||||
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl[$this->dbTable], FHC_MODEL_ERROR);
|
||||
|
||||
// DB-UPDATE
|
||||
$this->db->where($this->pk, $id);
|
||||
if ($this->db->update($this->dbTable, $data))
|
||||
return $this->_success($id);
|
||||
else
|
||||
return $this->_error($this->db->error(), FHC_DB_ERROR);
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Load data from DB-Table
|
||||
*
|
||||
* @param string $id Primary Key for SELECT
|
||||
* @return array
|
||||
*/
|
||||
public function load($id)
|
||||
{
|
||||
// Check Class-Attributes
|
||||
if(is_null($this->dbTable))
|
||||
return $this->_error(lang('fhc_'.FHC_NODBTABLE), FHC_MODEL_ERROR);
|
||||
if(is_null($this->pk))
|
||||
return $this->_error(lang('fhc_'.FHC_NOPK), FHC_MODEL_ERROR);
|
||||
|
||||
// Check rights
|
||||
if (! $this->fhc_db_acl->isBerechtigt((string)($this->acl[$this->dbTable]), 's'))
|
||||
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl[$this->dbTable], FHC_MODEL_ERROR);
|
||||
|
||||
// DB-SELECT
|
||||
$result = $this->db->get_where($this->dbTable, array($this->pk => $id));
|
||||
//var_dump($result);
|
||||
if ($result)
|
||||
return $this->_success($result);
|
||||
else
|
||||
return $this->_error($this->db->error(), FHC_DB_ERROR);
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Delete data from DB-Table
|
||||
*
|
||||
* @param string $id Primary Key for DELETE
|
||||
* @return array
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
// Check Class-Attributes
|
||||
if(is_null($this->dbTable))
|
||||
return $this->_error(lang('fhc_'.FHC_NODBTABLE), FHC_MODEL_ERROR);
|
||||
if(is_null($this->pk))
|
||||
return $this->_error(lang('fhc_'.FHC_NOPK), FHC_MODEL_ERROR);
|
||||
|
||||
// Check rights
|
||||
if (! $this->fhc_db_acl->isBerechtigt($this->acl[$this->dbTable], 'd'))
|
||||
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> '.$this->acl[$this->dbTable], FHC_MODEL_ERROR);
|
||||
|
||||
// DB-DELETE
|
||||
if ($this->db->delete($this->dbTable, array($this->pk => $id)))
|
||||
return $this->_success($id);
|
||||
else
|
||||
return $this->_error($this->db->error(), FHC_DB_ERROR);
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Convert PG-Array to PHP-Array
|
||||
*
|
||||
* @param integer config.php error code numbers
|
||||
* @return array
|
||||
*/
|
||||
public function pgArrayPhp($s,$start=0,&$end=NULL)
|
||||
{
|
||||
if (empty($s) || $s[0]!='{') return NULL;
|
||||
$return = array();
|
||||
$br = 0;
|
||||
$string = false;
|
||||
$quote='';
|
||||
$len = strlen($s);
|
||||
$v = '';
|
||||
for($i=$start+1; $i<$len;$i++)
|
||||
{
|
||||
$ch = $s[$i];
|
||||
if (!$string && $ch=='}')
|
||||
{
|
||||
if ($v!=='' || !empty($return))
|
||||
$return[] = $v;
|
||||
$end = $i;
|
||||
break;
|
||||
}
|
||||
else
|
||||
if (!$string && $ch=='{')
|
||||
$v = $this->pgArrayPhp($s,$i,$i);
|
||||
else
|
||||
if (!$string && $ch==',')
|
||||
{
|
||||
$return[] = $v;
|
||||
$v = '';
|
||||
}
|
||||
else
|
||||
if (!$string && ($ch=='"' || $ch=="'"))
|
||||
{
|
||||
$string = TRUE;
|
||||
$quote = $ch;
|
||||
}
|
||||
else
|
||||
if ($string && $ch==$quote && $s[$i-1]=="\\")
|
||||
$v = substr($v,0,-1).$ch;
|
||||
else
|
||||
if ($string && $ch==$quote && $s[$i-1]!="\\")
|
||||
$string = FALSE;
|
||||
else
|
||||
$v .= $ch;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Invalid ID
|
||||
*
|
||||
* @param integer config.php error code numbers
|
||||
* @return array
|
||||
*/
|
||||
protected function _invalid_id($error = '')
|
||||
{
|
||||
return array(
|
||||
'err' => 1,
|
||||
'code' => $error,
|
||||
'msg' => lang('fhc_' . $error)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method setAddonID
|
||||
*
|
||||
* @param $addonID
|
||||
* @return void
|
||||
*/
|
||||
public function setAddonID($addonID)
|
||||
{
|
||||
$this->_addonID = $addonID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getAddonID
|
||||
*
|
||||
* @return string _addonID
|
||||
*/
|
||||
public function getAddonID()
|
||||
{
|
||||
return $this->_addonID;
|
||||
}
|
||||
}
|
||||
@@ -8,17 +8,4 @@ class FHC_Controller extends CI_Controller
|
||||
parent::__construct();
|
||||
//$this->load->helper('language');
|
||||
}
|
||||
}
|
||||
|
||||
require_once APPPATH . '/libraries/REST_Controller.php';
|
||||
|
||||
class APIv1_Controller extends REST_Controller
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
//$this->load->library('session'); -> autoload
|
||||
//$this->load->library('database'); -> autoload
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,93 +1,50 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class FHC_Model extends CI_Model
|
||||
class FHC_Model extends CI_Model
|
||||
{
|
||||
//protected errormsg;
|
||||
function __construct()
|
||||
function __construct($uid = null)
|
||||
{
|
||||
parent::__construct();
|
||||
parent::__construct();
|
||||
$this->load->helper('language');
|
||||
$this->lang->load('fhcomplete');
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Success
|
||||
*
|
||||
* @param mixed $retval
|
||||
* @return array
|
||||
*/
|
||||
protected function _success($retval = '', $message = FHC_SUCCESS)
|
||||
{
|
||||
return array(
|
||||
'err' => 0,
|
||||
'code' => FHC_SUCCESS,
|
||||
'msg' => lang('fhc_' . $message),
|
||||
'retval' => $retval
|
||||
);
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* General Error
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _general_error($retval = '', $message = FHC_ERR_GENERAL)
|
||||
{
|
||||
return array(
|
||||
'err' => 1,
|
||||
'code' => FHC_ERR_GENERAL,
|
||||
'msg' => lang('fhc_'.$message),
|
||||
'retval' => $retval
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class DB_Model extends FHC_Model
|
||||
{
|
||||
|
||||
protected $dbTable=null; // Name of the DB-Table for CI-Insert, -Update, ...
|
||||
|
||||
function __construct($uid=null)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->database();
|
||||
$this->load->helper('language');
|
||||
$this->lang->load('fhc_db');
|
||||
|
||||
// UID must be set in Production Mode
|
||||
if (ENVIRONMENT=='production' && is_null($uid))
|
||||
log_message('error', 'UID must be set in Production Mode.');
|
||||
elseif (is_null($uid))
|
||||
log_message('info', 'UID is not set.');
|
||||
|
||||
// Loading Tools for Access Control (Benutzerberechtigungen)
|
||||
$this->lang->load('fhc_model');
|
||||
//$this->load->helper('fhc_db_acl');
|
||||
$this->lang->load('fhcomplete');
|
||||
//$this->load->library('session');
|
||||
if (is_null($uid))
|
||||
$uid = $this->session->uid;
|
||||
$this->load->library('FHC_DB_ACL',array('uid' => $uid));
|
||||
}
|
||||
|
||||
public function insert($data)
|
||||
{
|
||||
if (! is_null($this->dbTable))
|
||||
{
|
||||
$this->db->insert($this->dbTable, $data);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* Invalid ID
|
||||
*
|
||||
* @param integer config.php error code numbers
|
||||
* @return array
|
||||
*/
|
||||
protected function _invalid_id($error = '')
|
||||
{
|
||||
return array(
|
||||
'err' => 1,
|
||||
'code' => $error,
|
||||
'msg' => lang('fhc_'.$error)
|
||||
);
|
||||
}
|
||||
* Success
|
||||
*
|
||||
* @param mixed $retval
|
||||
* @return array
|
||||
*/
|
||||
protected function _success($retval, $message = FHC_SUCCESS)
|
||||
{
|
||||
$return = new stdClass();
|
||||
$return->error = EXIT_SUCCESS;
|
||||
$return->code = $message;
|
||||
$return->msg = lang('fhc_' . $message);
|
||||
$return->retval = $retval;
|
||||
return $return;
|
||||
}
|
||||
|
||||
/** ---------------------------------------------------------------
|
||||
* General Error
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _error($retval = '', $message = FHC_MODEL_ERROR)
|
||||
{
|
||||
$return = new stdClass();
|
||||
$return->error = EXIT_MODEL;
|
||||
$return->code = $message;
|
||||
$return->msg = lang('fhc_' . $message);
|
||||
$return->retval = $retval;
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
//require_once(FCPATH.'include/benutzerberechtigung.class.php');
|
||||
|
||||
function isAllowed($uid, $berechtigung_kurzbz, $art = NULL, $oe_kurzbz = NULL, $kostenstelle_id = NULL)
|
||||
{
|
||||
/*$bb = benutzerberechtigung();
|
||||
$bb->getBerechtigungen($uid);
|
||||
return $bb->isBerechtigt($berechtigung_kurzbz, $art, $oe_kurzbz, $kostenstelle_id);*/
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -428,3 +428,23 @@ function indexSort($a, $b)
|
||||
{
|
||||
return strcmp($a->index, $b->index);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bereitet ein Array von Elementen auf, damit es in der IN-Klausel eines
|
||||
* Select Befehls verwendet werden kann.
|
||||
*/
|
||||
function dbImplode4SQL($array)
|
||||
{
|
||||
$string = '';
|
||||
|
||||
foreach($array as $row)
|
||||
{
|
||||
if($string != '')
|
||||
{
|
||||
$string.=',';
|
||||
}
|
||||
$string.=$this->db_add_param($row);
|
||||
}
|
||||
|
||||
return $string;
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
if ( ! defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
|
||||
// DB-Errormessages
|
||||
$lang['fhc_'.FHC_MODEL_ERROR] = 'Fehler in Model';
|
||||
$lang['fhc_'.FHC_NODBTABLE] = '"dbTable" ist nicht gesetzt!';
|
||||
$lang['fhc_'.FHC_NORIGHT] = 'Rechte sind nicht ausreichend!';
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
// Account Creation
|
||||
$lang['fhc_'.FHC_SUCCESS] = 'Erfolgreich';
|
||||
$lang['fhc_'.FHC_ERR_GENERAL] = 'Fehler';
|
||||
$lang['fhc_'.FHC_ERROR] = 'Fehler';
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
if ( ! defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
|
||||
// DB-Errormessages
|
||||
$lang['fhc_'.FHC_MODEL_ERROR] = 'Error in Model';
|
||||
$lang['fhc_'.FHC_NODBTABLE] = 'dbTable is not set!';
|
||||
$lang['fhc_'.FHC_NORIGHT] = 'rights are missing!';
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
// Account Creation
|
||||
$lang['fhc_'.FHC_SUCCESS] = 'Success';
|
||||
$lang['fhc_'.FHC_ERR_GENERAL] = 'Error';
|
||||
$lang['fhc_'.FHC_ERROR] = 'Error';
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
*/
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
require_once FCPATH.'include/authentication.class.php';
|
||||
require_once FCPATH.'include/AddonAuthentication.php';
|
||||
|
||||
/**
|
||||
* FHC-Auth Helpers
|
||||
@@ -32,20 +33,31 @@ class FHC_Auth
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @return bool
|
||||
* @return bool
|
||||
*/
|
||||
function auth($username, $password)
|
||||
public function basicAuthentication($username, $password)
|
||||
{
|
||||
$auth = new authentication();
|
||||
if ($auth->checkpassword($username, $password))
|
||||
if($auth->checkpassword($username, $password))
|
||||
{
|
||||
//echo 'Auth-Method-True';
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
//echo 'Auth-Method-False';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the md5 hashed password by the addon username
|
||||
*
|
||||
* @param string $username addon username
|
||||
* @return string md5 hashed string
|
||||
*/
|
||||
public function digestAuthentication($username)
|
||||
{
|
||||
$aam = new AddonAuthentication();
|
||||
|
||||
return md5($aam->getPasswordByUsername($username));
|
||||
}
|
||||
}
|
||||
@@ -43,10 +43,10 @@ class FHC_DB_ACL
|
||||
* @param string $password
|
||||
* @return bool
|
||||
*/
|
||||
function __construct($uid)
|
||||
function __construct($param)
|
||||
{
|
||||
$this->bb = new benutzerberechtigung();
|
||||
$this->uid = $uid;
|
||||
$this->uid = $param['uid'];
|
||||
}
|
||||
|
||||
function isBerechtigt($berechtigung_kurzbz, $art=null, $oe_kurzbz=null, $kostenstelle_id=null)
|
||||
|
||||
@@ -351,8 +351,13 @@ abstract class REST_Controller extends CI_Controller {
|
||||
self::HTTP_INTERNAL_SERVER_ERROR => 'INTERNAL SERVER ERROR',
|
||||
self::HTTP_NOT_IMPLEMENTED => 'NOT IMPLEMENTED'
|
||||
];
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected $_addonID = NULL;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Extend this function to apply additional checking early on in the process
|
||||
*
|
||||
* @access protected
|
||||
@@ -361,7 +366,7 @@ abstract class REST_Controller extends CI_Controller {
|
||||
protected function early_checks()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Constructor for the REST API
|
||||
*
|
||||
@@ -528,7 +533,7 @@ abstract class REST_Controller extends CI_Controller {
|
||||
{
|
||||
$this->_allow = $this->_detect_api_key();
|
||||
}
|
||||
|
||||
|
||||
// Only allow ajax requests
|
||||
if ($this->input->is_ajax_request() === FALSE && $this->config->item('rest_ajax_only'))
|
||||
{
|
||||
@@ -540,7 +545,7 @@ abstract class REST_Controller extends CI_Controller {
|
||||
}
|
||||
|
||||
// When there is no specific override for the current class/method, use the default auth value set in the config
|
||||
if ($this->auth_override === FALSE && !($this->config->item('rest_enable_keys') && $this->_allow === TRUE))
|
||||
if ($this->auth_override === FALSE && ($this->config->item('rest_enable_keys') && $this->_allow === TRUE))
|
||||
{
|
||||
$rest_auth = strtolower($this->config->item('rest_auth'));
|
||||
switch ($rest_auth)
|
||||
@@ -604,8 +609,10 @@ abstract class REST_Controller extends CI_Controller {
|
||||
// Remove the supported format from the function name e.g. index.json => index
|
||||
$object_called = preg_replace('/^(.*)\.(?:' . implode('|', array_keys($this->_supported_formats)) . ')$/', '$1', $object_called);
|
||||
|
||||
$controller_method = $object_called . '_' . $this->request->method;
|
||||
|
||||
//$controller_method = $object_called . '_' . $this->request->method;
|
||||
// CamelCase compliant
|
||||
$controller_method = $this->request->method.ucfirst($object_called);
|
||||
|
||||
// Do we want to log this method (if allowed by config)?
|
||||
$log_method = !(isset($this->methods[$controller_method]['log']) && $this->methods[$controller_method]['log'] === FALSE);
|
||||
|
||||
@@ -1900,6 +1907,25 @@ abstract class REST_Controller extends CI_Controller {
|
||||
], self::HTTP_UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TO BE COMMENTED
|
||||
*/
|
||||
private function _setAddonID($username)
|
||||
{
|
||||
if(!isset($this->_addonID) && isset($username))
|
||||
{
|
||||
$this->_addonID = $username;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int ID of the authenticated addon
|
||||
*/
|
||||
protected function _getAddonID()
|
||||
{
|
||||
return $this->_addonID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares for basic authentication
|
||||
@@ -1940,6 +1966,10 @@ abstract class REST_Controller extends CI_Controller {
|
||||
{
|
||||
$this->_force_login();
|
||||
}
|
||||
else // If logged
|
||||
{
|
||||
$this->_setAddonID($username);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1978,12 +2008,19 @@ abstract class REST_Controller extends CI_Controller {
|
||||
preg_match_all('@(username|nonce|uri|nc|cnonce|qop|response)=[\'"]?([^\'",]+)@', $digest_string, $matches);
|
||||
$digest = (empty($matches[1]) || empty($matches[2])) ? [] : array_combine($matches[1], $matches[2]);
|
||||
|
||||
// For digest authentication the library function should return already stored md5(username:restrealm:password) for that username @see rest.php::auth_library_function config
|
||||
// For digest authentication the library function should return
|
||||
// already stored password for that username, even if it is hashed
|
||||
$username = $this->_check_login($digest['username'], TRUE);
|
||||
if (array_key_exists('username', $digest) === FALSE || $username === FALSE)
|
||||
// If there no password
|
||||
if (array_key_exists('username', $digest) === FALSE || $username === FALSE || $username === NULL)
|
||||
{
|
||||
$this->_force_login($unique_id);
|
||||
}
|
||||
// If the password was found for this username, generete the string md5('USERNAME:REALM:PASSWORD')
|
||||
else
|
||||
{
|
||||
$username = md5($digest['username'].":".$this->config->item('rest_realm').":".$username);
|
||||
}
|
||||
|
||||
$md5 = md5(strtoupper($this->request->method) . ':' . $digest['uri']);
|
||||
$valid_response = md5($username . ':' . $digest['nonce'] . ':' . $digest['nc'] . ':' . $digest['cnonce'] . ':' . $digest['qop'] . ':' . $md5);
|
||||
@@ -2148,5 +2185,4 @@ abstract class REST_Controller extends CI_Controller {
|
||||
->get($this->config->item('rest_access_table'))
|
||||
->num_rows() > 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,629 @@
|
||||
<?php
|
||||
/**
|
||||
* @name CodeIgniter Template Library
|
||||
* @author Jens Segers
|
||||
* @link http://www.jenssegers.be
|
||||
* @license MIT License Copyright (c) 2012 Jens Segers
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
if (!defined("BASEPATH"))
|
||||
exit("No direct script access allowed");
|
||||
|
||||
class Template
|
||||
{
|
||||
|
||||
/* default values */
|
||||
private $_template = 'template';
|
||||
private $_parser = FALSE;
|
||||
private $_cache_ttl = 0;
|
||||
private $_widget_path = '';
|
||||
|
||||
private $_ci;
|
||||
private $_partials = array();
|
||||
|
||||
/**
|
||||
* Construct with configuration array. Codeigniter will use the config file otherwise
|
||||
* @param array $config
|
||||
*/
|
||||
public function __construct($config = array())
|
||||
{
|
||||
$this->_ci = & get_instance();
|
||||
|
||||
// set the default widget path with APPPATH
|
||||
$this->_widget_path = APPPATH . 'widgets/';
|
||||
|
||||
if (!empty($config))
|
||||
$this->initialize($config);
|
||||
|
||||
log_message('debug', 'Template library initialized');
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize with configuration array
|
||||
* @param array $config
|
||||
* @return Template
|
||||
*/
|
||||
public function initialize($config = array())
|
||||
{
|
||||
foreach ($config as $key => $val)
|
||||
$this->{'_' . $key} = $val;
|
||||
|
||||
if ($this->_widget_path == '')
|
||||
$this->_widget_path = APPPATH . 'widgets/';
|
||||
|
||||
if ($this->_parser && !class_exists('CI_Parser'))
|
||||
$this->_ci->load->library('parser');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a partial's content. This will create a new partial when not existing
|
||||
* @param string $index
|
||||
* @param mixed $value
|
||||
*/
|
||||
public function __set($name, $value)
|
||||
{
|
||||
$this->partial($name)->set($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Access to partials for method chaining
|
||||
* @param string $name
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
return $this->partial($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a partial exists
|
||||
* @param string $index
|
||||
* @return boolean
|
||||
*/
|
||||
public function exists($index)
|
||||
{
|
||||
return array_key_exists($index, $this->_partials);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the template file
|
||||
* @param string $template
|
||||
*/
|
||||
public function set_template($template)
|
||||
{
|
||||
$this->_template = $template;
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish the template with the current partials
|
||||
* You can manually pass a template file with extra data, or use the default template from the config file
|
||||
* @param string $template
|
||||
* @param array $data
|
||||
*/
|
||||
public function publish($template = FALSE, $data = array()) {
|
||||
if (is_array($template) || is_object($template)) {
|
||||
$data = $template;
|
||||
} else if ($template) {
|
||||
$this->_template = $template;
|
||||
}
|
||||
|
||||
if (!$this->_template) {
|
||||
show_error('There was no template file selected for the current template');
|
||||
}
|
||||
|
||||
if (is_array($data) || is_object($data)) {
|
||||
foreach ($data as $name => $content) {
|
||||
$this->partial($name)->set($content);
|
||||
}
|
||||
}
|
||||
|
||||
unset($data);
|
||||
|
||||
if ($this->_parser) {
|
||||
$this->_ci->parser->parse($this->_template, $this->_partials);
|
||||
} else {
|
||||
$this->_ci->load->view($this->_template, $this->_partials);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a partial object with an optional default content
|
||||
* Can be usefull to use straight from the template file
|
||||
* @param string $name
|
||||
* @param string $default
|
||||
* @return Partial
|
||||
*/
|
||||
public function partial($name, $default = FALSE) {
|
||||
if ($this->exists($name)) {
|
||||
$partial = $this->_partials[$name];
|
||||
} else {
|
||||
// create new partial
|
||||
$partial = new Partial($name);
|
||||
if ($this->_cache_ttl) {
|
||||
$partial->cache($this->_cache_ttl);
|
||||
}
|
||||
|
||||
// detect local triggers
|
||||
if (method_exists($this, 'trigger_' . $name)) {
|
||||
$partial->bind($this, 'trigger_' . $name);
|
||||
}
|
||||
|
||||
$this->_partials[$name] = $partial;
|
||||
}
|
||||
|
||||
if (!$partial->content() && $default) {
|
||||
$partial->set($default);
|
||||
}
|
||||
|
||||
return $partial;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a widget object with optional parameters
|
||||
* Can be usefull to use straight from the template file
|
||||
* @param string $name
|
||||
* @param array $data
|
||||
* @return Widget
|
||||
*/
|
||||
public function widget($name, $data = array()) {
|
||||
$class = str_replace('.php', '', trim($name, '/'));
|
||||
|
||||
// determine path and widget class name
|
||||
$path = $this->_widget_path;
|
||||
if (($last_slash = strrpos($class, '/')) !== FALSE) {
|
||||
$path += substr($class, 0, $last_slash);
|
||||
$class = substr($class, $last_slash + 1);
|
||||
}
|
||||
|
||||
// new widget
|
||||
if(!class_exists($class)) {
|
||||
// try both lowercase and capitalized versions
|
||||
foreach (array(ucfirst($class), strtolower($class)) as $class) {
|
||||
if (file_exists($path . $class . '.php')) {
|
||||
include_once ($path . $class . '.php');
|
||||
|
||||
// found the file, stop looking
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!class_exists($class)) {
|
||||
show_error("Widget '" . $class . "' was not found.");
|
||||
}
|
||||
|
||||
return new $class($class, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable cache for all partials with TTL, default TTL is 60
|
||||
* @param int $ttl
|
||||
* @param mixed $identifier
|
||||
*/
|
||||
public function cache($ttl = 60, $identifier = '') {
|
||||
foreach ($this->_partials as $partial) {
|
||||
$partial->cache($ttl, $identifier);
|
||||
}
|
||||
|
||||
$this->_cache_ttl = $ttl;
|
||||
}
|
||||
|
||||
// ---- TRIGGERS -----------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Stylesheet trigger
|
||||
* @param string $source
|
||||
*/
|
||||
public function trigger_stylesheet($url, $attributes = FALSE) {
|
||||
// array support
|
||||
if (is_array($url)) {
|
||||
$return = '';
|
||||
foreach ($url as $u) {
|
||||
$return .= $this->trigger_stylesheet($u, $attributes);
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
if (!stristr($url, 'http://') && !stristr($url, 'https://') && substr($url, 0, 2) != '//') {
|
||||
$url = $this->_ci->config->item('base_url') . $url;
|
||||
}
|
||||
|
||||
// legacy support for media
|
||||
if (is_string($attributes)) {
|
||||
$attributes = array('media' => $attributes);
|
||||
}
|
||||
|
||||
if (is_array($attributes)) {
|
||||
$attributeString = "";
|
||||
|
||||
foreach ($attributes as $key => $value) {
|
||||
$attributeString .= $key . '="' . $value . '" ';
|
||||
}
|
||||
|
||||
return '<link rel="stylesheet" href="' . htmlspecialchars(strip_tags($url)) . '" ' . $attributeString . '>' . "\n\t";
|
||||
} else {
|
||||
return '<link rel="stylesheet" href="' . htmlspecialchars(strip_tags($url)) . '">' . "\n\t";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Javascript trigger
|
||||
* @param string $source
|
||||
*/
|
||||
public function trigger_javascript($url) {
|
||||
// array support
|
||||
if (is_array($url)) {
|
||||
$return = '';
|
||||
foreach ($url as $u) {
|
||||
$return .= $this->trigger_javascript($u);
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
if (!stristr($url, 'http://') && !stristr($url, 'https://') && substr($url, 0, 2) != '//') {
|
||||
$url = $this->_ci->config->item('base_url') . $url;
|
||||
}
|
||||
|
||||
return '<script src="' . htmlspecialchars(strip_tags($url)) . '"></script>' . "\n\t";
|
||||
}
|
||||
|
||||
/**
|
||||
* Meta trigger
|
||||
* @param string $name
|
||||
* @param mixed $value
|
||||
* @param enum $type
|
||||
*/
|
||||
public function trigger_meta($name, $value, $type = 'meta') {
|
||||
$name = htmlspecialchars(strip_tags($name));
|
||||
$value = htmlspecialchars(strip_tags($value));
|
||||
|
||||
if ($name == 'keywords' and !strpos($value, ',')) {
|
||||
$content = preg_replace('/[\s]+/', ', ', trim($value));
|
||||
}
|
||||
|
||||
switch ($type) {
|
||||
case 'meta' :
|
||||
$content = '<meta name="' . $name . '" content="' . $value . '">' . "\n\t";
|
||||
break;
|
||||
case 'link' :
|
||||
$content = '<link rel="' . $name . '" href="' . $value . '">' . "\n\t";
|
||||
break;
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
/**
|
||||
* Title trigger, keeps it clean
|
||||
* @param string $name
|
||||
* @param mixed $value
|
||||
* @param enum $type
|
||||
*/
|
||||
public function trigger_title($title) {
|
||||
return htmlspecialchars(strip_tags($title));
|
||||
}
|
||||
|
||||
/**
|
||||
* Title trigger, keeps it clean
|
||||
* @param string $name
|
||||
* @param mixed $value
|
||||
* @param enum $type
|
||||
*/
|
||||
public function trigger_description($description) {
|
||||
return htmlspecialchars(strip_tags($description));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Partial
|
||||
{
|
||||
|
||||
protected $_ci, $_content, $_name, $_cache_ttl = 0, $_cached = false, $_identifier, $_trigger;
|
||||
protected $_args = array();
|
||||
|
||||
/**
|
||||
* Construct with optional parameters
|
||||
* @param array $args
|
||||
*/
|
||||
public function __construct($name, $args = array()) {
|
||||
$this->_ci = &get_instance();
|
||||
$this->_args = $args;
|
||||
$this->_name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives access to codeigniter's functions from this class if needed
|
||||
* This will be handy in extending classes
|
||||
* @param string $index
|
||||
*/
|
||||
function __get($name) {
|
||||
return $this->_ci->$name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias methods
|
||||
*/
|
||||
function __call($name, $args) {
|
||||
switch ($name) {
|
||||
case 'default' :
|
||||
return call_user_func_array(array($this, 'set_default'), $args);
|
||||
break;
|
||||
case 'add' :
|
||||
return call_user_func_array(array($this, 'append'), $args);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the content when converted to a string
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return (string) $this->content();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the content
|
||||
* @return string
|
||||
*/
|
||||
public function content() {
|
||||
if ($this->_cache_ttl && !$this->_cached) {
|
||||
$this->cache->save($this->cache_id(), $this->_content, $this->_cache_ttl);
|
||||
}
|
||||
|
||||
return $this->_content;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overwrite the content
|
||||
* @param mixed $content
|
||||
* @return Partial
|
||||
*/
|
||||
public function set() {
|
||||
if (!$this->_cached) {
|
||||
$this->_content = (string) $this->trigger(func_get_args());
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append something to the content
|
||||
* @param mixed $content
|
||||
* @return Partial
|
||||
*/
|
||||
public function append() {
|
||||
if (!$this->_cached) {
|
||||
$this->_content .= (string) $this->trigger(func_get_args());
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepend something to the content
|
||||
* @param mixed $content
|
||||
* @return Partial
|
||||
*/
|
||||
public function prepend() {
|
||||
if (!$this->_cached) {
|
||||
$this->_content = (string) $this->trigger(func_get_args()) . $this->_content;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set content if partial is empty
|
||||
* @param mixed $default
|
||||
* @return Partial
|
||||
*/
|
||||
public function set_default($default) {
|
||||
if (!$this->_cached) {
|
||||
if (!$this->_content) {
|
||||
$this->_content = $default;
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a view inside this partial, overwrite if wanted
|
||||
* @param string $view
|
||||
* @param array $data
|
||||
* @param bool $overwrite
|
||||
* @return Partial
|
||||
*/
|
||||
public function view($view, $data = array(), $overwrite = false) {
|
||||
if (!$this->_cached) {
|
||||
|
||||
// better object to array
|
||||
if (is_object($data)) {
|
||||
$array = array();
|
||||
foreach ($data as $k => $v) {
|
||||
$array[$k] = $v;
|
||||
}
|
||||
$data = $array;
|
||||
}
|
||||
|
||||
$content = $this->_ci->load->view($view, $data, true);
|
||||
|
||||
if ($overwrite) {
|
||||
$this->set($content);
|
||||
} else {
|
||||
$this->append($content);
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a view inside this partial, overwrite if wanted
|
||||
* @param string $view
|
||||
* @param array $data
|
||||
* @param bool $overwrite
|
||||
* @return Partial
|
||||
*/
|
||||
public function parse($view, $data = array(), $overwrite = false) {
|
||||
if (!$this->_cached) {
|
||||
if (!class_exists('CI_Parser')) {
|
||||
$this->_ci->load->library('parser');
|
||||
}
|
||||
|
||||
// better object to array
|
||||
if (is_object($data)) {
|
||||
$array = array();
|
||||
foreach ($data as $k => $v) {
|
||||
$array[$k] = $v;
|
||||
}
|
||||
$data = $array;
|
||||
}
|
||||
|
||||
$content = $this->_ci->parser->parse($view, $data, true);
|
||||
|
||||
if ($overwrite) {
|
||||
$this->set($content);
|
||||
} else {
|
||||
$this->append($content);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a widget inside this partial, overwrite if wanted
|
||||
* @param string $name
|
||||
* @param array $data
|
||||
* @param bool $overwrite
|
||||
* @return Partial
|
||||
*/
|
||||
public function widget($name, $data = array(), $overwrite = false) {
|
||||
if (!$this->_cached) {
|
||||
$widget = $this->template->widget($name, $data);
|
||||
|
||||
if ($overwrite) {
|
||||
$this->set($widget->content());
|
||||
} else {
|
||||
$this->append($widget->content());
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable cache with TTL, default TTL is 60
|
||||
* @param int $ttl
|
||||
* @param mixed $identifier
|
||||
*/
|
||||
public function cache($ttl = 60, $identifier = '') {
|
||||
if (!class_exists('CI_Cache')) {
|
||||
$this->_ci->load->driver('cache', array('adapter' => 'file'));
|
||||
}
|
||||
|
||||
$this->_cache_ttl = $ttl;
|
||||
$this->_identifier = $identifier;
|
||||
|
||||
if ($cached = $this->_ci->cache->get($this->cache_id())) {
|
||||
$this->_cached = true;
|
||||
$this->_content = $cached;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Used for cache identification
|
||||
* @return string
|
||||
*/
|
||||
private function cache_id() {
|
||||
if ($this->_identifier) {
|
||||
return $this->_name . '_' . $this->_identifier . '_' . md5(get_class($this) . implode('', $this->_args));
|
||||
} else {
|
||||
return $this->_name . '_' . md5(get_class($this) . implode('', $this->_args));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Trigger returns the result if a trigger is set
|
||||
* @param array $args
|
||||
* @return string
|
||||
*/
|
||||
public function trigger($args) {
|
||||
if (!$this->_trigger) {
|
||||
return implode('', $args);
|
||||
} else {
|
||||
return call_user_func_array($this->_trigger, $args);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind a trigger function
|
||||
* Can be used like bind($this, "function") or bind("function")
|
||||
* @param mixed $arg
|
||||
*/
|
||||
public function bind() {
|
||||
if ($count = func_num_args()) {
|
||||
if ($count >= 2) {
|
||||
$args = func_get_args();
|
||||
$obj = array_shift($args);
|
||||
$func = array_pop($args);
|
||||
|
||||
foreach ($args as $trigger) {
|
||||
$obj = $obj->$trigger;
|
||||
}
|
||||
|
||||
$this->_trigger = array($obj, $func);
|
||||
} else {
|
||||
$args = func_get_args();
|
||||
$this->_trigger = reset($args);
|
||||
}
|
||||
} else {
|
||||
$this->_trigger = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Widget extends Partial
|
||||
{
|
||||
|
||||
/* (non-PHPdoc)
|
||||
* @see Partial::content()
|
||||
*/
|
||||
public function content() {
|
||||
if (!$this->_cached) {
|
||||
if (method_exists($this, 'display')) {
|
||||
// capture output
|
||||
ob_start();
|
||||
$this->display($this->_args);
|
||||
$buffer = ob_get_clean();
|
||||
|
||||
// if no content is produced but there was direct ouput we set
|
||||
// that output as content
|
||||
if (!$this->_content && $buffer) {
|
||||
$this->set($buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return parent::content();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
class Nation_model extends DB_Model
|
||||
{
|
||||
protected $_bundeslandQuery = "SELECT * FROM bis.tbl_bundesland";
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getAll($notLocked = FALSE, $orderEnglish = FALSE)
|
||||
{
|
||||
$result = NULL;
|
||||
|
||||
// Checks if the operation is permitted by the API caller
|
||||
// All the code should be put inside this if statement
|
||||
if(isAllowed($this->getAddonID(), 'nation'))
|
||||
{
|
||||
$result = $this->db->query($this->_getNationQuery($notLocked, $orderEnglish));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected function _getNationQuery($notLocked = FALSE, $orderEnglish = FALSE)
|
||||
{
|
||||
$qry = "SELECT * FROM bis.tbl_nation";
|
||||
|
||||
if($notLocked)
|
||||
{
|
||||
$qry .= " WHERE sperre IS NULL";
|
||||
}
|
||||
if(!$orderEnglish)
|
||||
{
|
||||
$qry .= " ORDER BY kurztext";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry .= " ORDER BY engltext";
|
||||
}
|
||||
|
||||
return $qry;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getBundesland()
|
||||
{
|
||||
$result = NULL;
|
||||
|
||||
// Checks if the operation is permitted by the API caller
|
||||
// All the code should be put inside this if statement
|
||||
if(isAllowed($this->getAddonID(), 'nation'))
|
||||
{
|
||||
$result = $this->db->query($this->_bundeslandQuery);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
class Sprache_model extends DB_Model
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable='public.tbl_sprache';
|
||||
$this->pk='sprache';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
class Studiengang_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getAllForBewerbung()
|
||||
{
|
||||
$result = NULL;
|
||||
$allForBewerbungQuery = "SELECT DISTINCT studiengang_kz,
|
||||
typ,
|
||||
organisationseinheittyp_kurzbz,
|
||||
studiengangbezeichnung,
|
||||
standort,
|
||||
studiengangbezeichnung_englisch,
|
||||
lgartcode,
|
||||
tbl_lgartcode.bezeichnung
|
||||
FROM lehre.vw_studienplan LEFT JOIN bis.tbl_lgartcode USING (lgartcode)
|
||||
WHERE onlinebewerbung IS TRUE
|
||||
AND aktiv IS TRUE
|
||||
ORDER BY typ, studiengangbezeichnung, tbl_lgartcode.bezeichnung ASC";
|
||||
|
||||
// Checks if the operation is permitted by the API caller
|
||||
// All the code should be put inside this if statement
|
||||
if(isAllowed($this->getAddonID(), 'course'))
|
||||
{
|
||||
$result = $this->db->query($allForBewerbungQuery);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
class Studienplan_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getStudienplaene($studiengang_kz)
|
||||
{
|
||||
$result = NULL;
|
||||
$studienplaeneQuery = "SELECT DISTINCT tbl_studienplan.*
|
||||
FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz = ?";
|
||||
|
||||
// Checks if the operation is permitted by the API caller
|
||||
// All the code should be put inside this if statement
|
||||
if(isAllowed($this->getAddonID(), 'plan'))
|
||||
{
|
||||
$result = $this->db->query($studienplaeneQuery, array($studiengang_kz));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
class Organisationseinheit_model extends DB_Model
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable='public.tbl_organisationseinheit';
|
||||
$this->pk='oe_kurzbz';
|
||||
}
|
||||
}
|
||||
@@ -2,157 +2,828 @@
|
||||
|
||||
class Person_model extends DB_Model
|
||||
{
|
||||
public function __construct($uid = null)
|
||||
{
|
||||
parent::__construct($uid);
|
||||
$this->dbTable = 'public.tbl_person';
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getPerson($person_id = null)
|
||||
{
|
||||
if (is_null($person_id))
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getPerson($personId = NULL, $code = NULL, $email = NULL)
|
||||
{
|
||||
$result = NULL;
|
||||
|
||||
// Checks if the operation is permitted by the API caller
|
||||
// All the code should be put inside this if statement
|
||||
if(isAllowed($this->getAddonID(), 'person'))
|
||||
{
|
||||
$query = $this->db->get_where('public.tbl_person', array());
|
||||
return $query->result_object();
|
||||
if((isset($code)) && (isset($email)))
|
||||
{
|
||||
$result = $this->_getPersonByCodeAndEmail($code, $email);
|
||||
}
|
||||
elseif(isset($code))
|
||||
{
|
||||
$result = $this->_getPersonByCode($code);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $this->_getPersonByID($personId);
|
||||
}
|
||||
}
|
||||
$query = $this->db->get_where('public.tbl_person', array('person_id' => $person_id));
|
||||
return $query->row_object();
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $personId Person ID
|
||||
* @return object
|
||||
*/
|
||||
private function _getPersonByID($personId = NULL)
|
||||
{
|
||||
$result = NULL;
|
||||
$loadQuery = "SELECT person_id,
|
||||
sprache,
|
||||
anrede,
|
||||
titelpost,
|
||||
titelpre,
|
||||
nachname,
|
||||
vorname,
|
||||
vornamen,
|
||||
gebdatum,
|
||||
gebort,
|
||||
gebzeit,
|
||||
foto,
|
||||
anmerkung,
|
||||
homepage,
|
||||
svnr,
|
||||
ersatzkennzeichen,
|
||||
familienstand,
|
||||
anzahlkinder,
|
||||
aktiv,
|
||||
insertamum,
|
||||
insertvon,
|
||||
updateamum,
|
||||
updatevon,
|
||||
ext_id,
|
||||
geschlecht,
|
||||
staatsbuergerschaft,
|
||||
geburtsnation,
|
||||
kurzbeschreibung,
|
||||
zugangscode,
|
||||
foto_sperre,
|
||||
matr_nr
|
||||
FROM public.tbl_person
|
||||
WHERE person_id = ?";
|
||||
|
||||
if(isset($personId))
|
||||
{
|
||||
$result = $this->db->query($loadQuery, array($personId));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getPersonByCodeAndEmail($code, $email)
|
||||
{
|
||||
// if ($this->fhc_db_acl->bb->isBerechtigt('person', 'suid'))
|
||||
// {
|
||||
$this->db->select("*")
|
||||
->from('public.tbl_person p')
|
||||
->join("public.tbl_kontakt k", "k.person_id=p.person_id")
|
||||
->where("p.zugangscode", $code)
|
||||
->where("k.kontakt", $email);
|
||||
|
||||
return $this->db->get()->result_object();
|
||||
// }
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _getPersonByCodeAndEmail($code = NULL, $email = NULL)
|
||||
{
|
||||
$result = NULL;
|
||||
$query = "SELECT *
|
||||
FROM public.tbl_person p JOIN public.tbl_kontakt k USING (person_id)
|
||||
WHERE p.zugangscode = ?
|
||||
AND k.kontakt = ?";
|
||||
|
||||
if((isset($code)) && (isset($email)))
|
||||
{
|
||||
$result = $this->db->query($query, array($code, $email));
|
||||
}
|
||||
|
||||
public function getPersonByCode($code)
|
||||
{
|
||||
// if ($this->fhc_db_acl->bb->isBerechtigt('person', 'suid'))
|
||||
// {
|
||||
$query = $this->db->get_where('public.tbl_person', array('zugangscode' => $code));
|
||||
return $query->result_object();
|
||||
// }
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt Personendaten eine BenutzerUID
|
||||
* @param string $uid DB-Attr: tbl_benutzer.uid .
|
||||
* @return bool
|
||||
*/
|
||||
public function getPersonFromBenutzerUID($uid)
|
||||
{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _getPersonByCode($code = NULL)
|
||||
{
|
||||
$result = NULL;
|
||||
$query = "SELECT *
|
||||
FROM public.tbl_person p
|
||||
WHERE p.zugangscode = ?";
|
||||
|
||||
if(isset($code))
|
||||
{
|
||||
$result = $this->db->query($query, array($code));
|
||||
}
|
||||
|
||||
if (!$this->fhc_db_acl->bb->isBerechtigt('person', 's'))
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function savePerson($person = NULL)
|
||||
{
|
||||
$result = FALSE;
|
||||
|
||||
// Checks if the operation is permitted by the API caller
|
||||
// All the code should be put inside this if statement
|
||||
if(isAllowed($this->getAddonID(), 'person'))
|
||||
{
|
||||
if($this->_validate($person))
|
||||
{
|
||||
if(isset($person['person_id']))
|
||||
{
|
||||
$result = $this->_updatePerson($person);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $this->_insertPerson($person);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _insertPerson($person)
|
||||
{
|
||||
$this->db->trans_begin(); // Start DB transaction
|
||||
|
||||
$insertQuery = "INSERT INTO public.tbl_person (
|
||||
sprache,
|
||||
anrede,
|
||||
titelpost,
|
||||
titelpre,
|
||||
nachname,
|
||||
vorname,
|
||||
vornamen,
|
||||
gebdatum,
|
||||
gebort,
|
||||
gebzeit,
|
||||
foto,
|
||||
anmerkung,
|
||||
homepage,
|
||||
svnr,
|
||||
ersatzkennzeichen,
|
||||
familienstand,
|
||||
anzahlkinder,
|
||||
aktiv,
|
||||
insertamum,
|
||||
insertvon,
|
||||
updateamum,
|
||||
updatevon,
|
||||
geschlecht,
|
||||
geburtsnation,
|
||||
staatsbuergerschaft,
|
||||
kurzbeschreibung,
|
||||
zugangscode,
|
||||
foto_sperre,
|
||||
matr_nr
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
||||
?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
||||
?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
|
||||
$sqlParametersArray = array($person['sprache'],
|
||||
$person['anrede'],
|
||||
$person['titelpost'],
|
||||
$person['titelpre'],
|
||||
$person['nachname'],
|
||||
$person['vorname'],
|
||||
$person['vornamen'],
|
||||
$person['gebdatum'],
|
||||
$person['gebort'],
|
||||
$person['gebzeit'],
|
||||
$person['foto'],
|
||||
$person['anmerkung'],
|
||||
$person['homepage'],
|
||||
$person['svnr'],
|
||||
$person['ersatzkennzeichen'],
|
||||
$person['familienstand'],
|
||||
$person['anzahlkinder'],
|
||||
$person['aktiv'],
|
||||
"now()",
|
||||
$person['insertvon'],
|
||||
"now()",
|
||||
$person['updatevon'],
|
||||
$person['geschlecht'],
|
||||
$person['geburtsnation'],
|
||||
$person['staatsbuergerschaft'],
|
||||
$person['kurzbeschreibung'],
|
||||
$person['zugangscode'],
|
||||
$person['foto_sperre'],
|
||||
$person['matr_nr']);
|
||||
|
||||
$result = $this->db->query($insertQuery, $sqlParametersArray);
|
||||
|
||||
// Check DB transaction result
|
||||
if($this->db->trans_status() === FALSE)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
$result = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->trans_commit();
|
||||
$result = TRUE;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _updatePerson($person)
|
||||
{
|
||||
$this->db->trans_begin(); // Start DB transaction
|
||||
|
||||
$updateQuery = "UPDATE public.tbl_person SET
|
||||
sprache = ?,
|
||||
anrede = ?,
|
||||
titelpost = ?,
|
||||
titelpre = ?,
|
||||
nachname = ?,
|
||||
vorname = ?,
|
||||
vornamen = ?,
|
||||
gebdatum = ?,
|
||||
gebort = ?,
|
||||
gebzeit = ?,
|
||||
foto = ?,
|
||||
anmerkung = ?,
|
||||
homepage = ?,
|
||||
svnr = ?,
|
||||
ersatzkennzeichen = ?,
|
||||
familienstand = ?,
|
||||
anzahlkinder = ?,
|
||||
aktiv = ?,
|
||||
updateamum = ?,
|
||||
updatevon = ?,
|
||||
geschlecht = ?,
|
||||
geburtsnation = ?,
|
||||
staatsbuergerschaft = ?,
|
||||
kurzbeschreibung = ?,
|
||||
foto_sperre = ?,
|
||||
zugangscode = ?,
|
||||
matr_nr = ?
|
||||
WHERE person_id = ?";
|
||||
|
||||
$sqlParametersArray = array($person['sprache'],
|
||||
$person['anrede'],
|
||||
$person['titelpost'],
|
||||
$person['titelpre'],
|
||||
$person['nachname'],
|
||||
$person['vorname'],
|
||||
$person['vornamen'],
|
||||
$person['gebdatum'],
|
||||
$person['gebort'],
|
||||
$person['gebzeit'],
|
||||
$person['foto'],
|
||||
$person['anmerkung'],
|
||||
$person['homepage'],
|
||||
$person['svnr'],
|
||||
$person['ersatzkennzeichen'],
|
||||
$person['familienstand'],
|
||||
$person['anzahlkinder'],
|
||||
$person['aktiv'],
|
||||
"now()",
|
||||
$person['updatevon'],
|
||||
$person['geschlecht'],
|
||||
$person['geburtsnation'],
|
||||
$person['staatsbuergerschaft'],
|
||||
$person['kurzbeschreibung'],
|
||||
$person['foto_sperre'],
|
||||
$person['zugangscode'],
|
||||
$person['matr_nr'],
|
||||
$person['person_id']);
|
||||
|
||||
$result = $this->db->query($updateQuery, $sqlParametersArray);
|
||||
|
||||
// Check DB transaction result
|
||||
if($this->db->trans_status() === FALSE)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
$result = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->trans_commit();
|
||||
$result = TRUE;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function savePrestudent($interestedStudent = NULL)
|
||||
{
|
||||
// Checks if the operation is permitted by the API caller
|
||||
// All the code should be put inside this if statement
|
||||
if(isAllowed($this->getAddonID(), 'person'))
|
||||
{
|
||||
return $this->_savePrestudent($interestedStudent);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method saveInterestedStudent
|
||||
*
|
||||
* @return bool true when everything goes right, otherwise false
|
||||
*/
|
||||
private function _savePrestudent($interestedStudent = NULL)
|
||||
{
|
||||
if(!isset($interestedStudent))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if($interestedStudent['zgvmas_code'] && $interestedStudent['zgvmanation'])
|
||||
{
|
||||
$interestedStudent['ausstellungsstaat'] = $interestedStudent['zgvmanation'];
|
||||
}
|
||||
elseif($interestedStudent['zgv_code'] && $interestedStudent['zgvnation'])
|
||||
{
|
||||
$interestedStudent['ausstellungsstaat'] = $interestedStudent['zgvnation'];
|
||||
}
|
||||
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(isset($interestedStudent['prestudent_id']) && $interestedStudent['punkte'] > 9999.9999)
|
||||
{
|
||||
//$this->errormsg = 'Reihungstestgesamtpunkte should be no bigger than 9999.9999';
|
||||
return FALSE;
|
||||
}
|
||||
if($interestedStudent['rt_punkte1'] > 9999.9999)
|
||||
{
|
||||
//$this->errormsg = 'Reihungstestpunkte1 should be no bigger than 9999.9999';
|
||||
return FALSE;
|
||||
}
|
||||
if($interestedStudent['rt_punkte2'] > 9999.9999)
|
||||
{
|
||||
//$this->errormsg = 'Reihungstestpunkte2 should be no bigger than 9999.9999';
|
||||
return FALSE;
|
||||
}
|
||||
if($interestedStudent['rt_punkte3'] > 9999.9999)
|
||||
{
|
||||
//$this->errormsg = 'Reihungstestpunkte3 should be no bigger than 9999.9999';
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$this->db->trans_begin(); // Start DB transaction
|
||||
|
||||
// If prestudent_id is NOT set it's an insert
|
||||
if(!isset($interestedStudent['prestudent_id']))
|
||||
{
|
||||
$insertQuery = "INSERT INTO public.tbl_prestudent (
|
||||
aufmerksamdurch_kurzbz,
|
||||
person_id,
|
||||
studiengang_kz,
|
||||
berufstaetigkeit_code,
|
||||
ausbildungcode,
|
||||
zgv_code,
|
||||
zgvort,
|
||||
zgvdatum,
|
||||
zgvnation,
|
||||
zgvmas_code,
|
||||
zgvmaort,
|
||||
zgvmadatum,
|
||||
zgvmanation,
|
||||
aufnahmeschluessel,
|
||||
facheinschlberuf,
|
||||
reihungstest_id,
|
||||
anmeldungreihungstest,
|
||||
reihungstestangetreten,
|
||||
rt_gesamtpunkte,
|
||||
rt_punkte1,
|
||||
rt_punkte2,
|
||||
rt_punkte3,
|
||||
bismelden,
|
||||
insertamum,
|
||||
insertvon,
|
||||
updateamum,
|
||||
updatevon,
|
||||
anmerkung,
|
||||
dual,
|
||||
ausstellungsstaat,
|
||||
mentor
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
||||
?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
||||
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
|
||||
$sqlParametersArray = array($interestedStudent['aufmerksamdurch_kurzbz'],
|
||||
$interestedStudent['person_id'],
|
||||
$interestedStudent['studiengang_kz'],
|
||||
$interestedStudent['berufstaetigkeit_code'],
|
||||
$interestedStudent['ausbildungcode'],
|
||||
$interestedStudent['zgv_code'],
|
||||
$interestedStudent['zgvort'],
|
||||
$interestedStudent['zgvdatum'],
|
||||
$interestedStudent['zgvnation'],
|
||||
$interestedStudent['zgvmas_code'],
|
||||
$interestedStudent['zgvmaort'],
|
||||
$interestedStudent['zgvmadatum'],
|
||||
$interestedStudent['zgvmanation'],
|
||||
$interestedStudent['aufnahmeschluessel'],
|
||||
$interestedStudent['facheinschlberuf'],
|
||||
$interestedStudent['reihungstest_id'],
|
||||
$interestedStudent['anmeldungreihungstest'],
|
||||
$interestedStudent['reihungstestangetreten'],
|
||||
$interestedStudent['rt_gesamtpunkte'],
|
||||
$interestedStudent['rt_punkte1'],
|
||||
$interestedStudent['rt_punkte2'],
|
||||
$interestedStudent['rt_punkte3'],
|
||||
$interestedStudent['bismelden'],
|
||||
$interestedStudent['insertamum'],
|
||||
$interestedStudent['insertvon'],
|
||||
$interestedStudent['updateamum'],
|
||||
$interestedStudent['updatevon'],
|
||||
$interestedStudent['anmerkung'],
|
||||
$interestedStudent['dual'],
|
||||
$interestedStudent['ausstellungsstaat'],
|
||||
$interestedStudent['mentor']);
|
||||
|
||||
$result = $this->db->query($insertQuery, $sqlParametersArray);
|
||||
}
|
||||
// otherwise it's an update
|
||||
else
|
||||
{
|
||||
$updateQuery = "UPDATE public.tbl_prestudent SET
|
||||
aufmerksamdurch_kurzbz = ?,
|
||||
person_id = ?,
|
||||
studiengang_kz = ?,
|
||||
berufstaetigkeit_code = ?,
|
||||
ausbildungcode = ?,
|
||||
zgv_code = ?,
|
||||
zgvort = ?,
|
||||
zgvdatum = ?,
|
||||
zgvnation = ?,
|
||||
zgvmas_code = ?,
|
||||
zgvmaort = ?,
|
||||
zgvmadatum = ?,
|
||||
zgvmanation = ?,
|
||||
aufnahmeschluessel = ?,
|
||||
facheinschlberuf = ?,
|
||||
reihungstest_id = ?,
|
||||
anmeldungreihungstest = ?,
|
||||
reihungstestangetreten = ?,
|
||||
rt_gesamtpunkte = ?,
|
||||
rt_punkte1 = ?,
|
||||
rt_punkte2 = ?,
|
||||
rt_punkte3 = ?,
|
||||
bismelden = ?,
|
||||
updateamum = ?,
|
||||
updatevon = ?,
|
||||
anmerkung = ?,
|
||||
mentor = ?,
|
||||
dual = ?,
|
||||
ausstellungsstaat = ?
|
||||
WHERE prestudent_id = ?";
|
||||
|
||||
$sqlParametersArray = array($interestedStudent['aufmerksamdurch_kurzbz'],
|
||||
$interestedStudent['person_id'],
|
||||
$interestedStudent['studiengang_kz'],
|
||||
$interestedStudent['berufstaetigkeit_code'],
|
||||
$interestedStudent['ausbildungcode'],
|
||||
$interestedStudent['zgv_code'],
|
||||
$interestedStudent['zgvort'],
|
||||
$interestedStudent['zgvdatum'],
|
||||
$interestedStudent['zgvnation'],
|
||||
$interestedStudent['zgvmas_code'],
|
||||
$interestedStudent['zgvmaort'],
|
||||
$interestedStudent['zgvmadatum'],
|
||||
$interestedStudent['zgvmanation'],
|
||||
$interestedStudent['aufnahmeschluessel'],
|
||||
$interestedStudent['facheinschlberuf'],
|
||||
$interestedStudent['reihungstest_id'],
|
||||
$interestedStudent['anmeldungreihungstest'],
|
||||
$interestedStudent['reihungstestangetreten'],
|
||||
$interestedStudent['punkte'],
|
||||
$interestedStudent['rt_punkte1'],
|
||||
$interestedStudent['rt_punkte2'],
|
||||
$interestedStudent['rt_punkte3'],
|
||||
$interestedStudent['bismelden'],
|
||||
$interestedStudent['updateamum'],
|
||||
$interestedStudent['updatevon'],
|
||||
$interestedStudent['anmerkung'],
|
||||
$interestedStudent['mentor'],
|
||||
$interestedStudent['dual'],
|
||||
$interestedStudent['ausstellungsstaat'],
|
||||
$interestedStudent['prestudent_id']);
|
||||
|
||||
$result = $this->db->query($updateQuery, $sqlParametersArray);
|
||||
}
|
||||
|
||||
// Check DB transaction result
|
||||
if($this->db->trans_status() === FALSE)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
$result = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->trans_commit();
|
||||
$result = TRUE;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
private function _validate($person = NULL)
|
||||
{
|
||||
if(!isset($person))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$person['nachname'] = trim($person['nachname']);
|
||||
$person['vorname'] = trim($person['vorname']);
|
||||
$person['vornamen'] = trim($person['vornamen']);
|
||||
$person['anrede'] = trim($person['anrede']);
|
||||
$person['titelpost'] = trim($person['titelpost']);
|
||||
$person['titelpre'] = trim($person['titelpre']);
|
||||
|
||||
if(mb_strlen($person['sprache']) > 16)
|
||||
{
|
||||
//$this->errormsg = 'Sprache darf nicht laenger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['anrede']) > 16)
|
||||
{
|
||||
//$this->errormsg = 'Anrede darf nicht laenger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['titelpost']) > 32)
|
||||
{
|
||||
//$this->errormsg = 'Titelpost darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['titelpre']) > 64)
|
||||
{
|
||||
//$this->errormsg = 'Titelpre darf nicht laenger als 64 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['nachname']) > 64)
|
||||
{
|
||||
//$this->errormsg = 'Nachname darf nicht laenger als 64 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if($person['nachname'] == '' || is_null($person['nachname']))
|
||||
{
|
||||
//$this->errormsg = 'Nachname muss eingegeben werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mb_strlen($person['vorname']) > 32)
|
||||
{
|
||||
//$this->errormsg = 'Vorname darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['vornamen']) > 128)
|
||||
{
|
||||
//$this->errormsg = 'Vornamen darf nicht laenger als 128 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
//ToDo Gebdatum pruefen -> laut bis muss student aelter als 10 Jahre sein
|
||||
/* if (strlen($person['gebdatum) == 0 || is_null($person['gebdatum))
|
||||
{
|
||||
//$this->errormsg = "Geburtsdatum muss eingegeben werden\n";
|
||||
return false;
|
||||
} */
|
||||
if(mb_strlen($person['gebort']) > 128)
|
||||
{
|
||||
//$this->errormsg = 'Geburtsort darf nicht laenger als 128 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mb_strlen($person['homepage']) > 256)
|
||||
{
|
||||
//$this->errormsg = 'Homepage darf nicht laenger als 256 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['svnr']) > 16)
|
||||
{
|
||||
//$this->errormsg = 'SVNR darf nicht laenger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mb_strlen($person['matr_nr']) > 32)
|
||||
{
|
||||
//$this->errormsg = 'Matrikelnummer darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($person['svnr'] != '' && mb_strlen($person['svnr']) != 16 && mb_strlen($person['svnr']) != 10)
|
||||
{
|
||||
//$this->errormsg = 'SVNR muss 10 oder 16 Zeichen lang sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($person['svnr'] != '' && mb_strlen($person['svnr']) == 10)
|
||||
{
|
||||
//SVNR mit Pruefziffer pruefen
|
||||
//Die 4. Stelle in der SVNR ist die Pruefziffer
|
||||
//(Summe von (gewichtung[i]*svnr[i])) modulo 11 ergibt diese Pruefziffer
|
||||
//Falls nicht, ist die SVNR ungueltig
|
||||
$gewichtung = array(3, 7, 9, 0, 5, 8, 4, 2, 1, 6);
|
||||
$erg = 0;
|
||||
//Quersumme bilden
|
||||
for($i = 0; $i < 10; $i++)
|
||||
{
|
||||
$erg += $gewichtung[$i] * $person['svnr']{$i};
|
||||
}
|
||||
|
||||
if($person['svnr']{3} != ($erg % 11)) //Vergleichen der Pruefziffer mit Quersumme Modulo 11
|
||||
{
|
||||
//$this->errormsg = 'SVNR ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if($person['svnr'] != '')
|
||||
{
|
||||
//Pruefen ob bereits ein Eintrag mit dieser SVNR vorhanden ist
|
||||
$qry = "SELECT person_id FROM public.tbl_person WHERE svnr=" . $person['svnr'];
|
||||
if(db_query($qry))
|
||||
{
|
||||
if($row = db_fetch_object())
|
||||
{
|
||||
if($row->person_id != $person['person_id'])
|
||||
{
|
||||
//$this->errormsg = 'Es existiert bereits eine Person mit dieser SVNR! Daten wurden NICHT gepeichert.';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(mb_strlen($person['ersatzkennzeichen']) > 10)
|
||||
{
|
||||
//$this->errormsg = 'Ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['familienstand']) > 1)
|
||||
{
|
||||
//$this->errormsg = 'Familienstand ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($person['anzahlkinder'] != '' && !is_numeric($person['anzahlkinder']))
|
||||
{
|
||||
//$this->errormsg = 'Anzahl der Kinder ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if($person['aktiv'] != "t" && $person['aktiv'] != "f")
|
||||
{
|
||||
//$this->errormsg = 'Aktiv ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(!isset($person['person_id']) && mb_strlen($person['insertvon']) > 32)
|
||||
{
|
||||
//$this->errormsg = 'Insertvon darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['updatevon']) > 32)
|
||||
{
|
||||
//$this->errormsg = 'Updatevon darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
/*if($person['ext_id'] != '' && !is_numeric($person['ext_id']))
|
||||
{
|
||||
//$this->errormsg = 'Ext_ID ist keine gueltige Zahl';
|
||||
return false;
|
||||
}*/
|
||||
if(mb_strlen($person['geschlecht']) > 1)
|
||||
{
|
||||
//$this->errormsg = 'Geschlecht darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['geburtsnation']) > 3)
|
||||
{
|
||||
//$this->errormsg = 'Geburtsnation darf nicht laenger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($person['staatsbuergerschaft']) > 3)
|
||||
{
|
||||
//$this->errormsg = 'Staatsbuergerschaft darf nicht laenger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if($person['geschlecht'] != 'm' && $person['geschlecht'] != 'w' && $person['geschlecht'] != 'u')
|
||||
{
|
||||
//$this->errormsg = 'Geschlecht muss w, m oder u sein!';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Pruefen ob das Geburtsdatum mit der SVNR uebereinstimmt.
|
||||
if($person['svnr'] != '' && $person['gebdatum'] != '')
|
||||
{
|
||||
if(mb_ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{4})", $person['gebdatum'], $regs))
|
||||
{
|
||||
//$day = sprintf('%02s',$regs[1]);
|
||||
//$month = sprintf('%02s',$regs[2]);
|
||||
//$year = mb_substr($regs[3],2,2);
|
||||
}
|
||||
elseif(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $person['gebdatum'], $regs))
|
||||
{
|
||||
//$day = sprintf('%02s',$regs[3]);
|
||||
//$month = sprintf('%02s',$regs[2]);
|
||||
//$year = mb_substr($regs[1],2,2);
|
||||
}
|
||||
else
|
||||
{
|
||||
//$this->errormsg = 'Format des Geburtsdatums ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
/* das muss nicht immer so sein
|
||||
$day_svnr = mb_substr($person['svnr, 4, 2);
|
||||
$month_svnr = mb_substr($person['svnr, 6, 2);
|
||||
$year_svnr = mb_substr($person['svnr, 8, 2);
|
||||
|
||||
if ($day_svnr!=$day || $month_svnr!=$month || $year_svnr!=$year)
|
||||
{
|
||||
//$this->errormsg = 'SVNR und Geburtsdatum passen nicht zusammen';
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt Personendaten eine BenutzerUID
|
||||
* @param string $uid DB-Attr: tbl_benutzer.uid .
|
||||
* @return bool
|
||||
*/
|
||||
public function getPersonFromBenutzerUID($uid)
|
||||
{
|
||||
|
||||
if(!$this->fhc_db_acl->bb->isBerechtigt('person', 's'))
|
||||
{
|
||||
$this->db->select('tbl_person.*');
|
||||
$this->db->from('public.tbl_person JOIN public.tbl_benutzer USING (person_id)');
|
||||
$query = $this->db->get_where(null, array('uid' => $uid));
|
||||
return $query->result_object();
|
||||
}
|
||||
}
|
||||
|
||||
public function savePerson($person)
|
||||
{
|
||||
//TODO check berechtigung
|
||||
// if($this->fhc_db_acl->bb->isBerechtigt('person', 'sui'))
|
||||
// {
|
||||
$data = array(
|
||||
"vorname"=>$person["vorname"],
|
||||
"nachname"=>$person["nachname"],
|
||||
"gebdatum"=>$person["gebdatum"],
|
||||
"aktiv" => true,
|
||||
"zugangscode"=>$person["zugangscode"],
|
||||
"zugangscode_timestamp"=>date('Y-m-d H:i:s'),
|
||||
"insertamum"=>date('Y-m-d H:i:s'),
|
||||
"insertvon"=>$person["insertvon"],
|
||||
);
|
||||
if($this->db->insert("public.tbl_person", $data)){
|
||||
return $this->db->insert_id();
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return "Nicht berechtigt";
|
||||
// }
|
||||
}
|
||||
|
||||
public function checkBewerbung($email, $studiensemester_kurzbz=NULL)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function checkBewerbung($email, $studiensemester_kurzbz = NULL)
|
||||
{
|
||||
$this->db->distinct();
|
||||
|
||||
if(is_null($studiensemester_kurzbz))
|
||||
{
|
||||
$this->db->select("p.person_id, p.zugangscode, p.insertamum")
|
||||
->from("public.tbl_person p")
|
||||
->join("public.tbl_kontakt k", "p.person_id=k.person_id")
|
||||
->join("public.tbl_benutzer b", "p.person_id=b.person_id", "left")
|
||||
->where("k.kontakttyp", 'email')
|
||||
->where("(kontakt='".$email."'".
|
||||
" OR alias ||'@technikum-wien.at'='".$email."'".
|
||||
" OR uid ||'@technikum-wien.at'='".$email."')")
|
||||
->order_by("p.insertamum", "DESC")
|
||||
->limit(1)
|
||||
->from("public.tbl_person p")
|
||||
->join("public.tbl_kontakt k", "p.person_id=k.person_id")
|
||||
->join("public.tbl_benutzer b", "p.person_id=b.person_id", "left")
|
||||
->where("k.kontakttyp", 'email')
|
||||
->where("(kontakt='" . $email . "'" .
|
||||
" OR alias ||'@technikum-wien.at'='" . $email . "'" .
|
||||
" OR uid ||'@technikum-wien.at'='" . $email . "')")
|
||||
->order_by("p.insertamum", "DESC")
|
||||
->limit(1)
|
||||
;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->select("p.person_id,p.zugangscode,p.insertamum")
|
||||
->from("public.tbl_person p")
|
||||
->join("public.tbl_kontakt k", "p.person_id=k.person_id")
|
||||
->join("public.tbl_benutzer b", "p.person_id=b.person_id", "left")
|
||||
->join("public.tbl_prestudent ps", "p.person_id=ps.person_id")
|
||||
->join("public.tbl_prestudentstatus pst", "pst.prestudent_id=ps.prestudent_id")
|
||||
->where("k.kontakttyp", 'email')
|
||||
->where("(kontakt='".$email."'".
|
||||
" OR alias ||'@technikum-wien.at'='".$email."'".
|
||||
" OR uid ||'@technikum-wien.at'='".$email."')")
|
||||
->where("studiensemester_kurzbz='".$studiensemester_kurzbz."'")
|
||||
->order_by("p.insertamum", "DESC")
|
||||
->limit(1)
|
||||
->from("public.tbl_person p")
|
||||
->join("public.tbl_kontakt k", "p.person_id=k.person_id")
|
||||
->join("public.tbl_benutzer b", "p.person_id=b.person_id", "left")
|
||||
->join("public.tbl_prestudent ps", "p.person_id=ps.person_id")
|
||||
->join("public.tbl_prestudentstatus pst", "pst.prestudent_id=ps.prestudent_id")
|
||||
->where("k.kontakttyp", 'email')
|
||||
->where("(kontakt='" . $email . "'" .
|
||||
" OR alias ||'@technikum-wien.at'='" . $email . "'" .
|
||||
" OR uid ||'@technikum-wien.at'='" . $email . "')")
|
||||
->where("studiensemester_kurzbz='" . $studiensemester_kurzbz . "'")
|
||||
->order_by("p.insertamum", "DESC")
|
||||
->limit(1)
|
||||
;
|
||||
}
|
||||
return $this->db->get()->result_array();
|
||||
}
|
||||
}
|
||||
|
||||
public function checkZugangscodePerson($code)
|
||||
{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function checkZugangscodePerson($code)
|
||||
{
|
||||
$this->db->select("p.person_id")
|
||||
->from("public.tbl_person p")
|
||||
->where("p.zugangscode", $code);
|
||||
->from("public.tbl_person p")
|
||||
->where("p.zugangscode", $code);
|
||||
return $this->db->get()->result_array();
|
||||
}
|
||||
|
||||
public function updatePerson($person)
|
||||
{
|
||||
//TODO check berechtigung
|
||||
// if($this->fhc_db_acl->bb->isBerechtigt('person', 'sui'))
|
||||
// {
|
||||
//TODO set other columns to be updated
|
||||
$this->db->set("zugangscode", $person["zugangscode"]);
|
||||
$this->db->where("person_id", $person["person_id"]);
|
||||
if($this->db->update("public.tbl_person")){
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return "Nicht berechtigt";
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
class Prestudent_model extends DB_Model
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable='public.tbl_prestudent';
|
||||
$this->pk='prestudent_id';
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function loadPrestudentPerson($prestudentID)
|
||||
{
|
||||
$this->db->select('*')
|
||||
->from('public.tbl_prestudent')
|
||||
->join('public.tbl_person', 'person_id')
|
||||
->where('prestudent_id', $prestudentID);
|
||||
return $this->db->get()->result_array();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Executable
+119
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
trait db_extra
|
||||
{
|
||||
protected $db_result=null;
|
||||
|
||||
public function db_query($sql)
|
||||
{
|
||||
if ($this->db_result=$this->db->simple_query($sql))
|
||||
return $this->db_result;
|
||||
else
|
||||
{
|
||||
$this->errormsg.='Abfrage in Datenbank fehlgeschlagen! '.$this->db_last_error();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function db_fetch_object($result = null, $i=null)
|
||||
{
|
||||
if(is_null($result))
|
||||
{
|
||||
if(is_null($i))
|
||||
return pg_fetch_object($this->db_result);
|
||||
else
|
||||
return pg_fetch_object($this->db_result, $i);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(is_null($i))
|
||||
return pg_fetch_object($result);
|
||||
else
|
||||
return pg_fetch_object($result, $i);
|
||||
}
|
||||
}
|
||||
|
||||
public function db_add_param($var, $type=FHC_STRING, $nullable=true)
|
||||
{
|
||||
if($var==='' && $type!=FHC_BOOLEAN)
|
||||
{
|
||||
if($nullable)
|
||||
return 'null';
|
||||
else
|
||||
return "''";
|
||||
}
|
||||
|
||||
switch($type)
|
||||
{
|
||||
case FHC_INTEGER:
|
||||
$var = $this->db_escape($var);
|
||||
if(!is_numeric($var) && $var!=='')
|
||||
die('Invalid Integer Parameter detected:'.$var);
|
||||
$var = $this->db_null_value($var, false);
|
||||
break;
|
||||
|
||||
case FHC_BOOLEAN:
|
||||
if($var===true)
|
||||
$var='true';
|
||||
elseif($var===false)
|
||||
$var='false';
|
||||
elseif($var=='' && $nullable)
|
||||
$var = 'null';
|
||||
else
|
||||
die('Invalid Boolean Parameter detected');
|
||||
break;
|
||||
|
||||
case FHC_STRING:
|
||||
default:
|
||||
$var = $this->db_escape($var);
|
||||
$var = $this->db_null_value($var);
|
||||
break;
|
||||
}
|
||||
return $var;
|
||||
}
|
||||
|
||||
public function db_escape($var)
|
||||
{
|
||||
return pg_escape_string($var);
|
||||
}
|
||||
|
||||
public function db_null_value($var, $qoute=true)
|
||||
{
|
||||
if($qoute)
|
||||
return ($var!==''?$this->db_qoute($var):'null');
|
||||
else
|
||||
return ($var!==''?$var:'null');
|
||||
}
|
||||
|
||||
public function db_qoute($var)
|
||||
{
|
||||
return "'".$var."'";
|
||||
}
|
||||
|
||||
public function db_parse_bool($var)
|
||||
{
|
||||
if($var=='t')
|
||||
return true;
|
||||
elseif($var=='f')
|
||||
return false;
|
||||
elseif($var=='')
|
||||
return '';
|
||||
else
|
||||
die('Invalid DB Boolean. Wrong DB-Engine?');
|
||||
}
|
||||
|
||||
/**
|
||||
* Bereitet ein Array von Elementen auf, damit es in der IN-Klausel eines
|
||||
* Select Befehls verwendet werden kann.
|
||||
*/
|
||||
public function db_implode4SQL($array)
|
||||
{
|
||||
$string = '';
|
||||
foreach($array as $row)
|
||||
{
|
||||
if($string!='')
|
||||
$string.=',';
|
||||
$string.=$this->db_add_param($row);
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
}
|
||||
+6
-101
@@ -347,6 +347,11 @@ if (isset($assign_to_config) && is_array($assign_to_config))
|
||||
*/
|
||||
$LANG =& load_class('Lang', 'core');
|
||||
|
||||
define('FHC_INTEGER',1);
|
||||
define('FHC_STRING',2);
|
||||
define('FHC_BOOLEAN',3);
|
||||
define('FHC_LANG_ARRAY',4);
|
||||
|
||||
function &get_instance()
|
||||
{
|
||||
return CI_Controller::get_instance();
|
||||
@@ -364,105 +369,5 @@ require_once(dirname(__FILE__).'/application/core/FHC_Model.php');
|
||||
$model=new CI_Model();
|
||||
|
||||
// Traits
|
||||
trait db_extra
|
||||
{
|
||||
protected $db_result=null;
|
||||
require_once(dirname(__FILE__).'db_extra.php');
|
||||
|
||||
public function db_query($sql)
|
||||
{
|
||||
if ($this->db_result=$this->db->simple_query($sql))
|
||||
return $this->db_result;
|
||||
else
|
||||
{
|
||||
$this->errormsg.='Abfrage in Datenbank fehlgeschlagen! '.$this->db_last_error();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function db_fetch_object($result = null, $i=null)
|
||||
{
|
||||
if(is_null($result))
|
||||
{
|
||||
if(is_null($i))
|
||||
return pg_fetch_object($this->db_result);
|
||||
else
|
||||
return pg_fetch_object($this->db_result, $i);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(is_null($i))
|
||||
return pg_fetch_object($result);
|
||||
else
|
||||
return pg_fetch_object($result, $i);
|
||||
}
|
||||
}
|
||||
|
||||
public function db_add_param($var, $type=FHC_STRING, $nullable=true)
|
||||
{
|
||||
if($var==='' && $type!=FHC_BOOLEAN)
|
||||
{
|
||||
if($nullable)
|
||||
return 'null';
|
||||
else
|
||||
return "''";
|
||||
}
|
||||
|
||||
switch($type)
|
||||
{
|
||||
case FHC_INTEGER:
|
||||
$var = $this->db_escape($var);
|
||||
if(!is_numeric($var) && $var!=='')
|
||||
die('Invalid Integer Parameter detected:'.$var);
|
||||
$var = $this->db_null_value($var, false);
|
||||
break;
|
||||
|
||||
case FHC_BOOLEAN:
|
||||
if($var===true)
|
||||
$var='true';
|
||||
elseif($var===false)
|
||||
$var='false';
|
||||
elseif($var=='' && $nullable)
|
||||
$var = 'null';
|
||||
else
|
||||
die('Invalid Boolean Parameter detected');
|
||||
break;
|
||||
|
||||
case FHC_STRING:
|
||||
default:
|
||||
$var = $this->db_escape($var);
|
||||
$var = $this->db_null_value($var);
|
||||
break;
|
||||
}
|
||||
return $var;
|
||||
}
|
||||
|
||||
public function db_escape($var)
|
||||
{
|
||||
return pg_escape_string($var);
|
||||
}
|
||||
|
||||
public function db_null_value($var, $qoute=true)
|
||||
{
|
||||
if($qoute)
|
||||
return ($var!==''?$this->db_qoute($var):'null');
|
||||
else
|
||||
return ($var!==''?$var:'null');
|
||||
}
|
||||
|
||||
public function db_qoute($var)
|
||||
{
|
||||
return "'".$var."'";
|
||||
}
|
||||
|
||||
public function db_parse_bool($var)
|
||||
{
|
||||
if($var=='t')
|
||||
return true;
|
||||
elseif($var=='f')
|
||||
return false;
|
||||
elseif($var=='')
|
||||
return '';
|
||||
else
|
||||
die('Invalid DB Boolean. Wrong DB-Engine?');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
// Oberflaeche zum Upload von Bildern
|
||||
|
||||
session_cache_limiter('none'); //muss gesetzt werden damit der upload in chrome und das automatische updaten des profilbildes funktioniert
|
||||
//session_cache_limiter('none'); //muss gesetzt werden damit der upload in chrome und das automatische updaten des profilbildes funktioniert
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/person.class.php');
|
||||
|
||||
@@ -119,4 +119,4 @@
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -46,7 +46,7 @@ if(isset($_GET['stsem']))
|
||||
else
|
||||
die('Eine Studiensemester muss uebergeben werden');
|
||||
|
||||
if(!$berechtigung->isBerechtigt('admin') && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester))
|
||||
if(!$berechtigung->isBerechtigt('admin') && !$berechtigung->isBerechtigt('assistenz') && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester))
|
||||
die('Sie muessen LektorIn der LV oder Admin sein, um diese Seite aufrufen zu koennen');
|
||||
|
||||
$output='pdf';
|
||||
@@ -95,9 +95,6 @@ $stg->load($lv->studiengang_kz);
|
||||
|
||||
$studiengang_bezeichnung=$stg->bezeichnung;
|
||||
|
||||
$teilnehmer = $lv->getStudentsOfLv($lvid, $studiensemester, $lehreinheit);
|
||||
$anzahl_studierende=count($teilnehmer);
|
||||
|
||||
$stg->getAllTypes();
|
||||
|
||||
$data = array(
|
||||
@@ -111,7 +108,6 @@ $data = array(
|
||||
'sprache'=>$lv->sprache,
|
||||
'studiensemester'=>$studiensemester,
|
||||
'semester'=>$lv->semester,
|
||||
'anzahl_studierende'=>$anzahl_studierende,
|
||||
'orgform'=>$lv->orgform_kurzbz,
|
||||
);
|
||||
|
||||
@@ -159,13 +155,16 @@ $erhalter = new erhalter();
|
||||
$erhalter->getAll();
|
||||
|
||||
$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW)
|
||||
$anzahl_studierende = 0;
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($row->status!='Abbrecher' && $row->status!='Unterbrecher')
|
||||
{
|
||||
$anzahl_studierende++;
|
||||
|
||||
if($row->status=='Incoming') //Incoming
|
||||
$zusatz='(i)';
|
||||
else
|
||||
@@ -193,10 +192,13 @@ if($result = $db->db_query($qry))
|
||||
'zusatz'=>$zusatz
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
//Anzahl Studierende in Array $data (an erster Stelle) einfuegen
|
||||
$data = array_reverse($data, true);
|
||||
$data['anzahl_studierende'] = $anzahl_studierende;
|
||||
$data = array_reverse($data, true);
|
||||
}
|
||||
|
||||
//var_dump($data);
|
||||
//$files=array();
|
||||
/*
|
||||
foreach($codes_obj->result as $code)
|
||||
@@ -230,4 +232,4 @@ foreach($files as $file)
|
||||
unlink($file);
|
||||
*/
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
@@ -44,5 +44,5 @@ switch($work)
|
||||
$note = $notenschluessel->getNote($punkte, $lehrveranstaltung_id, $studiensemester_kurzbz);
|
||||
echo $note;
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -131,7 +131,8 @@ echo '<!DOCTYPE HTML>
|
||||
|
||||
</style>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
|
||||
var notenrequests=0;
|
||||
var notenrequests_arr=Array();
|
||||
var noten_array=Array();
|
||||
';
|
||||
|
||||
@@ -253,7 +254,7 @@ foreach($noten_obj->result as $row)
|
||||
{
|
||||
if(typeof(typ)=='undefined')
|
||||
typ = 'Termin2';
|
||||
var str = "<form name='nachpruefung_form'><center><table style='width:95%'><tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
|
||||
var str = "<form name='nachpruefung_form'><table style='width:95%'><tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
|
||||
|
||||
var anlegendiv = document.getElementById("nachpruefung_div");
|
||||
var y = getOffset('y');
|
||||
@@ -290,8 +291,8 @@ foreach($noten_obj->result as $row)
|
||||
}
|
||||
echo '</select></td>';
|
||||
?>';
|
||||
str += "</tr><tr><td colspan='2' align='center'><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='pruefungSpeichern();'></td></tr>";
|
||||
str += "</table></center></form>";
|
||||
str += "</tr><tr><td colspan='2' align='center'><input id='pruefungsnotensave' type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='pruefungSpeichern();'></td></tr>";
|
||||
str += "</table></form>";
|
||||
anlegendiv.innerHTML = str;
|
||||
anlegendiv.style.visibility = "visible";
|
||||
$('#pruefungsdatum').datepicker();
|
||||
@@ -411,6 +412,10 @@ foreach($noten_obj->result as $row)
|
||||
// Request absetzen und Note zu den Punkten holen
|
||||
if(punkte!='')
|
||||
{
|
||||
if(typeof(notenrequests_arr[idx])=='undefined')
|
||||
notenrequests_arr[idx]=0;
|
||||
notenrequests_arr[idx]=notenrequests_arr[idx]+1;
|
||||
$('#button-note-save-'+idx).prop('disabled',true);
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"lvgesamtnote_worker.php",
|
||||
@@ -422,14 +427,21 @@ foreach($noten_obj->result as $row)
|
||||
success:function(result)
|
||||
{
|
||||
note=result;
|
||||
notenrequests_arr[idx]=notenrequests_arr[idx]-1;
|
||||
|
||||
var notendropdown = $('#dropdown-note-'+idx);
|
||||
notendropdown.val(note);
|
||||
notendropdown.prop('disabled',true);
|
||||
|
||||
if(notenrequests_arr[idx]==0)
|
||||
{
|
||||
$('#button-note-save-'+idx).prop('disabled',false);
|
||||
}
|
||||
},
|
||||
error:function(result)
|
||||
{
|
||||
alert('Noten ermittlung fehlgeschlagen');
|
||||
notenrequests_arr[idx]=notenrequests_arr[idx]-1;
|
||||
alert('Notenermittlung fehlgeschlagen');
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -452,6 +464,8 @@ foreach($noten_obj->result as $row)
|
||||
// Request absetzen und Note zu den Punkten holen
|
||||
if(punkte!='')
|
||||
{
|
||||
notenrequests = notenrequests+1;
|
||||
$('#pruefungsnotensave').prop('disabled',true);
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"lvgesamtnote_worker.php",
|
||||
@@ -462,14 +476,21 @@ foreach($noten_obj->result as $row)
|
||||
},
|
||||
success:function(result)
|
||||
{
|
||||
notenrequests = notenrequests-1;
|
||||
note=result;
|
||||
|
||||
var notendropdown = $('#pruefungnoteselect');
|
||||
notendropdown.val(note);
|
||||
notendropdown.prop('disabled',true);
|
||||
|
||||
if(notenrequests==0)
|
||||
$('#pruefungsnotensave').prop('disabled',false);
|
||||
},
|
||||
error:function(result)
|
||||
{
|
||||
notenrequests = notenrequests-1;
|
||||
if(notenrequests==0)
|
||||
$('#pruefungsnotensave').prop('disabled',false);
|
||||
alert('Noten ermittlung fehlgeschlagen');
|
||||
}
|
||||
});
|
||||
@@ -673,7 +694,8 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1))
|
||||
{
|
||||
$studlist.="<td><b>".$p->t('benotungstool/punkte')."</b></td>\n";
|
||||
}
|
||||
$studlist.="<td><b>".$p->t('benotungstool/note')."</b></td></tr>\n";
|
||||
$studlist.="<td><b>".$p->t('benotungstool/note')."</b></td>\n";
|
||||
$studlist.="<td><b>".$p->t('benotungstool/bearbeitetvon')."</b></td></tr>\n";
|
||||
|
||||
// studentenquery
|
||||
$qry_stud = "SELECT
|
||||
@@ -705,7 +727,8 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1))
|
||||
{
|
||||
$studlist.="<td>".($lvgesamtnote->punkte!=''?trim(number_format($lvgesamtnote->punkte,2)):'')."</td>\n";
|
||||
}
|
||||
$studlist.="<td>".$noten_array[trim($lvgesamtnote->note)]['bezeichnung']."</td></tr>\n";
|
||||
$studlist.="<td>".$noten_array[trim($lvgesamtnote->note)]['bezeichnung']."</td>";
|
||||
$studlist.="<td>".$lvgesamtnote->mitarbeiter_uid.($lvgesamtnote->updatevon!=''?" (".$lvgesamtnote->updatevon.")":'')."</td></tr>\n";
|
||||
$neuenoten++;
|
||||
}
|
||||
}
|
||||
@@ -733,7 +756,15 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1))
|
||||
|
||||
$freigeber = "<b>".mb_strtoupper($user)."</b>";
|
||||
$mail = new mail($adressen, 'vilesci@'.DOMAIN, 'Notenfreigabe '.$lv->bezeichnung." ".$lv->orgform_kurzbz.' - '.$studienplan_bezeichnung,'');
|
||||
$htmlcontent="<html><body><b>".$sg->kuerzel.' '.$lv->semester.'.Semester '.$lv->bezeichnung." ".$lv->orgform_kurzbz." - ".$stsem."</b> (".$lv->semester.". Sem.) <br><br>".$p->t('global/benutzer')." ".$freigeber." (".$mit->kurzbz.") ".$p->t('benotungstool/hatDieLvNotenFuerFolgendeStudenten').":<br><br>\n".$studlist."<br>".$p->t('abgabetool/mailVerschicktAn').": ".$adressen."</body></html>";
|
||||
$htmlcontent="<html>
|
||||
<body>
|
||||
<b>".$sg->kuerzel.' '.$lv->semester.'.Semester '.$lv->bezeichnung." ".$lv->orgform_kurzbz." - ".$stsem."</b>
|
||||
(".$lv->semester.". Sem.)
|
||||
<br><br>".$p->t('global/benutzer')." ".$freigeber." (".$mit->kurzbz.") ".$p->t('benotungstool/hatDieLvNotenFuerFolgendeStudenten').":
|
||||
<br><br>\n".$studlist."
|
||||
<br>Anzahl der Noten:".$neuenoten."
|
||||
<br>".$p->t('abgabetool/mailVerschicktAn').": ".$adressen."
|
||||
</body></html>";
|
||||
$mail->setHTMLContent($htmlcontent);
|
||||
$mail->setReplyTo($lektor_adresse);
|
||||
$mail->send();
|
||||
@@ -1201,7 +1232,7 @@ echo "
|
||||
echo '</select>';
|
||||
echo "
|
||||
<input type='hidden' name='note_orig' value='$note_lv'>
|
||||
<input type='button' value='->' onclick=\"saveLVNote('".$row_stud->uid."');\">
|
||||
<input type='button' id='button-note-save-".$i."' value='->' onclick=\"saveLVNote('".$row_stud->uid."');\">
|
||||
</span>
|
||||
</form></td>";
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ require_once('../../../../include/mail.class.php');
|
||||
require_once('../../../../include/benutzerfunktion.class.php');
|
||||
require_once('../../../../include/benutzer.class.php');
|
||||
require_once('../../../../include/student.class.php');
|
||||
require_once('../../../../include/notenschluessel.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Herstellen der Datenbankverbindung');
|
||||
@@ -103,6 +104,18 @@ else
|
||||
|
||||
$punkte = str_replace(',','.',$punkte);
|
||||
|
||||
if($punkte!='')
|
||||
{
|
||||
// Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
|
||||
$notenschluessel = new notenschluessel();
|
||||
$note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
|
||||
if($note_pruef!=$note)
|
||||
{
|
||||
$note = $note_pruef;
|
||||
$note_dirty=true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($_GET['typ']))
|
||||
{
|
||||
$typ='Termin2';
|
||||
|
||||
@@ -209,6 +209,7 @@ else
|
||||
</thead>
|
||||
<tbody>";
|
||||
$i=0;
|
||||
$legende = false;
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
@@ -237,10 +238,13 @@ else
|
||||
}
|
||||
|
||||
if ($row->note != $row->lvnote && $row->lvnote != NULL)
|
||||
$markier = " style='border: 1px solid red;'";
|
||||
{
|
||||
$markier = " style='background-color: #FFD999;'";
|
||||
$legende=true;
|
||||
}
|
||||
else
|
||||
$markier = "";
|
||||
$tbl .= "<td".$markier.">";
|
||||
$tbl .= "<td ".$markier.">";
|
||||
|
||||
if(isset($notenarr[$row->note]))
|
||||
$tbl.=$notenarr[$row->note];
|
||||
@@ -288,6 +292,9 @@ else
|
||||
|
||||
|
||||
$tbl.= "</tbody></table>";
|
||||
|
||||
if($legende)
|
||||
$tbl.= "<table><tbody><tr><td width='50' style='background-color: #FFD999;'></td><td>".$p->t('tools/hinweistextMarkierung')."</td></tr></tbody></table>";
|
||||
if($i==0)
|
||||
echo $p->t('tools/nochKeineBeurteilungEingetragen');
|
||||
else
|
||||
|
||||
@@ -373,7 +373,7 @@ function showPruefungsDetails(prfId, lvId)
|
||||
{
|
||||
var p = e.pruefung;
|
||||
var l = e.lehrveranstaltung
|
||||
$("#prfTyp").html(p.pruefungstyp_kurzbz);
|
||||
// $("#prfTyp").html(p.pruefungstyp_kurzbz);
|
||||
$("#prfMethode").html(p.methode);
|
||||
$("#prfBeschreibung").html(p.beschreibung);
|
||||
if(p.einzeln === true)
|
||||
@@ -436,9 +436,10 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
var html = "";
|
||||
html += '<option id="'+lehrveranstaltung_id+'" value="'+lehrveranstaltung_id+'">';
|
||||
html += lvBezeichnung;
|
||||
html += "</option>";
|
||||
data.result.forEach(function(v, i){
|
||||
console.log(i);
|
||||
console.log(v);
|
||||
html += '<option id="'+v.lehrveranstaltung_id+'" value="'+v.lehrveranstaltung_id+'">';
|
||||
html += v.bezeichnung;
|
||||
html += "</option>";
|
||||
@@ -486,8 +487,6 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
var studienverpflichtung_id = null;
|
||||
if($("#studienverpflichtung").length)
|
||||
studienverpflichtung_id = $("#studienverpflichtung option:selected").val();
|
||||
|
||||
console.log(studienverpflichtung_id);
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
@@ -689,6 +688,7 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id)
|
||||
|
||||
function writeAnmeldungen(data)
|
||||
{
|
||||
console.log(data);
|
||||
if(data.error === 'false')
|
||||
{
|
||||
var terminId = data.result.anmeldungen[0].pruefungstermin_id;
|
||||
@@ -755,6 +755,7 @@ function writeAnmeldungen(data)
|
||||
$("#kommentar").empty();
|
||||
$("#kommentarSpeichernButton").empty();
|
||||
$("#raumLink").empty();
|
||||
$("#listeDrucken").empty();
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
}
|
||||
@@ -1091,7 +1092,7 @@ function savePruefungstermin()
|
||||
unmarkMissingFormEntry();
|
||||
var studiensemester_kurzbz = $("#studiensemester").val();
|
||||
var pruefungsfenster_id = $("#pruefungsfenster").val();
|
||||
var pruefungstyp_kurzbz = $("#pruefungsTyp").val();
|
||||
// var pruefungstyp_kurzbz = $("#pruefungsTyp").val();
|
||||
var titel = $("#titel").val();
|
||||
var beschreibung = $("#beschreibung").val();
|
||||
var methode = $("#methode").val();
|
||||
@@ -1168,11 +1169,11 @@ function savePruefungstermin()
|
||||
error = true;
|
||||
markMissingFormEntry("pruefungsfenster");
|
||||
}
|
||||
if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert"))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("pruefungsTyp");
|
||||
}
|
||||
// if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert"))
|
||||
// {
|
||||
// error = true;
|
||||
// markMissingFormEntry("pruefungsTyp");
|
||||
// }
|
||||
if(is_null(titel) || is_undefined(titel) || is_empty_String(titel))
|
||||
{
|
||||
error = true;
|
||||
@@ -1188,12 +1189,18 @@ function savePruefungstermin()
|
||||
error = true;
|
||||
markMissingFormEntry("methode");
|
||||
}
|
||||
|
||||
|
||||
if(lehrveranstaltungen.length === 0)
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("lvDropdowns");
|
||||
}
|
||||
|
||||
if(is_null(termine) || is_undefined(termine) || is_empty_String(termine))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("prfTermin");
|
||||
}
|
||||
|
||||
if(error)
|
||||
{
|
||||
@@ -1209,7 +1216,7 @@ function savePruefungstermin()
|
||||
method: "savePruefungstermin",
|
||||
studiensemester_kurzbz: studiensemester_kurzbz,
|
||||
pruefungsfenster_id: pruefungsfenster_id,
|
||||
pruefungstyp_kurzbz: pruefungstyp_kurzbz,
|
||||
// pruefungstyp_kurzbz: pruefungstyp_kurzbz,
|
||||
titel: titel,
|
||||
beschreibung: beschreibung,
|
||||
methode: methode,
|
||||
@@ -1378,7 +1385,7 @@ function loadPruefungsDetails(prfId)
|
||||
$("#beschreibung").val(result.pruefung.beschreibung);
|
||||
$("#studiensemester").val(result.pruefung.studiensemester_kurzbz);
|
||||
$("#pruefungsfenster").val(result.pruefung.pruefungsfenster_id);
|
||||
$("#pruefungsTyp").val(result.pruefung.pruefungstyp_kurzbz);
|
||||
// $("#pruefungsTyp").val(result.pruefung.pruefungstyp_kurzbz);
|
||||
$("#methode").val(result.pruefung.methode);
|
||||
var i = 0;
|
||||
$("#termin1").closest("tr").remove();
|
||||
@@ -1491,7 +1498,7 @@ function updatePruefung(prfId)
|
||||
unmarkMissingFormEntry();
|
||||
var studiensemester_kurzbz = $("#studiensemester").val();
|
||||
var pruefungsfenster_id = $("#pruefungsfenster").val();
|
||||
var pruefungstyp_kurzbz = $("#pruefungsTyp").val();
|
||||
// var pruefungstyp_kurzbz = $("#pruefungsTyp").val();
|
||||
var titel = $("#titel").val();
|
||||
var beschreibung = $("#beschreibung").val();
|
||||
var methode = $("#methode").val();
|
||||
@@ -1602,11 +1609,11 @@ function updatePruefung(prfId)
|
||||
error = true;
|
||||
markMissingFormEntry("pruefungsfenster");
|
||||
}
|
||||
if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert"))
|
||||
{
|
||||
error = true;
|
||||
markMissingFormEntry("pruefungsTyp");
|
||||
}
|
||||
// if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert"))
|
||||
// {
|
||||
// error = true;
|
||||
// markMissingFormEntry("pruefungsTyp");
|
||||
// }
|
||||
if(is_null(titel) || is_undefined(titel) || is_empty_String(titel))
|
||||
{
|
||||
error = true;
|
||||
@@ -1643,7 +1650,7 @@ function updatePruefung(prfId)
|
||||
pruefung_id: prfId,
|
||||
studiensemester_kurzbz: studiensemester_kurzbz,
|
||||
pruefungsfenster_id: pruefungsfenster_id,
|
||||
pruefungstyp_kurzbz: pruefungstyp_kurzbz,
|
||||
// pruefungstyp_kurzbz: pruefungstyp_kurzbz,
|
||||
titel: titel,
|
||||
beschreibung: beschreibung,
|
||||
methode: methode,
|
||||
@@ -1807,7 +1814,7 @@ function loadAllPruefungen()
|
||||
});
|
||||
tableRow+="</td>";
|
||||
tableRow += "<td>"+e.methode+"</td>";
|
||||
tableRow += "<td>"+e.pruefungstyp_kurzbz+"</td>";
|
||||
// tableRow += "<td>"+e.pruefungstyp_kurzbz+"</td>";
|
||||
tableRow += "<td>"+e.einzeln+"</td>";
|
||||
tableRow += "<td>"+e.mitarbeiter_uid+"</td>";
|
||||
tableRow += "<td>"+e.storniert+"</td>";
|
||||
@@ -1896,7 +1903,7 @@ function resetPruefungsverwaltung()
|
||||
loadAllPruefungen();
|
||||
$("#titel").val("");
|
||||
$("#beschreibung").val("");
|
||||
loadPruefungstypen("false");
|
||||
// loadPruefungstypen("false");
|
||||
loadStudiensemester();
|
||||
$("#methode").val("");
|
||||
resetLehrveranstaltungen();
|
||||
|
||||
Executable
+2047
File diff suppressed because it is too large
Load Diff
Regular → Executable
+41
-28
@@ -49,7 +49,7 @@ switch($method)
|
||||
$data = getPruefungByLv($studiensemester, $uid);
|
||||
break;
|
||||
case 'getPruefungByLvFromStudiengang':
|
||||
$studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL;
|
||||
$studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL;
|
||||
$data = getPruefungByLvFromStudiengang($studiensemester, $uid);
|
||||
break;
|
||||
case 'loadPruefung':
|
||||
@@ -64,7 +64,7 @@ switch($method)
|
||||
{
|
||||
$uid = $student_uid;
|
||||
}
|
||||
|
||||
|
||||
if($student_uid === "")
|
||||
{
|
||||
$data['result']="";
|
||||
@@ -368,19 +368,19 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$stdsem = $studiensemester->getLastOrAktSemester(0);
|
||||
$lv_besucht = false;
|
||||
$studienverpflichtung_id = filter_input(INPUT_POST, "studienverpflichtung_id");
|
||||
|
||||
|
||||
//Defaulteinstellung für Anzahlprüfungsversuche (wird durch Addon "ktu" überschrieben)
|
||||
$maxAnzahlVersuche = 0;
|
||||
|
||||
|
||||
//Defaulteinstellung für Code Note "unetnschuldigt ferngeblieben" (wird durch Addon "ktu" überschrieben)
|
||||
$noteCode_uef = -1;
|
||||
|
||||
|
||||
$addon = new addon();
|
||||
foreach ($addon->aktive_addons as $a)
|
||||
{
|
||||
if($a === "ktu")
|
||||
if($a === "ku")
|
||||
{
|
||||
require '../../../../addons/ktu/cis/prfVerwaltung_array.php';
|
||||
require '../../../../addons/'.$a.'/cis/prfVerwaltung_array.php';
|
||||
switch($lehrveranstaltung->oe_kurzbz)
|
||||
{
|
||||
case $fakultaeten[0]["fakultaet"]:
|
||||
@@ -389,7 +389,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
case $fakultaeten[1]["fakultaet"]:
|
||||
$semCounter = $fakultaeten[1]["sem"];
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
$semCounter = 2;
|
||||
break;
|
||||
}
|
||||
@@ -415,17 +415,29 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$i++;
|
||||
}
|
||||
while($i<=$semCounter && $lv_besucht === FALSE);
|
||||
|
||||
|
||||
if(!$lv_besucht)
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Besuch der Lehrveranstaltung liegt zu weit in der Vergangenheit.';
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
$pruefung->getPruefungen($uid, NULL, $lehrveranstaltung->lehrveranstaltung_id);
|
||||
$anmeldung_moeglich = true;
|
||||
$anzahlPruefungen = count($pruefung->result);
|
||||
if(isset($pruefungstyp_kurzbzArray))
|
||||
{
|
||||
if($anzahlPruefungen < count($pruefungstyp_kurzbzArray))
|
||||
{
|
||||
$pruefungstyp_kurzbz = $pruefungstyp_kurzbzArray[$anzahlPruefungen];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$pruefungstyp_kurzbz = null;
|
||||
}
|
||||
|
||||
foreach($pruefung->result as $prf)
|
||||
{
|
||||
$note = new note($prf->note);
|
||||
@@ -456,7 +468,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($anmeldung_moeglich)
|
||||
{
|
||||
if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL)
|
||||
@@ -470,6 +482,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$anmeldung->uid = $uid;
|
||||
$anmeldung->reihung = $reihung+1;
|
||||
$anmeldung->status_kurzbz = "angemeldet";
|
||||
$anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
|
||||
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
|
||||
|
||||
$konto = new konto();
|
||||
@@ -514,7 +527,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$data['errormsg']='Anmeldung auf Grund von Sperre nicht möglich.';
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
$anrechnung = new anrechnung();
|
||||
$lv_komp = new lehrveranstaltung($studienverpflichtung_id);
|
||||
$person = new person();
|
||||
@@ -548,18 +561,18 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$anrechnung->new = true;
|
||||
$anrechungSaveResult = $anrechnung->save();
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$anrechungSaveResult = true;
|
||||
}
|
||||
|
||||
|
||||
if($anrechungSaveResult)
|
||||
{
|
||||
if($anrechnung->anrechnung_id == "")
|
||||
$anmeldung->anrechnung_id = null;
|
||||
else
|
||||
$anmeldung->anrechnung_id = $anrechnung->anrechnung_id;
|
||||
|
||||
|
||||
if($anmeldung->save(true))
|
||||
{
|
||||
$pruefung = new pruefungCis($termin->pruefung_id);
|
||||
@@ -784,7 +797,7 @@ function anmeldungBestaetigen($uid)
|
||||
$datum = new datum();
|
||||
$ort = new ort($termin->ort_kurzbz);
|
||||
$pruefung = new pruefungCis($termin->pruefung_id);
|
||||
|
||||
|
||||
$to = $anmeldung->uid."@".DOMAIN;
|
||||
$from = "noreply@".DOMAIN;
|
||||
$subject = "Anmeldungsbestätigung zur Prüfung";
|
||||
@@ -806,11 +819,11 @@ function anmeldungBestaetigen($uid)
|
||||
$html .= "<br>";
|
||||
$html .= "<a href='".APP_ROOT."cis/private/lehre/pruefung/pruefungsanmeldung.php'>Link zur Anmeldung</a><br>";
|
||||
$html .= "<br>";
|
||||
|
||||
|
||||
$mail = new mail($to, $from, $subject,"Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.");
|
||||
$mail->setHTMLContent($html);
|
||||
$mail->send();
|
||||
|
||||
|
||||
$data['result']=true;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
@@ -896,18 +909,18 @@ function getPruefungenStudiengang($uid, $aktStudiensemester)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @return typespeichert ein Kommentar zu einer Prüfungsanmeldung
|
||||
*/
|
||||
function saveKommentar()
|
||||
{
|
||||
$kommentar = $_REQUEST["kommentar"];
|
||||
$pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"];
|
||||
|
||||
|
||||
$pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id);
|
||||
$pruefungsanmeldung->kommentar = $kommentar;
|
||||
if($pruefungsanmeldung->save())
|
||||
{
|
||||
{
|
||||
$data['result']=true;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
@@ -933,9 +946,9 @@ function getAllFreieRaeume($terminId)
|
||||
$teilnehmer = $pruefungstermin->getNumberOfParticipants();
|
||||
$teilnehmer = $teilnehmer !== false ? $teilnehmer : 0;
|
||||
$pruefungstermin->getAll($pruefungstermin->von, $pruefungstermin->bis, TRUE);
|
||||
|
||||
|
||||
if($ort->search($datum_von[0], $datum_von[1], $datum_bis[1], null, $teilnehmer, true))
|
||||
{
|
||||
{
|
||||
foreach($pruefungstermin->result as $termin)
|
||||
{
|
||||
if($termin->pruefungstermin_id != $pruefungstermin->pruefungstermin_id && !is_null($termin->ort_kurzbz))
|
||||
@@ -945,7 +958,7 @@ function getAllFreieRaeume($terminId)
|
||||
array_push($ort->result, $o);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
usort($ort->result, "compareRaeume");
|
||||
$data['result']=$ort->result;
|
||||
$data['error']='false';
|
||||
@@ -985,7 +998,7 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
$reserviert = true;
|
||||
}
|
||||
if(!$reserviert || $pruefungstermin->sammelklausur == TRUE)
|
||||
{
|
||||
{
|
||||
$pruefung = new pruefungCis($pruefungstermin->pruefung_id);
|
||||
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
|
||||
if($ort_kurzbz === "buero")
|
||||
@@ -1018,7 +1031,7 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
$reservierung->insertamum = date('Y-m-d G:i:s');
|
||||
$reservierung->insertvon = $uid;
|
||||
$reservierungError = false;
|
||||
|
||||
|
||||
foreach($stunden as $h)
|
||||
{
|
||||
$reservierung->stunde = $h;
|
||||
@@ -1028,7 +1041,7 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
}
|
||||
}
|
||||
if(!$reservierungError)
|
||||
{
|
||||
{
|
||||
$pruefungstermin->ort_kurzbz = $reservierung->ort_kurzbz;
|
||||
if($pruefungstermin->save(false))
|
||||
{
|
||||
@@ -1074,4 +1087,4 @@ function getLvKompatibel($lvid)
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
Regular → Executable
+62
-55
@@ -2,22 +2,22 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
@@ -29,8 +29,15 @@ require_once('../../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../../include/konto.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/student.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
require_once('../../../../include/sprache.class.php');
|
||||
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
//TODO
|
||||
$uid = get_uid();
|
||||
|
||||
$db = new basis_db();
|
||||
@@ -50,7 +57,7 @@ $studiensemester->getAll();
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script src="../../../../include/js/jquery1.9.min.js"></script>
|
||||
<script src="../../../../include/js/jquery.tablesorter.min.js"></script>
|
||||
<script src="./pruefung.js"></script>
|
||||
<script src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
@@ -59,12 +66,12 @@ $studiensemester->getAll();
|
||||
#pruefungen, #prfTermine {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
|
||||
#details {
|
||||
width: 50%;
|
||||
/* margin-left: 1.5em;*/
|
||||
}
|
||||
|
||||
|
||||
#lvDetails, #prfDetails {
|
||||
min-width: 40%;
|
||||
margin-bottom: 1em;
|
||||
@@ -72,21 +79,21 @@ $studiensemester->getAll();
|
||||
float:left;
|
||||
/*border: 1px solid black;*/
|
||||
}
|
||||
|
||||
|
||||
/* #prfDetails {
|
||||
float:right;
|
||||
}*/
|
||||
|
||||
|
||||
#accordion {
|
||||
width: 60%;
|
||||
clear: left;
|
||||
clear: right;
|
||||
}
|
||||
|
||||
|
||||
.titel {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
#message {
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
@@ -95,7 +102,7 @@ $studiensemester->getAll();
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
.columnheader1 {
|
||||
width: 30%;
|
||||
}
|
||||
@@ -108,13 +115,13 @@ $studiensemester->getAll();
|
||||
.columnheader4 {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
|
||||
#accordion p {
|
||||
margin: 0;
|
||||
height: 24px;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
@@ -122,7 +129,7 @@ $studiensemester->getAll();
|
||||
$(document).ajaxSend(function(event, xhr, options){
|
||||
count++;
|
||||
});
|
||||
|
||||
|
||||
$(document).ajaxComplete(function(event, xhr, settings){
|
||||
count--;
|
||||
//Wenn alle AJAX-Request fertig sind
|
||||
@@ -135,7 +142,7 @@ $studiensemester->getAll();
|
||||
$("#accordion").attr("style", "visibility: visible;");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
loadPruefungen();
|
||||
loadPruefungenOfStudiengang();
|
||||
@@ -146,7 +153,7 @@ $studiensemester->getAll();
|
||||
width: "auto"
|
||||
});
|
||||
$("#dialog").dialog({ autoOpen: false });
|
||||
|
||||
|
||||
$("#details").dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
@@ -169,10 +176,10 @@ $studiensemester->getAll();
|
||||
;
|
||||
?>
|
||||
</script>
|
||||
<h1>Prüfungsanmeldung für <?php echo $benutzer->vorname." ".$benutzer->nachname." (".$uid.")"; ?></h1>
|
||||
<h1><?php echo $p->t('pruefung/anmeldungFuer'); ?> <?php echo $benutzer->vorname." ".$benutzer->nachname." (".$uid.")"; ?></h1>
|
||||
<?php
|
||||
echo '<h3>Filter</h3>';
|
||||
echo '<p>Studiensemester: ';
|
||||
echo '<h3>'.$p->t('pruefung/filter').'</h3>';
|
||||
echo '<p>'.$p->t('global/studiensemester').': ';
|
||||
echo '<select id="filter_studiensemester" onchange="refresh();">';
|
||||
$aktuellesSemester = $studiensemester->getaktorNext();
|
||||
foreach($studiensemester->studiensemester as $sem)
|
||||
@@ -187,51 +194,51 @@ $studiensemester->getAll();
|
||||
}
|
||||
}
|
||||
echo '</select></p>';
|
||||
|
||||
|
||||
?>
|
||||
<div id="details" title="Details">
|
||||
<div id="details" title="<?php echo $p->t('pruefung/details'); ?>">
|
||||
<div id="lvDetails">
|
||||
<h1>LV-Details</h1>
|
||||
<span class="titel">Bezeichnung: </span><span id="lvBez"></span><br/>
|
||||
<span class="titel">ECTS: </span><span id="lvEcts"></span><br/>
|
||||
<h1><?php echo $p->t('pruefung/lvDetails'); ?></h1>
|
||||
<span class="titel"><?php echo $p->t('global/bezeichnung'); ?>: </span><span id="lvBez"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('global/ects'); ?>: </span><span id="lvEcts"></span><br/>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="prfDetails">
|
||||
<h1>Prüfungsdetails</h1>
|
||||
<span class="titel">Typ: </span><span id="prfTyp"></span><br/>
|
||||
<span class="titel">Methode: </span><span id="prfMethode"></span><br/>
|
||||
<span class="titel">Beschreibung: </span><span id="prfBeschreibung"></span><br/>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsDetails'); ?></h1>
|
||||
<span class="titel"><?php echo $p->t('pruefung/typ'); ?>: </span><span id="prfTyp"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('pruefung/pruefungMethode'); ?>: </span><span id="prfMethode"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('global/beschreibung'); ?>: </span><span id="prfBeschreibung"></span><br/>
|
||||
<span id="prfEinzeln"></span><br/>
|
||||
<span class="titel" style="visibility: hidden;">Intervall: </span><span id="prfIntervall"></span><br/>
|
||||
<span class="titel" style="visibility: hidden;"><?php echo $p->t('pruefung/intervall'); ?>: </span><span id="prfIntervall"></span><br/>
|
||||
</div>
|
||||
</div>
|
||||
<div id="message"></div>
|
||||
<div id="accordion" style="visibility: hidden;">
|
||||
<h2>Besuchte Lehrveranstaltungen</h2>
|
||||
<h2><?php echo $p->t('pruefung/besuchteLehrveranstaltungen'); ?></h2>
|
||||
<div>
|
||||
<table id="table1" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1">Insitut</th>
|
||||
<th class="columnheader2">Lehrveranstaltung</th>
|
||||
<th class="columnheader3">Termin</th>
|
||||
<th class="columnheader4">freie Plätze</th>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungen">
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
</div>
|
||||
<h2>Lehrveranstaltungen von Studiengang</h2>
|
||||
<h2><?php echo $p->t('pruefung/lvVonStudiengang'); ?></h2>
|
||||
<div>
|
||||
<table id="table2" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1">Insitut</th>
|
||||
<th class="columnheader2">Lehrveranstaltung</th>
|
||||
<th class="columnheader3">Termin</th>
|
||||
<th class="columnheader4">freie Plätze</th>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenStudiengang">
|
||||
@@ -239,15 +246,15 @@ $studiensemester->getAll();
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<h2>Alle Lehrveranstaltungen</h2>
|
||||
<h2><?php echo $p->t('pruefung/lvAlle'); ?></h2>
|
||||
<div>
|
||||
<table id="table3" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1">Insitut</th>
|
||||
<th class="columnheader2">Lehrveranstaltung</th>
|
||||
<th class="columnheader3">Termin</th>
|
||||
<th class="columnheader4">freie Plätze</th>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenGesamt">
|
||||
@@ -256,7 +263,7 @@ $studiensemester->getAll();
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="saveDialog" title="Anmeldung speichern">
|
||||
<div id="saveDialog" title="<?php echo $p->t('pruefung/anmeldungSpeichern'); ?>">
|
||||
<form id="saveAnmeldungForm">
|
||||
<table id="neueAnmeldung">
|
||||
<tr>
|
||||
@@ -267,40 +274,40 @@ $studiensemester->getAll();
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">Lehrveranstaltung: </td>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/lehrveranstaltung'); ?>: </td>
|
||||
<td>
|
||||
<span id="lehrveranstaltung"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">Von: </td>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/von'); ?>: </td>
|
||||
<td>
|
||||
|
||||
<span id="terminVon"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">Bis: </td>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/bis'); ?>: </td>
|
||||
<td>
|
||||
<span type="text" id="terminBis" disabled="true"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true): ?>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">Studienverpflichtung:* </td>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('pruefung/studienverpflichtung'); ?>:* </td>
|
||||
<td>
|
||||
<select id="studienverpflichtung"></select>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">Bemerkung: </td>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/anmerkung'); ?>: </td>
|
||||
<td>
|
||||
<textarea id="anmeldungBemerkung" rows="10" cols="20"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="button" value="Anmelden" onclick="saveAnmeldung();"></td>
|
||||
<td><input type="button" value="<?php echo $p->t('global/anmelden'); ?>" onclick="saveAnmeldung();"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
Regular → Executable
+45
-29
@@ -2,22 +2,22 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
@@ -33,6 +33,14 @@ require_once('../../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
require_once('../../../../include/student.class.php');
|
||||
require_once('../../../../include/datum.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
require_once('../../../../include/sprache.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
@@ -42,17 +50,17 @@ $rechte->getBerechtigungen($uid);
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<script src="../../../../include/js/jquery1.9.min.js"></script>
|
||||
<style type="text/css">
|
||||
<style type="text/css">
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
#page {
|
||||
width: 210mm;
|
||||
min-height: 297mm;
|
||||
@@ -64,7 +72,7 @@ $rechte->getBerechtigungen($uid);
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
||||
font-family: Arial, Helvetica;
|
||||
}
|
||||
|
||||
|
||||
#subpage {
|
||||
padding: 10mm;
|
||||
border: 1px black solid;
|
||||
@@ -109,12 +117,12 @@ $rechte->getBerechtigungen($uid);
|
||||
line-height: 16pt;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
@media print {
|
||||
html, body {
|
||||
width: 210mm;
|
||||
@@ -130,7 +138,7 @@ $rechte->getBerechtigungen($uid);
|
||||
background: initial;
|
||||
page-break-after: auto;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Workaround um beim Drucken jede zweite Zeile der Tabelle
|
||||
* grau darzustellen. Standardmäßig werden von Browsern keine
|
||||
@@ -139,14 +147,14 @@ $rechte->getBerechtigungen($uid);
|
||||
tr:nth-child(odd) > td{
|
||||
box-shadow: inset 0 0 0 1000px lightgrey;
|
||||
}
|
||||
|
||||
|
||||
//Veranlasst Chrome Hintergrundfarben zu drucken
|
||||
body{
|
||||
-webkit-print-color-adjust:exact;
|
||||
background-color: #FFFFFF;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
//Anweisungen nur für Firefox
|
||||
@-moz-document url-prefix() {
|
||||
html, body {
|
||||
@@ -169,26 +177,26 @@ $rechte->getBerechtigungen($uid);
|
||||
</script>
|
||||
<div id="page">
|
||||
<div id="subpage">
|
||||
<h1>Anmeldungsliste</h1>
|
||||
<h1><?php echo $p->t('pruefung/anmeldungsliste'); ?></h1>
|
||||
<?php
|
||||
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
|
||||
$termin_id = filter_input(INPUT_GET,"termin_id");
|
||||
$lehrveranstaltung_id = filter_input(INPUT_GET,"lehrveranstaltung_id");
|
||||
$studiensemester = filter_input(INPUT_GET, "studiensemester");
|
||||
|
||||
|
||||
if(is_null($lehrveranstaltung_id))
|
||||
{
|
||||
die('Fehlender Parameter lehrveranstaltung_id');
|
||||
die($p->t('pruefung/fehlenderParam_lvid'));
|
||||
}
|
||||
else if(is_null($termin_id))
|
||||
{
|
||||
die('Fehlender Parameter termin_id');
|
||||
die($p->t('pruefung/fehlenderParam_terminid'));
|
||||
}
|
||||
else if(is_null($studiensemester))
|
||||
{
|
||||
die('Fehlender Parameter studiensemester');
|
||||
die($p->t('pruefung/fehlenderParam_studiensemester'));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -208,19 +216,19 @@ $rechte->getBerechtigungen($uid);
|
||||
$einzeln = TRUE;
|
||||
$pruefungsintervall = $pruefung->pruefungsintervall;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<span class="bold">Lehrveranstaltung: </span><span><?=$lehrveranstaltung->bezeichnung?></span><br/>
|
||||
<span class="bold">Studiensemester: </span><span><?=$stdsem->bezeichnung?></span><br/>
|
||||
<span class="bold">Prüfer: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
|
||||
<span class="bold"><?php echo $p->t('global/lehrveranstaltung'); ?>: </span><span><?=$lehrveranstaltung->bezeichnung?></span><br/>
|
||||
<span class="bold"><?php echo $p->t('global/studiensemester'); ?>: </span><span><?=$stdsem->bezeichnung?></span><br/>
|
||||
<span class="bold"><?php echo $p->t('pruefung/pruefer'); ?>: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
|
||||
<table id="liste">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Vorname</th>
|
||||
<th>Nachname</th>
|
||||
<th>Matrikelnummer</th>
|
||||
<th>Datum</th>
|
||||
<th><?php echo $p->t('global/vorname'); ?></th>
|
||||
<th><?php echo $p->t('global/nachname'); ?></th>
|
||||
<th><?php echo $p->t('global/matrikelnummer'); ?></th>
|
||||
<th><?php echo $p->t('global/datum'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -231,7 +239,7 @@ $rechte->getBerechtigungen($uid);
|
||||
{
|
||||
$student = new student($anmeldung->uid);
|
||||
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
|
||||
|
||||
|
||||
if($einzeln)
|
||||
{
|
||||
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
|
||||
@@ -255,10 +263,18 @@ $rechte->getBerechtigungen($uid);
|
||||
?>
|
||||
</tbody>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
|
||||
<span><?php echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden'); ?></span><br/>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
Regular → Executable
+67
-59
@@ -2,22 +2,22 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
@@ -27,6 +27,14 @@ require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../../include/pruefungCis.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
require_once('../../../../include/sprache.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
@@ -43,11 +51,11 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfungsanmeldung Verwaltung</title>
|
||||
<title><?php echo $p->t('pruefung/anmeldungenVerwaltenTitle'); ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script src="../../../../include/js/jquery1.9.min.js"></script>
|
||||
<script src="../../../../include/js/jquery.tablesorter.min.js"></script>
|
||||
<script src="./pruefung.js"></script>
|
||||
<script src="../../../../include/js/jquery.tablesorter.min.js"></script>
|
||||
<script src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
@@ -57,17 +65,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
body {
|
||||
padding: 10px 0 0 10px;
|
||||
}
|
||||
|
||||
|
||||
#stgWrapper {
|
||||
position: absolute;
|
||||
height: 70px;
|
||||
width: 850px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border-radius: 25px;
|
||||
/*border: 1px solid black;*/
|
||||
box-shadow: 0em 0em 2em 0.5em #888888 inset;
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
|
||||
|
||||
#studiengaenge {
|
||||
/*border: 1px solid black;*/
|
||||
width: 94%;
|
||||
@@ -78,19 +86,19 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#prfWrapper {
|
||||
position: absolute;
|
||||
height: 70%;
|
||||
width: 300px;
|
||||
top: 180px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border-radius: 25px;
|
||||
/*border: 1px solid black;*/
|
||||
box-shadow: 0em 0em 2em 0.5em #888888 inset;
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
|
||||
|
||||
#pruefungen {
|
||||
/*border: 1px solid black;*/
|
||||
width: 94%;
|
||||
@@ -101,7 +109,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
#anmWrapper {
|
||||
position: absolute;
|
||||
/*top: 45px;*/
|
||||
@@ -110,25 +118,25 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
width: 500px;
|
||||
height: 70%;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border-radius: 25px;
|
||||
/*border: 1px solid black;*/
|
||||
box-shadow: 0em 0em 2em 0.5em #888888 inset;
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
|
||||
|
||||
#anmeldungen {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
#anmeldungen > * {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
|
||||
#raum > * {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
|
||||
#message {
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
@@ -137,51 +145,51 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#sortable {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
#sortable {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
#sortable li {
|
||||
margin: 0 3px 3px 3px;
|
||||
padding: 0.2em 0.4em 0.4em;
|
||||
padding-left: 1.5em;
|
||||
font-size: 1.4em;
|
||||
#sortable li {
|
||||
margin: 0 3px 3px 3px;
|
||||
padding: 0.2em 0.4em 0.4em;
|
||||
padding-left: 1.5em;
|
||||
font-size: 1.4em;
|
||||
height: 18px;
|
||||
list-style-image: none;
|
||||
display: block;
|
||||
}
|
||||
#sortable li span {
|
||||
/*position: absolute;*/
|
||||
margin-left: -1.3em;
|
||||
/*position: absolute;*/
|
||||
margin-left: -1.3em;
|
||||
float:left;
|
||||
}
|
||||
|
||||
|
||||
.resultOK {
|
||||
color: green;
|
||||
}
|
||||
|
||||
|
||||
.resultNotOK {
|
||||
color: red;
|
||||
}
|
||||
|
||||
|
||||
#sortable li a {
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
||||
#sortable li div {
|
||||
float: right;
|
||||
margin-left: 5px;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
|
||||
.anmerkungInfo {
|
||||
text-align: right;
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
|
||||
#progressbar {
|
||||
position: fixed;
|
||||
width: 300px;
|
||||
@@ -199,17 +207,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
|
||||
|
||||
.studiengang {
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
#studiengaenge > div {
|
||||
float: left;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -225,17 +233,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<h1>Anmeldungen Verwalten</h1>
|
||||
<h1><?php echo $p->t('pruefung/anmeldungenVerwalten'); ?></h1>
|
||||
<div id='stgWrapper'>
|
||||
<div id='studiengaenge'>
|
||||
<div>
|
||||
<h2>Studiengänge</h2>
|
||||
<h2><?php echo $p->t('global/studiengang'); ?></h2>
|
||||
<div id='stgListe'>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h2>Studiensemester</h2>
|
||||
<h2><?php echo $p->t('global/studiensemester'); ?></h2>
|
||||
<?php
|
||||
echo '<select id="filter_studiensemester" onchange="loadPruefungStudiengang();" style="visibility: hidden;">';
|
||||
$aktuellesSemester = $studiensemester->getaktorNext();
|
||||
@@ -259,7 +267,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
</div>
|
||||
<div id='prfWrapper'>
|
||||
<div id='pruefungen'>
|
||||
<h2>Prüfungen</h2>
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<ul id="pruefungenListe">
|
||||
|
||||
</ul>
|
||||
@@ -267,9 +275,9 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
</div>
|
||||
<div id='anmWrapper'>
|
||||
<div id="anmeldungen">
|
||||
<h2>Anmeldungen</h2>
|
||||
<h2><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?></h2>
|
||||
<div id="anmeldung_hinzufuegen">
|
||||
|
||||
|
||||
</div>
|
||||
<div id="anmeldeDaten">
|
||||
|
||||
@@ -278,20 +286,20 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
|
||||
</div>
|
||||
<div id="kommentar">
|
||||
|
||||
|
||||
</div>
|
||||
<div id="kommentarSpeichernButton">
|
||||
|
||||
|
||||
</div>
|
||||
<div id="raumLink">
|
||||
|
||||
|
||||
</div>
|
||||
<div id="listeDrucken">
|
||||
|
||||
|
||||
</div>
|
||||
<div id="raumDialog">
|
||||
<div id="raum">
|
||||
|
||||
|
||||
</div>
|
||||
<div id="raumSpeichernButton">
|
||||
|
||||
@@ -299,7 +307,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="message"></div>
|
||||
<div id="progressbar"></div>
|
||||
</body>
|
||||
|
||||
Regular → Executable
+32
-19
@@ -17,6 +17,14 @@ require_once('../../../../include/pruefungsanmeldung.class.php');
|
||||
require_once('../../../../include/student.class.php');
|
||||
require_once('../../../../include/pruefungstermin.class.php');
|
||||
require_once('../../../../include/datum.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
require_once('../../../../include/sprache.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
@@ -43,7 +51,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$data = getPruefungMitarbeiter($mitarbeiter_uid);
|
||||
@@ -53,7 +61,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$data = getNoten();
|
||||
@@ -73,7 +81,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$note = filter_input(INPUT_POST, 'note');
|
||||
@@ -96,7 +104,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||
@@ -109,7 +117,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||
@@ -120,7 +128,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$pruefungsanmeldung_id = filter_input(INPUT_POST, 'pruefungsanmeldung_id');
|
||||
@@ -131,7 +139,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id');
|
||||
@@ -150,7 +158,8 @@ echo json_encode($data);
|
||||
* @return Array
|
||||
*/
|
||||
function getPruefungMitarbeiter($uid = null)
|
||||
{
|
||||
{
|
||||
global $p;
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
if($uid !== null)
|
||||
{
|
||||
@@ -183,7 +192,7 @@ function getPruefungMitarbeiter($uid = null)
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Keine Prüfungen vorhanden.";
|
||||
$data['errormsg']=$p->t('pruefung/keinePruefungenVorhanden');
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
@@ -224,6 +233,7 @@ function getNoten()
|
||||
*/
|
||||
function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid)
|
||||
{
|
||||
global $p;
|
||||
$pruefungCis = new pruefungCis($pruefung_id);
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid);
|
||||
@@ -231,20 +241,20 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid,
|
||||
$pruefung->new = true;
|
||||
if(!empty($lehreinheiten))
|
||||
{
|
||||
$pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id);
|
||||
$pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id);
|
||||
|
||||
$pruefung->lehreinheit_id = $lehreinheiten[0];
|
||||
$pruefung->student_uid = $student_uid;
|
||||
$pruefung->mitarbeiter_uid = $mitarbeiter_uid;
|
||||
$pruefung->note = $note;
|
||||
$pruefung->pruefungstyp_kurzbz = $pruefungCis->pruefungstyp_kurzbz;
|
||||
$pruefung->pruefungstyp_kurzbz = $pruefungsanmeldung->pruefungstyp_kurzbz;
|
||||
$pruefung->datum = $datum;
|
||||
$pruefung->anmerkung = $anmerkung;
|
||||
$pruefung->pruefungsanmeldung_id = $pruefungsanmeldung_id;
|
||||
$pruefung->insertvon = $uid;
|
||||
$pruefung->insertamum = date('Y-m-d H:i:s');
|
||||
|
||||
$pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id);
|
||||
$pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id);
|
||||
|
||||
$datum = new datum();
|
||||
// var_dump(date("Y-m-d", time()));
|
||||
// var_dump($pruefungstermin->von);
|
||||
@@ -265,15 +275,16 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid,
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Prüfungstermin liegt nicht in der Vergangenheit.";
|
||||
$data['errormsg']=$p->t('pruefung/terminNichtInDerVergangenheit');
|
||||
//$data['errormsg']='Nicht in der Vergangenheit';
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Keine Lehreinheiten vorhanden.";
|
||||
$data['errormsg']=$p->t('pruefung/keineLehreinheitenVorhanden');
|
||||
}
|
||||
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
@@ -286,6 +297,7 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid,
|
||||
*/
|
||||
function updateBeurteilung($pruefung_id, $note, $uid, $anmerkung)
|
||||
{
|
||||
global $p;
|
||||
$pruefung = new pruefung($pruefung_id);
|
||||
$pruefung->new = FALSE;
|
||||
$pruefung->note = $note;
|
||||
@@ -334,6 +346,7 @@ function getBeurteilung($pruefungsanmeldung_id)
|
||||
*/
|
||||
function getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id)
|
||||
{
|
||||
global $p;
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
||||
foreach($anmeldungen as $a)
|
||||
@@ -363,8 +376,8 @@ function getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id)
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['errormsg']= 'Keine Anmeldungen vorhanden';
|
||||
$data['errormsg']= $p->t('pruefung/keineAnmeldungenVorhanden');
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
Regular → Executable
+39
-31
@@ -2,22 +2,22 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
@@ -33,6 +33,14 @@ require_once('../../../../include/pruefungstermin.class.php');
|
||||
require_once('../../../../include/studiengang.class.php');
|
||||
require_once('../../../../include/pruefungCis.class.php');
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
require_once('../../../../include/sprache.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
@@ -53,7 +61,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script src="../../../../include/js/jquery1.9.min.js"></script>
|
||||
<script src="../../../../include/js/jquery.tablesorter.min.js"></script>
|
||||
<script src="./pruefung.js"></script>
|
||||
<script src="./pruefung.js.php"></script>
|
||||
<script src="./pruefungsbewertung.js"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
@@ -63,17 +71,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
body {
|
||||
padding: 10px 0 0 10px;
|
||||
}
|
||||
|
||||
|
||||
#prfWrapper {
|
||||
position: absolute;
|
||||
height: 80%;
|
||||
width: 300px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border-radius: 25px;
|
||||
/*border: 1px solid black;*/
|
||||
box-shadow: 0em 0em 2em 0.5em #888888 inset;
|
||||
//border-radius: 25px;
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
|
||||
|
||||
#pruefungen {
|
||||
/*border: 1px solid black;*/
|
||||
width: 94%;
|
||||
@@ -84,7 +92,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
#anmWrapper {
|
||||
position: absolute;
|
||||
/*top: 45px;*/
|
||||
@@ -92,21 +100,21 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
width: 600px;
|
||||
height: 80%;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border-radius: 25px;
|
||||
/*border: 1px solid black;*/
|
||||
box-shadow: 0em 0em 2em 0.5em #888888 inset;
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
|
||||
|
||||
#anmeldungen {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
#anmeldungen > div, h2 {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
|
||||
#message {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
@@ -116,12 +124,12 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
.missingFormData {
|
||||
border: 2px solid red;
|
||||
outline: 2px solid red;
|
||||
}
|
||||
|
||||
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
@@ -130,7 +138,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
|
||||
|
||||
.anmeldung {
|
||||
font-size: 1.2em;
|
||||
border-bottom: 1px solid black;
|
||||
@@ -142,28 +150,28 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
margin: 0 1em 0 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
||||
.anmeldung:last-child {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
.anmeldung div:first-child {
|
||||
width: 250px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
.saved {
|
||||
background-color: green;
|
||||
}
|
||||
|
||||
|
||||
.unsaved {
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
|
||||
#wrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
#lektor {
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
@@ -209,7 +217,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
});
|
||||
</script>
|
||||
<div>
|
||||
<h1>Prüfungsbewertung</h1>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsbewertungTitle'); ?></h1>
|
||||
<div>
|
||||
<?php
|
||||
if(!$rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
@@ -224,7 +232,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span width="116px">Lektor: </span>';
|
||||
echo '<span width="116px">'.$p->t('pruefung/pruefungLektor').': </span>';
|
||||
echo '<input placeholder="UID" type="text" id="lektor" value="" size="30"/>';
|
||||
echo '<input type="hidden" id="uid" value="" />';
|
||||
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
|
||||
@@ -234,7 +242,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
<div id="wrapper">
|
||||
<div id='prfWrapper'>
|
||||
<div id='pruefungen'>
|
||||
<h2>Prüfungen</h2>
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<ul id="pruefungenListe">
|
||||
|
||||
</ul>
|
||||
@@ -242,14 +250,14 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
</div>
|
||||
<div id='anmWrapper'>
|
||||
<div id="anmeldungen">
|
||||
<h2>Anmeldungen</h2>
|
||||
<h2><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?></h2>
|
||||
<div id="anmeldeDaten">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="message"></div>
|
||||
<div id="progressbar"></div>
|
||||
|
||||
Regular → Executable
+94
-86
@@ -2,22 +2,22 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
@@ -29,6 +29,14 @@ require_once('../../../../include/organisationseinheit.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/datum.class.php');
|
||||
require_once('../../../../include/pruefungsfenster.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
require_once('../../../../include/sprache.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
@@ -42,7 +50,7 @@ function compareOe($a, $b)
|
||||
{
|
||||
if($a->organisationseinheittyp_kurzbz == $b->organisationseinheittyp_kurzbz)
|
||||
return 0;
|
||||
|
||||
|
||||
return ($a->organisationseinheittyp_kurzbz < $b->organisationseinheittyp_kurzbz) ? -1 : 1;
|
||||
}
|
||||
|
||||
@@ -50,7 +58,7 @@ function compareOe($a, $b)
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfungsfenster anlegen</title>
|
||||
<title><?php echo $p->t('pruefung/titlePruefungsfenster') ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script src="../../../../include/js/jquery1.9.min.js"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
@@ -83,7 +91,7 @@ $oe = $rechte->getOEkurzbz("lehre/pruefungsfenster");
|
||||
$studiensemester = new studiensemester();
|
||||
$studiensemester->getAll();
|
||||
|
||||
if (isset($_POST["method"]) && $_POST["method"] == "save")
|
||||
if (isset($_POST["method"]) && $_POST["method"] == "save")
|
||||
{
|
||||
$method = $_POST["method"];
|
||||
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
||||
@@ -107,30 +115,30 @@ if (isset($_POST["method"]) && $_POST["method"] == "save")
|
||||
$pruefungsfenster->ende = $endDate;
|
||||
if ($pruefungsfenster->save())
|
||||
{
|
||||
echo "Datensatz erfolgreich gespeichert";
|
||||
echo $p->t('pruefung/erfolgreichgespeichert');
|
||||
}
|
||||
else {
|
||||
echo "Fehler: ".$pruefungsfenster->errormsg;
|
||||
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// echo "Fehler: Startdatum liegt in der Vergangenheit.";
|
||||
// }
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: Enddatum liegt in der Vergangenheit.";
|
||||
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: Enddatum liegt nicht nach dem Startdatum.";
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: Datumseingabe nicht korrekt.";
|
||||
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
||||
}
|
||||
}
|
||||
else if(isset($_POST["method"]) && $_POST["method"] == "update")
|
||||
@@ -151,44 +159,44 @@ else if(isset($_POST["method"]) && $_POST["method"] == "update")
|
||||
$pruefungsfenster_id = $_POST["id"];
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
|
||||
|
||||
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
{
|
||||
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
||||
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
||||
$pruefungsfenster->start = $startDate;
|
||||
$pruefungsfenster->ende = $endDate;
|
||||
if ($pruefungsfenster->save())
|
||||
{
|
||||
echo "Datensatz erfolgreich geändert.";
|
||||
echo $p->t('pruefung/erfolgreichgeaendert');
|
||||
}
|
||||
else {
|
||||
echo "Fehler: ".$pruefungsfenster->errormsg;
|
||||
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Keine Berechtigung zum Ändern dieses Datensatzes.";
|
||||
echo $p->t('pruefung/keineBerechtigungZumAendernDesDatensatzes');
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// echo "Fehler: Startdatum liegt in der Vergangenheit.";
|
||||
// }
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: Enddatum liegt in der Vergangenheit.";
|
||||
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: Enddatum liegt nicht nach dem Startdatum.";
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: Datumseingabe nicht korrekt.";
|
||||
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
||||
}
|
||||
}
|
||||
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="update")
|
||||
@@ -198,41 +206,41 @@ else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
if(!in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
echo "Keine Berechtigung zum Anzeigen dieses Datensatzes.";
|
||||
echo $p->t('pruefung/keineBerechtigungZumAnzeigenDesDatensatzes');
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
}
|
||||
$method = $_GET["method"];
|
||||
}
|
||||
}
|
||||
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="delete")
|
||||
{
|
||||
{
|
||||
$pruefungsfenster_id = $_GET["id"];
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
|
||||
|
||||
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
if(!$pruefungsfenster->hasPruefungen($pruefungsfenster_id) && $pruefungsfenster->errormsg === null)
|
||||
{
|
||||
|
||||
|
||||
if($pruefungsfenster->delete($pruefungsfenster_id))
|
||||
{
|
||||
echo "Datensatz erfolgreich gelöscht.";
|
||||
}
|
||||
echo $p->t('pruefung/erfolgreichgeloescht');
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: ".$pruefungsfenster->errormsg;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Prüfungsfenster konnte nicht gelöscht werden, da Prüfungen verknüpft sind.";
|
||||
echo $p->t('pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen');
|
||||
}
|
||||
$method = $_GET["method"];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Keine Berechtigung zum Löschen dieses Datensatzes.";
|
||||
echo $p->t('pruefung/keineBerechtigungZumLoeschenDesDatensatzes');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,9 +248,9 @@ $prfFenster = new pruefungsfenster();
|
||||
$prfFenster->getAll("start");
|
||||
if($method != "update")
|
||||
{
|
||||
?>
|
||||
<h1>Prüfungsfenster-Verwaltung</h1>
|
||||
<h2>Neues Prüfungsfenster anlegen</h2>
|
||||
?>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
||||
<h2><?php echo $p->t('pruefung/neuesPruefungsfensterAnlegen'); ?></h2>
|
||||
<div>
|
||||
<form method="POST" action="pruefungsfenster_anlegen.php">
|
||||
<table>
|
||||
@@ -250,12 +258,12 @@ if($method != "update")
|
||||
<td><input type="hidden" name="method" value="save"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Studiensemester: </td>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester">
|
||||
<?php
|
||||
$aktuellesSemester = $studiensemester->getSemesterFromDatum(date("Y-m-d"));
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
{
|
||||
if($aktuellesSemester == $result->studiensemester_kurzbz)
|
||||
{
|
||||
@@ -271,23 +279,23 @@ if($method != "update")
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Organisationseinheit: </td>
|
||||
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
||||
<td>
|
||||
<select id="oe_kurzbz" name="oe_kurzbz">
|
||||
<?php
|
||||
|
||||
|
||||
$oe_array = array();
|
||||
|
||||
foreach ($oe as $result)
|
||||
|
||||
foreach ($oe as $result)
|
||||
{
|
||||
$organisationseinheit = new organisationseinheit();
|
||||
$organisationseinheit->load($result);
|
||||
array_push($oe_array, $organisationseinheit);
|
||||
}
|
||||
|
||||
|
||||
usort($oe_array, "compareOe");
|
||||
|
||||
foreach ($oe_array as $result)
|
||||
|
||||
foreach ($oe_array as $result)
|
||||
{
|
||||
echo '<option value="'.$result->oe_kurzbz.'">'.$result->organisationseinheittyp_kurzbz.' '.$result->bezeichnung.'</option>';
|
||||
}
|
||||
@@ -296,15 +304,15 @@ if($method != "update")
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Start: </td>
|
||||
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
||||
<td><input type="text" id="startDate" name="startDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ende: </td>
|
||||
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
||||
<td><input type="text" id="endDate" name="endDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="submit" value="speichern"></td>
|
||||
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
@@ -314,8 +322,8 @@ if($method != "update")
|
||||
else
|
||||
{
|
||||
?>
|
||||
<h1>Prüfungsfenster-Verwaltung</h1>
|
||||
<h2>Prüfungsfenster bearbeiten</h2>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
||||
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
||||
<div>
|
||||
<form method="POST" action="pruefungsfenster_anlegen.php">
|
||||
<table>
|
||||
@@ -326,11 +334,11 @@ else
|
||||
<td><input type="hidden" name="id" value="<?php echo $pruefungsfenster->pruefungsfenster_id; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Studiensemester: </td>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester">
|
||||
<?php
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
{
|
||||
if($result->studiensemester_kurzbz == $pruefungsfenster->studiensemester_kurzbz)
|
||||
{
|
||||
@@ -346,11 +354,11 @@ else
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Organisationseinheit: </td>
|
||||
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
||||
<td>
|
||||
<select id="oe_kurzbz" name="oe_kurzbz">
|
||||
<?php
|
||||
foreach ($oe as $result)
|
||||
foreach ($oe as $result)
|
||||
{
|
||||
if($result == $pruefungsfenster->oe_kurzbz)
|
||||
{
|
||||
@@ -366,16 +374,16 @@ else
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Start: </td>
|
||||
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
||||
<td><input type="text" id="startDate" name="startDate" value="<?php echo $pruefungsfenster->start; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ende: </td>
|
||||
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
||||
<td><input type="text" id="endDate" name="endDate" value="<?php echo $pruefungsfenster->ende; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="submit" value="Speichern"></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php"><input type="button" value="Abbrechen"></a></td>
|
||||
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php"><input type="button" value="<?php echo $p->t('global/abbrechen'); ?>"></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
@@ -390,21 +398,21 @@ else
|
||||
if((isset($_GET["id"]) && $method!="update") || !isset($_GET["id"]))
|
||||
{
|
||||
?>
|
||||
<h2>Prüfungsfenster bearbeiten</h2>
|
||||
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
||||
<div style="width: 50%;">
|
||||
<?php
|
||||
<?php
|
||||
if(!empty($prfFenster->result)){
|
||||
|
||||
|
||||
?>
|
||||
<table class="tablesorter" id="prfTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Studiensemester</th>
|
||||
<th>Organisationseinheit</th>
|
||||
<th>Startdatum</th>
|
||||
<th>Enddatum</th>
|
||||
<th>Bearbeiten</th>
|
||||
<th>Löschen</th>
|
||||
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
||||
<th><?php echo $p->t('global/organisationseinheit'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/start'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/ende'); ?></th>
|
||||
<th><?php echo $p->t('global/bearbeiten'); ?></th>
|
||||
<th><?php echo $p->t('global/loeschen'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -415,14 +423,14 @@ else
|
||||
if(in_array($result->oe_kurzbz, $oe))
|
||||
{
|
||||
$organisationseinheit->load($result->oe_kurzbz);
|
||||
echo
|
||||
echo
|
||||
'<tr>
|
||||
<td>'.$result->studiensemester_kurzbz.'</td>
|
||||
<td>'.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.'</td>
|
||||
<td>'.$result->start.'</td>
|
||||
<td>'.$result->ende.'</td>
|
||||
<td><a href="pruefungsfenster_anlegen.php?method=update&id='.$result->pruefungsfenster_id.'">bearbeiten</a></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php?method=delete&id='.$result->pruefungsfenster_id.'">löschen</a></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php?method=update&id='.$result->pruefungsfenster_id.'">'.$p->t('global/bearbeiten').'</a></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php?method=delete&id='.$result->pruefungsfenster_id.'">'. $p->t('global/loeschen').'</a></td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
@@ -433,14 +441,14 @@ else
|
||||
}
|
||||
else
|
||||
{
|
||||
echo
|
||||
echo
|
||||
'<tr>
|
||||
<td>Keine Prüfungsfenster gespeichert.</td>
|
||||
<td>'.$p->t('pruefung/keinePruefungsfensterGespeichert').'</td>
|
||||
</tr>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
|
||||
Regular → Executable
+25
-15
@@ -15,6 +15,14 @@ require_once('../../../../include/datum.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/pruefungsfenster.class.php');
|
||||
require_once('../../../../include/pruefungsanmeldung.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
require_once('../../../../include/sprache.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
@@ -66,7 +74,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$data = savePruefungstermin($mitarbeiter_uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $pruefungsintervall);
|
||||
@@ -105,7 +113,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$data = updatePruefungstermin($mitarbeiter_uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu, $pruefungsintervall);
|
||||
@@ -115,7 +123,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$lvId = $_POST["lehrveranstaltung_id"];
|
||||
@@ -127,7 +135,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$pruefung_id = $_REQUEST["pruefung_id"];
|
||||
@@ -138,7 +146,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$pruefung_id = $_REQUEST["pruefung_id"];
|
||||
@@ -158,7 +166,7 @@ switch($method)
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']='Sie haben keine Berechtigung.';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -255,10 +263,11 @@ function getPruefungsfensterByStudiensemester($studiensemester_kurzbz)
|
||||
*/
|
||||
function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $pruefungsintervall)
|
||||
{
|
||||
global $p;
|
||||
if($lehrveranstaltungen === null)
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Keine Lehrverantaltung angegeben.";
|
||||
$data['errormsg']=$p->t('pruefung/keineLvAngegeben');
|
||||
return $data;
|
||||
}
|
||||
$termineArray = array();
|
||||
@@ -282,7 +291,7 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Kollision mit anderem Termin.";
|
||||
$data['errormsg']=$p->t('pruefung/kollisionMitAnderemTermin');
|
||||
return $data;
|
||||
}
|
||||
// }
|
||||
@@ -292,7 +301,7 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id
|
||||
// $data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters.";
|
||||
// return $data;
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->termine = $termineArray;
|
||||
@@ -313,7 +322,7 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id
|
||||
array_push($pruefung->lehrveranstaltungen, $lv);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($pruefung->save(true))
|
||||
{
|
||||
$data['result']="true";
|
||||
@@ -397,12 +406,13 @@ function getLehrveranstaltungenByMitarbeiter($mitarbeiter_uid, $studiensemester_
|
||||
*/
|
||||
function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu, $pruefungsintervall)
|
||||
{
|
||||
global $p;
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
$datum = new datum();
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->load($pruefung_id);
|
||||
|
||||
|
||||
if($termineNeu !== null)
|
||||
{
|
||||
$termineNeuArray = array();
|
||||
@@ -426,7 +436,7 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']="Kollision mit anderem Termin.";
|
||||
$data['errormsg']=$p->t('pruefung/kollisionMitAnderemTermin');
|
||||
return $data;
|
||||
}
|
||||
// }
|
||||
@@ -442,7 +452,7 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
|
||||
$pruefung->saveTerminPruefung($pruefung_id, $t->beginn, $t->ende, $t->max, $t->min, $t->sammelklausur);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($termine !== null)
|
||||
{
|
||||
$termineArray = array();
|
||||
@@ -474,7 +484,7 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru
|
||||
}
|
||||
$pruefung->termine = $termineArray;
|
||||
}
|
||||
|
||||
|
||||
$pruefung->mitarbeiter_uid = $uid;
|
||||
$pruefung->studiensemester_kurzbz = $studiensemester_kurzbz;
|
||||
$pruefung->pruefungsfenster_id = $pruefungsfenster_id;
|
||||
@@ -661,4 +671,4 @@ function checkCollision($uid, $beginn, $ende)
|
||||
}
|
||||
return false;
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
Regular → Executable
+50
-42
@@ -2,22 +2,22 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
@@ -33,6 +33,14 @@ require_once('../../../../include/pruefungstermin.class.php');
|
||||
require_once('../../../../include/studiengang.class.php');
|
||||
require_once('../../../../include/pruefungCis.class.php');
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
require_once('../../../../include/sprache.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
@@ -49,11 +57,11 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfungstermin festlegen</title>
|
||||
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script src="../../../../include/js/jquery1.9.min.js"></script>
|
||||
<script src="../../../../include/js/jquery.tablesorter.min.js"></script>
|
||||
<script src="./pruefung.js"></script>
|
||||
<script src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
@@ -68,12 +76,12 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
.missingFormData {
|
||||
border: 2px solid red;
|
||||
outline: 2px solid red;
|
||||
}
|
||||
|
||||
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
@@ -82,7 +90,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
|
||||
|
||||
#prfDetails, #prfVerwaltung {
|
||||
margin: 1em;
|
||||
}
|
||||
@@ -142,7 +150,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
});
|
||||
</script>
|
||||
<div id="prfVerwaltung">
|
||||
<h1>Prüfungen verwalten</h1>
|
||||
<h1><?php echo $p->t('pruefung/pruefungenVerwalten'); ?></h1>
|
||||
<table>
|
||||
<tr>
|
||||
<?php
|
||||
@@ -160,7 +168,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td width="116px">Lektor:</td>';
|
||||
echo '<td width="116px">'.$p->t('pruefung/pruefungLektor').':</td>';
|
||||
echo '<td width="250px"><input placeholder="UID" type="text" id="lektor" value="" size="30"/></td>';
|
||||
echo '<input type="hidden" id="uid" value="" />';
|
||||
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
|
||||
@@ -169,54 +177,54 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
</tr>
|
||||
</table>
|
||||
<form method="post" action="pruefungstermin_festlegen.php" style="display: none;">
|
||||
|
||||
|
||||
<input type="hidden" name="method" value="save">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Titel:</td>
|
||||
<td><?php echo $p->t('pruefung/pruefungTitel'); ?>:</td>
|
||||
<td>
|
||||
<input id='titel' type="text" name="titel" size="30">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Beschreibung:</td>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('global/beschreibung'); ?>:</td>
|
||||
<td>
|
||||
<textarea id='beschreibung' name="beschreibung" rows="5" cols="20"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Studiensemester:</td>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>:</td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester" onchange="loadPruefungsfenster();" onload="loadPruefungsfenster();">
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Prüfungsfenster:</td>
|
||||
<td><?php echo $p->t('pruefung/pruefungsfenster'); ?>:</td>
|
||||
<td>
|
||||
<select id="pruefungsfenster" name="pruefungsfenster" onchange="setDatePicker(this);">
|
||||
<!--Daten werden durch JavaScript geladen-->
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<!--<tr>
|
||||
<td>Prüfungstyp:</td>
|
||||
<td>
|
||||
<select id='pruefungsTyp' name="pruefungsTyp">
|
||||
<!-- Daten werden per JavaScript geladen-->
|
||||
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</tr>-->
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Methode:</td>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('pruefung/pruefungMethode'); ?>:</td>
|
||||
<td><textarea id='methode' placeholder="Multiple Choice, etc." rows="5" cols="20" name="methode"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Einzelprüfung:</td>
|
||||
<td><?php echo $p->t('pruefung/pruefungEinzelpruefung'); ?>:</td>
|
||||
<td><input id='einzeln' type="checkbox" name="einzelpruefung"></td>
|
||||
</tr>
|
||||
<tr style="visibility:hidden;">
|
||||
<td>Prüfungsintervall:</td>
|
||||
<td><?php echo $p->t('pruefung/pruefungIntervall'); ?>:</td>
|
||||
<td>
|
||||
<select id="pruefungsintervall">
|
||||
<option value="15">15</option>
|
||||
@@ -226,7 +234,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">Lehrveranstaltungen:</td>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('global/lehrveranstaltung'); ?>:</td>
|
||||
<td>
|
||||
<div id="lvDropdowns">
|
||||
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
|
||||
@@ -236,18 +244,18 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a name="termin">Termin:</a></td>
|
||||
<td style="vertical-align: top;"><a name="termin"><?php echo $p->t('pruefung/pruefungTermin'); ?>:</a></td>
|
||||
<td>
|
||||
<div>
|
||||
<table width="500px" style="text-align: right;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Von</th>
|
||||
<th>bis</th>
|
||||
<th>min. Teilnehmer</th>
|
||||
<th>max. Teilnehmer</th>
|
||||
<th>Sammelklausur</th>
|
||||
<th><?php echo $p->t('global/datum'); ?></th>
|
||||
<th><?php echo $p->t('global/von'); ?></th>
|
||||
<th><?php echo $p->t('global/bis'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMinTeilnehmer'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMaxTeilnehmer'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungSammelklausur'); ?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -278,30 +286,30 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<a href="#termin" onclick="terminHinzufuegen();">Termin hinzufügen</a>
|
||||
<a href="#termin" onclick="terminHinzufuegen();"><?php echo $p->t('pruefung/pruefungTerminHinzufuegen'); ?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td><td><input id="buttonSave" type="button" value="Speichern" onclick='savePruefungstermin();'></td>
|
||||
<td> </td><td><input id="buttonSave" type="button" value="<?php echo $p->t('global/speichern'); ?>" onclick='savePruefungstermin();'></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<div id="prfDetails">
|
||||
<h2>Prüfungen</h2>
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<div style="width: 75%;">
|
||||
<table class="tablesorter" id="prfTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Titel</th>
|
||||
<th>Studiensemester</th>
|
||||
<th>Lehrveranstaltungen</th>
|
||||
<th>Termine</th>
|
||||
<th>Methode</th>
|
||||
<th>Prüfungstyp</th>
|
||||
<th>Einzelprüfung</th>
|
||||
<th>Mitarbeiter</th>
|
||||
<th>storniert</th>
|
||||
<th><?php echo $p->t('pruefung/pruefungTitel'); ?></th>
|
||||
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
||||
<th><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMethode'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungTyp'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungEinzelpruefung'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMitarbeiter'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/storniert'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@@ -37,6 +37,85 @@ if (!$db = new basis_db())
|
||||
|
||||
$uid=get_uid();
|
||||
|
||||
//$type='ort';
|
||||
//$ort_kurzbz='EDV6.08';
|
||||
//$datum=1102260015;
|
||||
|
||||
// Deutsche Umgebung
|
||||
//$loc_de=setlocale(LC_ALL, 'de_AT@euro', 'de_AT','de_DE@euro', 'de_DE');
|
||||
//setlocale(LC_ALL, $loc_de);
|
||||
|
||||
// Variablen uebernehmen
|
||||
if (isset($_GET['type']))
|
||||
$type=$_GET['type'];
|
||||
if (isset($_POST['type']))
|
||||
$type=$_POST['type'];
|
||||
if (isset($_GET['datum']))
|
||||
$datum=$_GET['datum'];
|
||||
if (isset($_POST['datum']))
|
||||
$datum=$_POST['datum'];
|
||||
|
||||
if (isset($_GET['ort_kurzbz']))
|
||||
$ort_kurzbz=$_GET['ort_kurzbz'];
|
||||
else if (isset($_POST['ort_kurzbz']))
|
||||
$ort_kurzbz=$_POST['ort_kurzbz'];
|
||||
else
|
||||
$ort_kurzbz=null;
|
||||
|
||||
if (isset($_GET['pers_uid']))
|
||||
$pers_uid=$_GET['pers_uid'];
|
||||
|
||||
if (isset($_GET['stg_kz']))
|
||||
$stg_kz=$_GET['stg_kz'];
|
||||
else if (isset($_POST['stg_kz']))
|
||||
$stg_kz=$_POST['stg_kz'];
|
||||
else
|
||||
$stg_kz=null;
|
||||
|
||||
if (isset($_GET['lva']))
|
||||
$lva=$_GET['lva'];
|
||||
else if (isset($_POST['lva']))
|
||||
$lva=$_POST['lva'];
|
||||
else
|
||||
$lva=null;
|
||||
|
||||
if (isset($_POST['sem']))
|
||||
$sem=$_POST['sem'];
|
||||
else if (isset($_GET['sem']))
|
||||
$sem=$_GET['sem'];
|
||||
else
|
||||
$sem=null;
|
||||
|
||||
if (isset($_POST['ver']))
|
||||
$ver=$_POST['ver'];
|
||||
else if (isset($_GET['ver']))
|
||||
$ver=$_GET['ver'];
|
||||
else
|
||||
$ver=null;
|
||||
|
||||
if (isset($_POST['grp']))
|
||||
$grp=$_POST['grp'];
|
||||
else if (isset($_GET['grp']))
|
||||
$grp=$_GET['grp'];
|
||||
else
|
||||
$grp=null;
|
||||
|
||||
if (isset($_POST['gruppe_kurzbz']))
|
||||
$gruppe_kurzbz=$_POST['gruppe_kurzbz'];
|
||||
else if (isset($_GET['gruppe_kurzbz']))
|
||||
$gruppe_kurzbz=$_GET['gruppe_kurzbz'];
|
||||
else
|
||||
$gruppe_kurzbz=null;
|
||||
|
||||
if (isset($_POST['user_uid']))
|
||||
$user_uid=$_POST['user_uid'];
|
||||
if (isset($_POST['reserve']))
|
||||
$reserve=$_POST['reserve'];
|
||||
if (isset($_POST['beschreibung']))
|
||||
$beschreibung=$_POST['beschreibung'];
|
||||
if (isset($_POST['titel']))
|
||||
$titel=$_POST['titel'];
|
||||
|
||||
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
@@ -145,18 +224,41 @@ $uid=get_uid();
|
||||
});
|
||||
-->
|
||||
</script>
|
||||
<LINK rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<link href="../../../skin/flexcrollstyles.css" rel="stylesheet" type="text/css" />
|
||||
<script src="../../../include/js/flexcroll.js" type="text/javascript" ></script>
|
||||
<?php
|
||||
// ADDONS laden
|
||||
$addon_obj = new addon();
|
||||
$addon_obj->loadAddons();
|
||||
foreach($addon_obj->result as $addon)
|
||||
{
|
||||
if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php'))
|
||||
echo '<script type="application/x-javascript" src="../../../addons/'.$addon->kurzbz.'/cis/init.js.php" ></script>';
|
||||
}
|
||||
|
||||
// Wenn Seite fertig geladen ist Addons aufrufen
|
||||
echo '
|
||||
<script>
|
||||
$( document ).ready(function()
|
||||
{
|
||||
if(typeof addon !== \'undefined\')
|
||||
{
|
||||
for(i in addon)
|
||||
{
|
||||
addon[i].init("cis/private/lvplan/stpl_week.php", {ort_kurzbz:\''.$ort_kurzbz.'\'});
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
';
|
||||
?>
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
</HEAD>
|
||||
<BODY id="inhalt">
|
||||
<div class="flexcroll" style="outline: none;">
|
||||
<h1><?php echo $p->t('lvplan/wochenplan');?></h1>
|
||||
<table class="tabcontent">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="index.php"><?php echo $p->t('lvplan/hauptmenue');?></a><br>
|
||||
<?php echo '<a href="../../../cms/content.php?content_id='.$p->t("dms_link/lvPlanFAQ").'" class="hilfe" target="_blank">'.$p->t("global/hilfe").'</a>'; ?>
|
||||
<?php if ($p->t("dms_link/lvPlanFAQ")!='') echo '<a href="../../../cms/content.php?content_id='.$p->t("dms_link/lvPlanFAQ").'" class="hilfe" target="_blank">'.$p->t("global/hilfe").'</a>'; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -173,85 +275,6 @@ $uid=get_uid();
|
||||
* Update: 15.11.2004 von Christian Paminger
|
||||
*****************************************************************************/
|
||||
|
||||
//$type='ort';
|
||||
//$ort_kurzbz='EDV6.08';
|
||||
//$datum=1102260015;
|
||||
|
||||
// Deutsche Umgebung
|
||||
//$loc_de=setlocale(LC_ALL, 'de_AT@euro', 'de_AT','de_DE@euro', 'de_DE');
|
||||
//setlocale(LC_ALL, $loc_de);
|
||||
|
||||
// Variablen uebernehmen
|
||||
if (isset($_GET['type']))
|
||||
$type=$_GET['type'];
|
||||
if (isset($_POST['type']))
|
||||
$type=$_POST['type'];
|
||||
if (isset($_GET['datum']))
|
||||
$datum=$_GET['datum'];
|
||||
if (isset($_POST['datum']))
|
||||
$datum=$_POST['datum'];
|
||||
|
||||
if (isset($_GET['ort_kurzbz']))
|
||||
$ort_kurzbz=$_GET['ort_kurzbz'];
|
||||
else if (isset($_POST['ort_kurzbz']))
|
||||
$ort_kurzbz=$_POST['ort_kurzbz'];
|
||||
else
|
||||
$ort_kurzbz=null;
|
||||
|
||||
if (isset($_GET['pers_uid']))
|
||||
$pers_uid=$_GET['pers_uid'];
|
||||
|
||||
if (isset($_GET['stg_kz']))
|
||||
$stg_kz=$_GET['stg_kz'];
|
||||
else if (isset($_POST['stg_kz']))
|
||||
$stg_kz=$_POST['stg_kz'];
|
||||
else
|
||||
$stg_kz=null;
|
||||
|
||||
if (isset($_GET['lva']))
|
||||
$lva=$_GET['lva'];
|
||||
else if (isset($_POST['lva']))
|
||||
$lva=$_POST['lva'];
|
||||
else
|
||||
$lva=null;
|
||||
|
||||
if (isset($_POST['sem']))
|
||||
$sem=$_POST['sem'];
|
||||
else if (isset($_GET['sem']))
|
||||
$sem=$_GET['sem'];
|
||||
else
|
||||
$sem=null;
|
||||
|
||||
if (isset($_POST['ver']))
|
||||
$ver=$_POST['ver'];
|
||||
else if (isset($_GET['ver']))
|
||||
$ver=$_GET['ver'];
|
||||
else
|
||||
$ver=null;
|
||||
|
||||
if (isset($_POST['grp']))
|
||||
$grp=$_POST['grp'];
|
||||
else if (isset($_GET['grp']))
|
||||
$grp=$_GET['grp'];
|
||||
else
|
||||
$grp=null;
|
||||
|
||||
if (isset($_POST['gruppe_kurzbz']))
|
||||
$gruppe_kurzbz=$_POST['gruppe_kurzbz'];
|
||||
else if (isset($_GET['gruppe_kurzbz']))
|
||||
$gruppe_kurzbz=$_GET['gruppe_kurzbz'];
|
||||
else
|
||||
$gruppe_kurzbz=null;
|
||||
|
||||
if (isset($_POST['user_uid']))
|
||||
$user_uid=$_POST['user_uid'];
|
||||
if (isset($_POST['reserve']))
|
||||
$reserve=$_POST['reserve'];
|
||||
if (isset($_POST['beschreibung']))
|
||||
$beschreibung=$_POST['beschreibung'];
|
||||
if (isset($_POST['titel']))
|
||||
$titel=$_POST['titel'];
|
||||
|
||||
//Parameter pruefen
|
||||
if($stg_kz!='' && !is_numeric($stg_kz))
|
||||
die('Studiengang ist ungueltig');
|
||||
@@ -411,6 +434,5 @@ if (isset($count))
|
||||
?>
|
||||
|
||||
<P><br><?php echo $p->t('lvplan/fehlerUndFeedback');?> <A class="Item" href="mailto:<?php echo MAIL_LVPLAN?>"><?php echo $p->t('lvplan/lvKoordinationsstelle');?></A>.</P>
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
@@ -26,6 +26,7 @@ require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/konto.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/student.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
@@ -40,6 +41,24 @@ else
|
||||
|
||||
$uid=get_uid();
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um die Notenliste
|
||||
// von anderen Personen anzuzeigen
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$uid = $_GET['uid'];
|
||||
$getParam = "&uid=" . $uid;
|
||||
}
|
||||
else
|
||||
$getParam = "";
|
||||
}
|
||||
else
|
||||
$getParam='';
|
||||
|
||||
$student_studiengang = new student();
|
||||
$student_studiengang->load($uid);
|
||||
$xsl_stg_kz = $student_studiengang->studiengang_kz;
|
||||
@@ -102,7 +121,7 @@ echo '
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
function MM_jumpMenu(targ, selObj, restore)
|
||||
{
|
||||
eval(targ + ".location=\'" + selObj.options[selObj.selectedIndex].value + "\'");
|
||||
eval(targ + ".location=\'" + selObj.options[selObj.selectedIndex].value + "'.$getParam.'\'");
|
||||
|
||||
if(restore)
|
||||
{
|
||||
@@ -168,8 +187,8 @@ if(defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUC
|
||||
|
||||
if(defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN)
|
||||
{
|
||||
echo "<a href='studienerfolgsbestaetigung.php' class='Item'>".$p->t('tools/studienerfolgsbestaetigung')." Deutsch</a><br>";
|
||||
echo "<a href='studienerfolgsbestaetigung.php?lang=en' class='Item'>".$p->t('tools/studienerfolgsbestaetigung')." Englisch</a>";
|
||||
echo "<a href='studienerfolgsbestaetigung.php?".$getParam."' class='Item'>".$p->t('tools/studienerfolgsbestaetigung')." Deutsch</a><br>";
|
||||
echo "<a href='studienerfolgsbestaetigung.php?lang=en".$getParam."' class='Item'>".$p->t('tools/studienerfolgsbestaetigung')." Englisch</a>";
|
||||
echo "<hr>";
|
||||
}
|
||||
echo "<br>";
|
||||
|
||||
Regular → Executable
+95
-22
@@ -1,22 +1,22 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2013 fhcomplete.org
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*
|
||||
@@ -42,6 +42,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/benutzergruppe.class.php');
|
||||
require_once('../../../include/konto.class.php');
|
||||
require_once('../../../include/lvinfo.class.php');
|
||||
require_once('../../../include/addon.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
@@ -76,7 +77,7 @@ if(isset($_GET['getAnmeldung']))
|
||||
|
||||
// Die Anmeldung ist zur Lehrveranstaltung selbst und zu den dazu kompatiblen Lehrveranstaltungen moeglich
|
||||
$kompatibel = $lehrveranstaltung->loadLVkompatibel($lehrveranstaltung_id);
|
||||
|
||||
|
||||
$datum = new datum();
|
||||
$kompatibel[]=$lehrveranstaltung_id;
|
||||
$kompatibel = array_unique($kompatibel);
|
||||
@@ -121,7 +122,7 @@ if(isset($_GET['getAnmeldung']))
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($anzahl>0)
|
||||
echo '<br><br><input type="submit" value="'.$p->t('studienplan/anmelden').'" /></form>';
|
||||
else
|
||||
@@ -137,8 +138,34 @@ echo '<!DOCTYPE html>
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" />
|
||||
<link rel="stylesheet" href="../../../skin/jquery.css" />
|
||||
<link rel="stylesheet" href="../../../skin/jquery-ui-1.9.2.custom.min.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>';
|
||||
|
||||
// ADDONS laden
|
||||
$addon_obj = new addon();
|
||||
$addon_obj->loadAddons();
|
||||
foreach($addon_obj->result as $addon)
|
||||
{
|
||||
if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php'))
|
||||
echo '<script type="application/x-javascript" src="../../../addons/'.$addon->kurzbz.'/cis/init.js.php" ></script>';
|
||||
}
|
||||
|
||||
// Wenn Seite fertig geladen ist Addons aufrufen
|
||||
echo '
|
||||
<script>
|
||||
$( document ).ready(function()
|
||||
{
|
||||
if(typeof addon !== \'undefined\')
|
||||
{
|
||||
for(i in addon)
|
||||
{
|
||||
addon[i].init("cis/private/profile/studienplan.php", {});
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
';
|
||||
|
||||
echo '
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#dialog").dialog({ autoOpen: false, width: "auto" });
|
||||
@@ -231,7 +258,7 @@ $tree = $lehrveranstaltung->getLehrveranstaltungTree();
|
||||
|
||||
|
||||
/*
|
||||
Vom Semesterstart des Studierenden ausgehend werden die Studiensemester geladen.
|
||||
Vom Semesterstart des Studierenden ausgehend werden die Studiensemester geladen.
|
||||
Es werden mindestens so viele Studiensemester geladen wie die Regelstudiendauer des
|
||||
Studienplanes angibt.
|
||||
*/
|
||||
@@ -257,7 +284,11 @@ if(!in_array($stsemToShow,$stsem_arr))
|
||||
{
|
||||
for($i=count($stsem_arr);$i<50;$i++)
|
||||
{
|
||||
$stsem_arr[$i]=$stsem->getNextFrom($studiensemester_prev);
|
||||
if(!$stsem_arr[$i]=$stsem->getNextFrom($studiensemester_prev))
|
||||
{
|
||||
unset($stsem_arr[$i]);
|
||||
break;
|
||||
}
|
||||
$studiensemester_prev=$stsem_arr[$i];
|
||||
if($stsemToShow==$studiensemester_prev)
|
||||
{
|
||||
@@ -307,7 +338,7 @@ echo '<table style="border: 1px solid black">
|
||||
|
||||
if(CIS_STUDIENPLAN_SEMESTER_ANZEIGEN)
|
||||
echo '<th>'.$p->t('global/semester').'</th>';
|
||||
|
||||
|
||||
echo '<th>'.$p->t('studienplan/ects').'</th>
|
||||
<th>'.$p->t('studienplan/status').'</th>';
|
||||
|
||||
@@ -362,7 +393,7 @@ function drawTree($tree, $depth)
|
||||
default:
|
||||
$icon='';
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo '<tr'.$style.'>
|
||||
<td>'.$bstart;
|
||||
@@ -391,7 +422,7 @@ function drawTree($tree, $depth)
|
||||
$sprache = 'de';
|
||||
break;
|
||||
case 'English':
|
||||
$sprach = 'en';
|
||||
$sprache = 'en';
|
||||
break;
|
||||
default:
|
||||
$sprache = 'de';
|
||||
@@ -400,20 +431,24 @@ function drawTree($tree, $depth)
|
||||
echo $icon." ".$termine." <a href=\"#\" class='Item' onClick=\"javascript:window.open('../lehre/ects/preview.php?lv=$row_tree->lehrveranstaltung_id&language=$sprache','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">".$row_tree->kurzbz.' - '.$row_tree->bezeichnung."</a>";
|
||||
else
|
||||
// Bezeichnung der Lehrveranstaltung
|
||||
echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung;
|
||||
echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.'('.$row_tree->lehrveranstaltung_id.')';
|
||||
echo $bende.'</td>';
|
||||
|
||||
|
||||
// Semester
|
||||
if(CIS_STUDIENPLAN_SEMESTER_ANZEIGEN)
|
||||
echo '<td>'.$row_tree->semester.'</td>';
|
||||
|
||||
|
||||
// ECTS Punkte
|
||||
echo '<td>'.$row_tree->ects.'</td>';
|
||||
|
||||
|
||||
// Status der LV (absolviert, offen)
|
||||
echo '<td>';
|
||||
|
||||
// Note zu dieser LV vorhanden?
|
||||
|
||||
$lv_kompatibel = new lehrveranstaltung();
|
||||
$kompatibleLVs = $lv_kompatibel->loadLVkompatibel($row_tree->lehrveranstaltung_id);
|
||||
|
||||
if(isset($noten_arr[$row_tree->lehrveranstaltung_id]))
|
||||
{
|
||||
// Positive Note fuer diese LV vorhanden?
|
||||
@@ -429,6 +464,27 @@ function drawTree($tree, $depth)
|
||||
else
|
||||
echo '<span class="error">'.$p->t('studienplan/negativ').'</span>';
|
||||
}
|
||||
//check if compatible course has grade
|
||||
elseif(count($kompatibleLVs) > 0)
|
||||
{
|
||||
foreach($kompatibleLVs as $komp)
|
||||
{
|
||||
if(isset($noten_arr[$komp]))
|
||||
{
|
||||
$positiv=false;
|
||||
foreach($noten_arr[$komp] as $note)
|
||||
{
|
||||
if($note_pruef_arr[$note]->positiv)
|
||||
$positiv=true;
|
||||
}
|
||||
|
||||
if($positiv)
|
||||
echo '<span class="ok">'.$p->t('studienplan/abgeschlossen').'</span>';
|
||||
else
|
||||
echo '<span class="error">'.$p->t('studienplan/negativ').'</span>';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($abgeschlossen)
|
||||
@@ -440,11 +496,11 @@ function drawTree($tree, $depth)
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
// Spalten für die einzelnen Studiensemester
|
||||
// Spalten für die einzelnen Studiensemester
|
||||
foreach($stsem_arr as $key=>$stsem)
|
||||
{
|
||||
$semester=$key+1;
|
||||
|
||||
|
||||
$tdclass=array();
|
||||
//Empfehlung holen
|
||||
// if(isset($lv_arr[$row_tree->lehrveranstaltung_id]))
|
||||
@@ -464,6 +520,19 @@ function drawTree($tree, $depth)
|
||||
else
|
||||
$tdinhalt .= '<span class="error">'.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.'</span>';
|
||||
}
|
||||
elseif(count($kompatibleLVs) > 0)
|
||||
{
|
||||
foreach($kompatibleLVs as $komp)
|
||||
{
|
||||
if(isset($noten_arr[$komp][$stsem]))
|
||||
{
|
||||
if($note_pruef_arr[$noten_arr[$komp][$stsem]]->positiv)
|
||||
$tdinhalt .= '<span class="ok">'.$note_pruef_arr[$noten_arr[$komp][$stsem]]->anmerkung.'</span>';
|
||||
else
|
||||
$tdinhalt .= '<span class="error">'.$note_pruef_arr[$noten_arr[$komp][$stsem]]->anmerkung.'</span>';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Angebot der LV und der Kompatiblen pruefen
|
||||
@@ -495,7 +564,7 @@ function drawTree($tree, $depth)
|
||||
// Angebot der LV pruefen
|
||||
if(isset($lvangebot_arr[$row_lvid])
|
||||
&& isset($lvangebot_arr[$row_lvid][$stsem]))
|
||||
{
|
||||
{
|
||||
$angebot_vorhanden=true;
|
||||
// LV findet statt
|
||||
$angebot = $lvangebot_arr[$row_lvid][$stsem];
|
||||
@@ -533,11 +602,11 @@ function drawTree($tree, $depth)
|
||||
$tdclass[]='angebot';
|
||||
if($angemeldet)
|
||||
{
|
||||
$tdinhalt.= '<a href="#" onclick="OpenAnmeldung(\''.$row_tree->lehrveranstaltung_id.'\',\''.$stsem.'\'); return false;"><img src="../../../skin/images/anmelden.png" title="angemeldet" /></a>';
|
||||
$tdinhalt.= '<a href="#" onclick="OpenAnmeldung(\''.$row_tree->lehrveranstaltung_id.'\',\''.$stsem.'\'); return false;"><img src="../../../skin/images/ja.png" title="'.$p->t('studienplan/legendeAngemeldet').'" /></a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if($anmeldungmoeglich)
|
||||
if($anmeldungmoeglich)
|
||||
$tdinhalt.= '<a href="#" onclick="OpenAnmeldung(\''.$row_tree->lehrveranstaltung_id.'\',\''.$stsem.'\'); return false;"><img src="../../../skin/images/anmelden.png" title="'.$p->t('studienplan/anmelden').'" height="15px" /></a>';
|
||||
else
|
||||
$tdinhalt.= '<span title="'.$anmeldeinformation.'">-</a>';
|
||||
@@ -559,7 +628,7 @@ function drawTree($tree, $depth)
|
||||
echo '</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
|
||||
|
||||
// Wenn Subtree vorhanden, dann anzeigen
|
||||
if(!empty($row_tree->childs))
|
||||
drawTree($row_tree->childs, $depth+1);
|
||||
@@ -584,6 +653,10 @@ echo '<br><br>'.$p->t('studienplan/legende').':<br>
|
||||
<td align="center"><img src="../../../skin/images/anmelden.png"></td>
|
||||
<td>'.$p->t('studienplan/Anmeldung').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="../../../skin/images/ja.png"></td>
|
||||
<td>'.$p->t('studienplan/legendeAngemeldet').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="../../../skin/images/not-available.png"></td>
|
||||
<td>'.$p->t('studienplan/legendeLock').'</td>
|
||||
|
||||
@@ -29,10 +29,30 @@
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
$uid=get_uid();
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um die Zahlungen
|
||||
// von anderen Personen anzuzeigen
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$uid = $_GET['uid'];
|
||||
$getParam = "&uid=" . $uid;
|
||||
}
|
||||
else
|
||||
$getParam = "";
|
||||
}
|
||||
else
|
||||
$getParam='';
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
@@ -41,7 +61,25 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>'.$p->t('tools/zahlungen').'</title>
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.js"></script>
|
||||
</head>
|
||||
<style>
|
||||
table.tablesorter
|
||||
{
|
||||
width: auto;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<body>';
|
||||
|
||||
$studiengang = new studiengang();
|
||||
@@ -68,22 +106,23 @@
|
||||
$konto->getBuchungen($benutzer->person_id);
|
||||
if(count($konto->result)>0)
|
||||
{
|
||||
echo '<br><br><table>';
|
||||
echo '<tr class="liste">';
|
||||
echo '<br><br><table class="tablesorter" id="t1"><thead>';
|
||||
echo '<tr>';
|
||||
echo '
|
||||
<td>'.$p->t('global/datum').'</td>
|
||||
<td>'.$p->t('tools/zahlungstyp').'</td>
|
||||
<td>'.$p->t('lvplan/stg').'</td>
|
||||
<td>'.$p->t('global/studiensemester').'</td>
|
||||
<td>'.$p->t('tools/buchungstext').'</td>
|
||||
<td>'.$p->t('tools/betrag').'</td>
|
||||
<td>'.$p->t('tools/zahlungsbestaetigung').'</td>';
|
||||
echo '</tr>';
|
||||
$i=0;
|
||||
<th>'.$p->t('global/datum').'</th>
|
||||
<th>'.$p->t('tools/zahlungstyp').'</th>
|
||||
<th>'.$p->t('lvplan/stg').'</th>
|
||||
<th>'.$p->t('global/studiensemester').'</th>
|
||||
<th>'.$p->t('tools/buchungstext').'</th>
|
||||
<th>'.$p->t('tools/betrag').'</th>
|
||||
<th>'.$p->t('tools/zahlungsbestaetigung').'</th>';
|
||||
echo '</tr></thead><tbody>';
|
||||
|
||||
foreach ($konto->result as $row)
|
||||
{
|
||||
$i++;
|
||||
|
||||
$i=0; //Zaehler fuer Anzahl Gegenbuchungen
|
||||
$buchungsnummern='';
|
||||
|
||||
if(!isset($row['parent']))
|
||||
continue;
|
||||
$betrag = $row['parent']->betrag;
|
||||
@@ -91,49 +130,50 @@
|
||||
|
||||
if(isset($row['childs']))
|
||||
{
|
||||
foreach ($row['childs'] as $row_child)
|
||||
foreach ($row['childs'] as $key => $row_child)
|
||||
{
|
||||
$betrag += $row_child->betrag;
|
||||
$betrag = round($betrag, 2);
|
||||
$betrag = round($betrag, 2);
|
||||
$buchungsnummern .= ';'.$row['childs'][$key]->buchungsnr;
|
||||
$i = $key; //Zaehler auf letzten Gegenbuchungseintrag setzen
|
||||
}
|
||||
}
|
||||
else
|
||||
$buchungsnummern = $row['parent']->buchungsnr;
|
||||
|
||||
if($betrag<0)
|
||||
$style='style="background-color: #FF8888;"';
|
||||
elseif($betrag>0)
|
||||
$style='style="background-color: #88DD88;"';
|
||||
else
|
||||
{
|
||||
$style='class="liste'.($i%2).'"';
|
||||
}
|
||||
$style='';
|
||||
|
||||
echo "<tr>";
|
||||
echo '<td '.$style.'>'.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).'</td>';
|
||||
echo '<td '.$style.'>'.$buchungstyp[$row['parent']->buchungstyp_kurzbz].'</td>';
|
||||
echo '<td '.$style.'>'.$stg_arr[$row['parent']->studiengang_kz].'</td>';
|
||||
echo '<td '.$style.'>'.$row['parent']->studiensemester_kurzbz.'</td>';
|
||||
|
||||
echo "<tr $style>";
|
||||
echo '<td>'.date('d.m.Y',$datum_obj->mktime_fromdate($row['parent']->buchungsdatum)).'</td>';
|
||||
echo '<td>'.$buchungstyp[$row['parent']->buchungstyp_kurzbz].'</td>';
|
||||
echo '<td>'.$stg_arr[$row['parent']->studiengang_kz].'</td>';
|
||||
echo '<td>'.$row['parent']->studiensemester_kurzbz.'</td>';
|
||||
|
||||
echo '<td>'.$row['parent']->buchungstext.'</td>';
|
||||
echo '<td align="right">'.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).' €</td>';
|
||||
echo '<td align="center">';
|
||||
echo '<td '.$style.'>'.$row['parent']->buchungstext.'</td>';
|
||||
echo '<td align="right" '.$style.'>'.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).' €</td>';
|
||||
echo '<td align="center" '.$style.'>';
|
||||
if($betrag==0 && $row['parent']->betrag<=0)
|
||||
echo '<a href="../pdfExport.php?xml=konto.rdf.php&xsl=Zahlung&uid='.$uid.'&buchungsnummern='.$row['parent']->buchungsnr.'" title="'.$p->t('tools/bestaetigungDrucken').'"><img src="../../../skin/images/pdfpic.gif" alt="'.$p->t('tools/bestaetigungDrucken').'"></a>';
|
||||
echo '<a href="../pdfExport.php?xml=konto.rdf.php&xsl=Zahlung&uid='.$uid.'&buchungsnummern='.$buchungsnummern.'" title="'.$p->t('tools/bestaetigungDrucken').'"><img src="../../../skin/images/pdfpic.gif" alt="'.$p->t('tools/bestaetigungDrucken').'"></a>';
|
||||
elseif($row['parent']->betrag>0)
|
||||
{
|
||||
//Auszahlung
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
echo '<a onclick="window.open(';
|
||||
echo "'zahlungen_details.php?buchungsnr=".$row['parent']->buchungsnr."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
|
||||
echo "'zahlungen_details.php?buchungsnr=".$row['parent']->buchungsnr.$getParam."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
|
||||
echo '" href="#">'.$p->t('tools/offen').'</a> ('.sprintf('%.2f',$betrag*-1).' €)';
|
||||
}
|
||||
|
||||
echo '</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</table>';
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -25,8 +25,27 @@ require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/organisationseinheit.class.php');
|
||||
require_once('../../../include/addon.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um die Zahlungsdetails
|
||||
// von anderen Personen anzuzeigen
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$uid = $_GET['uid'];
|
||||
$getParam = "&uid=" . $uid;
|
||||
}
|
||||
else
|
||||
$getParam = "";
|
||||
}
|
||||
else
|
||||
$getParam='';
|
||||
|
||||
$benutzer = new benutzer();
|
||||
if(!$benutzer->load($uid))
|
||||
|
||||
+521
-494
File diff suppressed because it is too large
Load Diff
@@ -19,31 +19,31 @@
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Karl Burkhart <burkhart@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
|
||||
require_once '../../../config/cis.config.inc.php';
|
||||
require_once '../../../include/phrasen.class.php';
|
||||
require_once '../../../include/person.class.php';
|
||||
require_once '../../../include/person.class.php';
|
||||
|
||||
if(isset($_GET['lang']))
|
||||
setSprache($_GET['lang']);
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
|
||||
if (isset($_POST['userid']))
|
||||
if (isset($_POST['userid']))
|
||||
{
|
||||
$login = $_REQUEST['userid'];
|
||||
$person = new person();
|
||||
|
||||
$login = $_REQUEST['userid'];
|
||||
$person = new person();
|
||||
|
||||
session_start();
|
||||
|
||||
$preincoming=$person->checkZugangscodeIncoming($login);
|
||||
|
||||
|
||||
$preincoming=$person->checkZugangscodeIncoming($login);
|
||||
|
||||
//Zugangscode wird überprüft
|
||||
if($preincoming != false)
|
||||
{
|
||||
$_SESSION['incoming/user'] = $login;
|
||||
$_SESSION['incoming/preincomingid'] = $preincoming;
|
||||
$_SESSION['incoming/preincomingid'] = $preincoming;
|
||||
|
||||
header('Location: incoming.php');
|
||||
exit;
|
||||
@@ -67,19 +67,19 @@ if (isset($_POST['userid']))
|
||||
<table width="100%" border="0">
|
||||
<tr>
|
||||
<td align="left"></td>
|
||||
<td align ="right"><?php
|
||||
<td align ="right"><?php
|
||||
echo $p->t("global/sprache")." ";
|
||||
echo '<a href="'.$_SERVER['PHP_SELF'].'?lang=English">'.$p->t("global/englisch").'</a> |
|
||||
echo '<a href="'.$_SERVER['PHP_SELF'].'?lang=English">'.$p->t("global/englisch").'</a> |
|
||||
<a href="'.$_SERVER['PHP_SELF'].'?lang=German">'.$p->t("global/deutsch").'</a><br>';?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<form action ="index.php" method="POST">
|
||||
<table border ="0" width ="100%" height="40%">
|
||||
<tr height="50%">
|
||||
<td align ="center" valign="center"><h3><?php echo $p->t('incoming/welcomeToUAS');?></h3><span style="font-size:1.2em"></span></td>
|
||||
<td align ="center" valign="center"><h3><?php echo $p->t('incoming/welcomeToUAS',array(CAMPUS_NAME));?></h3><span style="font-size:1.2em"></span></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td align="center" valign="bottom"> <img src="../../../skin/images/tw_logo_02.jpg"></td>
|
||||
<td align="center" valign="bottom"> <img src="../../../skin/styles/<?php echo DEFAULT_STYLE ?>/logo.png"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border ="0" width ="100%">
|
||||
@@ -110,7 +110,7 @@ if (isset($_POST['userid']))
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -26,25 +26,26 @@ require_once '../../../include/nation.class.php';
|
||||
require_once '../../../include/functions.inc.php';
|
||||
require_once '../../../include/phrasen.class.php';
|
||||
require_once '../../../include/adresse.class.php';
|
||||
require_once '../../../include/kontakt.class.php';
|
||||
require_once '../../../include/preincoming.class.php';
|
||||
require_once '../../../include/kontakt.class.php';
|
||||
require_once '../../../include/preincoming.class.php';
|
||||
require_once '../../../include/mail.class.php';
|
||||
require_once '../../../include/securimage/securimage.php';
|
||||
|
||||
|
||||
if(isset($_GET['lang']))
|
||||
setSprache($_GET['lang']);
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
|
||||
$nation = new nation();
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
|
||||
$nation = new nation();
|
||||
if($sprache == "German")
|
||||
$nation->getAll($ohnesperre = true);
|
||||
$nation->getAll($ohnesperre = true);
|
||||
else if($sprache == "English")
|
||||
$nation->getAll($ohnesperre = true, $orderEnglish= true);
|
||||
|
||||
|
||||
$date = new datum();
|
||||
$date = new datum();
|
||||
|
||||
?>
|
||||
<html>
|
||||
@@ -54,34 +55,34 @@ $date = new datum();
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link href="../../../include/js/tablesort/table.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="F2F2F2">
|
||||
<?php
|
||||
<body>
|
||||
<?php
|
||||
|
||||
echo ' <table width="100%" border="0">
|
||||
<tr>
|
||||
<td align="left"><a href="index.php">Login</a> > Registration </td>
|
||||
<td align ="right">
|
||||
<td align ="right">
|
||||
'.$p->t("global/sprache").'
|
||||
<a href="'.$_SERVER['PHP_SELF'].'?lang=English">'.$p->t("global/englisch").'</a> |
|
||||
<a href="'.$_SERVER['PHP_SELF'].'?lang=English">'.$p->t("global/englisch").'</a> |
|
||||
<a href="'.$_SERVER['PHP_SELF'].'?lang=German">'.$p->t("global/deutsch").'</a><br> </td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>';
|
||||
|
||||
|
||||
if(!isset($_POST['submit']))
|
||||
{
|
||||
{
|
||||
echo ' <form action="registration.php" method="POST" name="RegistrationForm">
|
||||
<table border = "0" style="margin-left:40%; margin-top:5%;">
|
||||
<table border = "0" style="margin: auto; width: 60%; margin-top:5%;">
|
||||
<tr>
|
||||
<td>'.$p->t('global/titel').' Pre</td>
|
||||
<td><input type="text" size="20" maxlength="64" name="titel_pre"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/vorname').'</td>
|
||||
<td>'.$p->t('global/vorname').'*</td>
|
||||
<td><input type="text" size="40" maxlength="32" name="vorname"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/nachname').'</td>
|
||||
<td>'.$p->t('global/nachname').'*</td>
|
||||
<td><input type="text" size="40" maxlength="64" name="nachname"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -90,13 +91,13 @@ echo ' <form action="registration.php" method="POST" name="RegistrationForm">
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/geburtsdatum').'</td>
|
||||
<td><input type="text" size="20" name="geb_datum" value="" onfocus="this.value=""\"; > (dd.mm.yyyy)</td>
|
||||
<td><input type="text" size="20" name="geb_datum" value="" onfocus="this.value=\'\';" > (dd.mm.yyyy)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/staatsbuergerschaft').'</td>
|
||||
|
||||
<td><SELECT name="staatsbuerger">\n
|
||||
<option value="staat_auswahl">-- select --</option>\n';
|
||||
<td>'.$p->t('global/staatsbuergerschaft').'*</td>
|
||||
|
||||
<td><SELECT name="staatsbuerger">
|
||||
<option value="staat_auswahl">-- select --</option>';
|
||||
foreach ($nation->nation as $nat)
|
||||
{
|
||||
if($sprache == 'English')
|
||||
@@ -104,33 +105,36 @@ echo ' <form action="registration.php" method="POST" name="RegistrationForm">
|
||||
else
|
||||
echo '<option value="'.$nat->code.'" >'.$nat->langtext."</option>\n";
|
||||
}
|
||||
|
||||
echo' </tr>
|
||||
|
||||
echo' </select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/geschlecht').'</td>
|
||||
<td> <input type="radio" name="geschlecht" value="m" checked> '.$p->t('global/mann').'
|
||||
<input type="radio" name="geschlecht" value="w"> '.$p->t('global/frau').'
|
||||
<td>
|
||||
<input type="radio" name="geschlecht" value="m" checked> '.$p->t('global/mann').'
|
||||
<input type="radio" name="geschlecht" value="w"> '.$p->t('global/frau').'
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/strasse').'</td>
|
||||
<td><input type="text" size="40" maxlength="256" name="strasse"></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/plz').'</td>
|
||||
<td><input type="text" size="20" maxlength="16" name="plz"></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/ort').'</td>
|
||||
<td><input type="text" size="40" maxlength="256" name="ort"></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('incoming/nation').'</td>
|
||||
<td><SELECT name="nation">\n
|
||||
<option value="nat_auswahl">-- select --</option>\n';
|
||||
<td><SELECT name="nation">
|
||||
<option value="nat_auswahl">-- select --</option>';
|
||||
foreach ($nation->nation as $nat)
|
||||
{
|
||||
if($sprache == 'English')
|
||||
@@ -138,49 +142,63 @@ echo ' <form action="registration.php" method="POST" name="RegistrationForm">
|
||||
else
|
||||
echo '<option value="'.$nat->code.'" >'.$nat->langtext."</option>\n";
|
||||
}
|
||||
|
||||
echo ' </tr>
|
||||
|
||||
echo ' </select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>E-Mail</td>
|
||||
<td>E-Mail*</td>
|
||||
<td><input type="text" size="40" maxlength="128" name="email"></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/anmerkung').'</td>
|
||||
<td><textarea name="anmerkung" cols="31" rows="5"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align = "center"><input type="submit" name="submit" value="Registration" onclick="return checkRegistration()"></td>
|
||||
</tr>
|
||||
<tr><td><input type="hidden" name="zugangscode" value="'.uniqid().'"></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img id="captcha" class="center-block img-responsive" src="'.APP_ROOT.'include/securimage/securimage_show.php" alt="CAPTCHA Image" />
|
||||
<br>
|
||||
<a href="#" onclick="document.getElementById(\'captcha\').src = \''.APP_ROOT.'include/securimage/securimage_show.php?\' + Math.random(); return false;">
|
||||
'.$p->t('incoming/andereGrafik').'
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
'.$p->t('incoming/captcha').'<br>
|
||||
<input type="text" name="captcha_code" maxlength="6" id="captcha" class="form-control">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align = "center"><input type="submit" name="submit" value="Registration" onclick="return checkRegistration()"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
function checkRegistration()
|
||||
{
|
||||
if(document.RegistrationForm.nachname.value == "")
|
||||
{
|
||||
alert("Kein Nachname angegeben.");
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(document.RegistrationForm.staatsbuerger.options[0].selected == true)
|
||||
|
||||
if(document.RegistrationForm.staatsbuerger.options[0].selected == true)
|
||||
{
|
||||
alert("Keine Staatsbürgerschaft ausgewählt.");
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(document.RegistrationForm.nation.options[0].selected == true)
|
||||
|
||||
if(document.RegistrationForm.nation.options[0].selected == true)
|
||||
{
|
||||
alert("Keine Nation ausgewählt.");
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
if(document.RegistrationForm.email.value == "")
|
||||
{
|
||||
alert("Keine E-Mail Adresse angegeben.");
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
</script>';
|
||||
}
|
||||
@@ -188,101 +206,109 @@ echo' </body>
|
||||
</html>';
|
||||
|
||||
if(isset($_REQUEST['submit']))
|
||||
{
|
||||
$person = new person();
|
||||
{
|
||||
$securimage = new Securimage();
|
||||
// Sicherheitscode wurde falsch eingegeben
|
||||
if ($securimage->check($_POST['captcha_code']) == false)
|
||||
{
|
||||
echo '<p class="bg-danger padding-10">'.$p->t('bewerbung/sicherheitscodeFalsch').'</p>';
|
||||
exit;
|
||||
}
|
||||
|
||||
$person = new person();
|
||||
$adresse = new adresse();
|
||||
$kontakt = new kontakt();
|
||||
$preincoming = new preincoming();
|
||||
|
||||
$preincoming = new preincoming();
|
||||
|
||||
$titel_pre = $_REQUEST['titel_pre'];
|
||||
$vorname = $_REQUEST['vorname'];
|
||||
$nachname =$_REQUEST['nachname'];
|
||||
$vorname = $_REQUEST['vorname'];
|
||||
$nachname =$_REQUEST['nachname'];
|
||||
$titel_post = $_REQUEST['titel_post'];
|
||||
$geb_datum = $date->formatDatum($_REQUEST['geb_datum'], 'Y-m-d');
|
||||
$staatsbuerger = $_REQUEST['staatsbuerger'];
|
||||
$geschlecht = $_REQUEST['geschlecht'];
|
||||
$strasse = $_REQUEST['strasse'];
|
||||
$plz = $_REQUEST['plz'];
|
||||
$ort = $_REQUEST['ort'];
|
||||
$nation_code = $_REQUEST['nation'];
|
||||
$email = $_REQUEST['email'];
|
||||
$anmerkung = $_REQUEST['anmerkung'];
|
||||
$zugangscode = uniqid();
|
||||
|
||||
$person->staatsbuergerschaft = $staatsbuerger;
|
||||
$person->titelpost = $titel_post;
|
||||
$person->titelpre = $titel_pre;
|
||||
$person->nachname = $nachname;
|
||||
$person->vorname = $vorname;
|
||||
$person->gebdatum = $geb_datum;
|
||||
$person->geschlecht = $geschlecht;
|
||||
$person->aktiv = true;
|
||||
$person->zugangscode = $zugangscode;
|
||||
$person->new = true;
|
||||
|
||||
$geb_datum = $date->formatDatum($_REQUEST['geb_datum'], 'Y-m-d');
|
||||
$staatsbuerger = $_REQUEST['staatsbuerger'];
|
||||
$geschlecht = $_REQUEST['geschlecht'];
|
||||
$strasse = $_REQUEST['strasse'];
|
||||
$plz = $_REQUEST['plz'];
|
||||
$ort = $_REQUEST['ort'];
|
||||
$nation_code = $_REQUEST['nation'];
|
||||
$email = $_REQUEST['email'];
|
||||
$anmerkung = $_REQUEST['anmerkung'];
|
||||
$zugangscode = substr(md5(openssl_random_pseudo_bytes(20)), 0, 15);
|
||||
|
||||
$person->staatsbuergerschaft = $staatsbuerger;
|
||||
$person->titelpost = $titel_post;
|
||||
$person->titelpre = $titel_pre;
|
||||
$person->nachname = $nachname;
|
||||
$person->vorname = $vorname;
|
||||
$person->gebdatum = $geb_datum;
|
||||
$person->geschlecht = $geschlecht;
|
||||
$person->aktiv = true;
|
||||
$person->zugangscode = $zugangscode;
|
||||
$person->new = true;
|
||||
|
||||
if(!$person->save())
|
||||
die('Fehler beim Anlegen der Person aufgetreten.');
|
||||
|
||||
$adresse->person_id = $person->person_id;
|
||||
$adresse->strasse = $strasse;
|
||||
$adresse->plz = $plz;
|
||||
$adresse->ort = $ort;
|
||||
$adresse->nation = $nation_code;
|
||||
die('Fehler beim Anlegen der Person aufgetreten.');
|
||||
|
||||
$adresse->person_id = $person->person_id;
|
||||
$adresse->strasse = $strasse;
|
||||
$adresse->plz = $plz;
|
||||
$adresse->ort = $ort;
|
||||
$adresse->nation = $nation_code;
|
||||
$adresse->typ = 'h';
|
||||
$adresse->heimatadresse = true;
|
||||
$adresse->zustelladresse = true;
|
||||
$adresse->new = true;
|
||||
$adresse->heimatadresse = true;
|
||||
$adresse->zustelladresse = true;
|
||||
$adresse->new = true;
|
||||
|
||||
if(!$adresse->save())
|
||||
die($p->t('incoming/fehlerAdresse'));
|
||||
die($p->t('incoming/fehlerAdresse'));
|
||||
|
||||
$kontakt->person_id = $person->person_id;
|
||||
$kontakt->kontakttyp = "email";
|
||||
$kontakt->kontakt = $email;
|
||||
$kontakt->new = true;
|
||||
|
||||
$kontakt->person_id = $person->person_id;
|
||||
$kontakt->kontakttyp = "email";
|
||||
$kontakt->kontakt = $email;
|
||||
$kontakt->new = true;
|
||||
|
||||
if(!$kontakt->save())
|
||||
die($p->t('incoming/fehlerKontakt'));
|
||||
|
||||
$preincoming->person_id = $person->person_id;
|
||||
$preincoming->anmerkung = $anmerkung;
|
||||
$preincoming->zweck_code = 1;
|
||||
$preincoming->aktiv = true;
|
||||
$preincoming->bachelorthesis = false;
|
||||
$preincoming->masterthesis = false;
|
||||
$preincoming->uebernommen = false;
|
||||
$preincoming->new = true;
|
||||
$preincoming->person_id = $person->person_id;
|
||||
$preincoming->anmerkung = $anmerkung;
|
||||
$preincoming->zweck_code = 1;
|
||||
$preincoming->aktiv = true;
|
||||
$preincoming->bachelorthesis = false;
|
||||
$preincoming->masterthesis = false;
|
||||
$preincoming->uebernommen = false;
|
||||
$preincoming->new = true;
|
||||
$preincoming->insertamum = date('Y-m-d H:i:s');
|
||||
$preincoming->updateamum = date('Y-m-d H:i:s');
|
||||
|
||||
if(!$preincoming->save())
|
||||
{
|
||||
echo $preincoming->errormsg;
|
||||
die($p->t('incoming/fehlerIncoming'));
|
||||
}
|
||||
echo sendMail($zugangscode, $email);
|
||||
echo $preincoming->errormsg;
|
||||
die($p->t('incoming/fehlerIncoming'));
|
||||
}
|
||||
echo sendMail($zugangscode, $email);
|
||||
}
|
||||
|
||||
function sendMail($zugangscode, $email)
|
||||
{
|
||||
global $p, $vorname, $nachname;
|
||||
|
||||
$emailtext= $p->t('incoming/registrationEmail', array($zugangscode));
|
||||
global $p, $vorname, $nachname;
|
||||
|
||||
$emailtext= $p->t('mail/incomingRegistrationEmail', array($zugangscode));
|
||||
$mail = new mail($email, 'no-reply', 'Incoming-Registration', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.');
|
||||
$mail->setHTMLContent($emailtext);
|
||||
$mail->setHTMLContent($emailtext);
|
||||
if(!$mail->send())
|
||||
$msg= '<span class="error">Fehler beim Senden des Mails</span><br />';
|
||||
else
|
||||
$msg= $p->t('global/emailgesendetan')." $email!<br>";
|
||||
|
||||
// sende Nachricht an Assistenz
|
||||
$emailtext= "Dies ist eine automatisch generierte E-Mail.<br><br>";
|
||||
$emailtext.= "Es hat sich ein neuer Incoming am Campus International registriert.<br><br>Name: ".$vorname.' '.$nachname.'<br>E-Mail: '.$email;
|
||||
$mail = new mail(MAIL_INTERNATIONAL, 'no-reply', 'New Incoming', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.');
|
||||
$mail->setHTMLContent($emailtext);
|
||||
$mail->send();
|
||||
|
||||
return $msg;
|
||||
// sende Nachricht an Assistenz
|
||||
$emailtext= "Dies ist eine automatisch generierte E-Mail.<br><br>";
|
||||
$emailtext.= "Es hat sich ein neuer Incoming registriert.<br><br>Name: ".$vorname.' '.$nachname.'<br>E-Mail: '.$email;
|
||||
$mail = new mail(MAIL_INTERNATIONAL, 'no-reply', 'New Incoming', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.');
|
||||
$mail->setHTMLContent($emailtext);
|
||||
$mail->send();
|
||||
|
||||
return $msg;
|
||||
}
|
||||
|
||||
?>
|
||||
+69
-1
@@ -42,7 +42,75 @@ $rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isBerechtigt('basis/cms'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$berechtigte_oe = $rechte->getOEkurzbz('basis/cms')
|
||||
$berechtigte_oe = $rechte->getOEkurzbz('basis/cms');
|
||||
|
||||
// Speichern eines Contents per Ajax Request ,
|
||||
// daher wird nach dem Speichern mittels exit beendet
|
||||
if(isset($_POST['NewContent']))
|
||||
{
|
||||
if($rechte->isBerechtigt('basis/cms', null, 'sui'))
|
||||
{
|
||||
$templateContentId = isset($_POST['templateContent']) && $_POST['templateContent'] != 0?$_POST['templateContent']:'';
|
||||
$titel = isset($_POST['titel'])?$_POST['titel']:'Neuer Eintrag';
|
||||
|
||||
if ($templateContentId != '')
|
||||
{
|
||||
$templateContent = new content();
|
||||
$templateContent->getContent($templateContentId);
|
||||
}
|
||||
|
||||
$template = new template();
|
||||
$template->getAll();
|
||||
if(!isset($template->result[0]))
|
||||
exit('Es ist kein Template vorhanden');
|
||||
|
||||
if(in_array('etw',$berechtigte_oe))
|
||||
$oe = 'etw';
|
||||
else
|
||||
$oe = $berechtigte_oe[0];
|
||||
|
||||
$content = new content();
|
||||
$content->new = true;
|
||||
$content->oe_kurzbz= $templateContentId != ''?$templateContent->oe_kurzbz:$oe;
|
||||
$content->template_kurzbz=$templateContentId != ''?$templateContent->template_kurzbz:$template->result[0]->template_kurzbz;
|
||||
$content->titel = $titel;
|
||||
$content->aktiv=true;
|
||||
$content->menu_open=false;
|
||||
$content->content = $templateContentId != ''?$templateContent->content:'<?xml version="1.0" encoding="UTF-8" ?><content></content>';
|
||||
$content->sichtbar=true;
|
||||
$content->version='1';
|
||||
$content->sprache=$templateContentId != ''?$templateContent->sprache:DEFAULT_LANGUAGE;
|
||||
$content->insertvon = $user;
|
||||
$content->insertamum = date('Y-m-d H:i:s');
|
||||
$content->beschreibung = $templateContentId != ''?$templateContent->beschreibung:'';
|
||||
|
||||
if($content->save())
|
||||
{
|
||||
if($content->saveContentSprache())
|
||||
{
|
||||
if ($templateContentId!='')
|
||||
{
|
||||
$parent_content = new content();
|
||||
$parent_content->content_id = $templateContentId;
|
||||
$parent_content->child_content_id = $content->content_id;
|
||||
$parent_content->insertamum = date('Y-m-d');
|
||||
$parent_content->insertvon = $user;
|
||||
$parent_content->sort=$parent_content->getMaxSort($templateContentId)+1;
|
||||
|
||||
if(!$parent_content->addChild())
|
||||
exit('AddChild '.$content->errormsg);
|
||||
}
|
||||
exit($content->content_id);
|
||||
}
|
||||
else
|
||||
exit('ContentSpracheSave '.$content->errormsg);
|
||||
}
|
||||
else
|
||||
exit('ContentSave '.$content->errormsg);
|
||||
}
|
||||
else
|
||||
exit('Sie haben keine Berechtigung fuer diese Aktion');
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
|
||||
+46
-8
@@ -23,10 +23,25 @@ require_once('../config/cis.config.inc.php');
|
||||
require_once('../include/dms.class.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/akte.class.php');
|
||||
require_once('../include/dokument.class.php');
|
||||
|
||||
session_cache_limiter('none'); //muss gesetzt werden sonst funktioniert der Download mit IE8 nicht
|
||||
session_start();
|
||||
|
||||
if(!isset($_GET['id']))
|
||||
die('ID muss uebergeben werden');
|
||||
|
||||
if(isset($_SESSION['bewerbung/personId']))
|
||||
$person_id = $_SESSION['bewerbung/personId'];
|
||||
else
|
||||
$person_id ='';
|
||||
|
||||
if(isset($_GET['akte_id']))
|
||||
$akte_id = $_GET['akte_id'];
|
||||
else
|
||||
$akte_id ='';
|
||||
|
||||
//if(!isset($_GET['version']))
|
||||
// die('Version muss uebergeben werden');
|
||||
|
||||
@@ -45,16 +60,39 @@ if(!$doc->load($id,$version))
|
||||
|
||||
if($doc->isLocked($id))
|
||||
{
|
||||
//Dokument erfordert Authentifizierung
|
||||
$user = get_uid();
|
||||
if(!$doc->isBerechtigt($id, $user))
|
||||
{
|
||||
//Globales DMS recht pruefen
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isBerechtigt('basis/dms'))
|
||||
//Wenn person_id aus Session und akte_id uebergeben wurde
|
||||
//und person_id Besitzer des Dokuments ist (person_id aus tbl_akte)
|
||||
//und das Dokument in der Onlinebewerbung hochgeladen werden kann
|
||||
//darf das Dokument heruntergeladen werden
|
||||
if($person_id!='' && $akte_id!='')
|
||||
{
|
||||
$akte = new akte();
|
||||
$akte->load($akte_id);
|
||||
$akte_person = $akte->person_id;
|
||||
$akte_dokument_kurzbz = $akte->dokument_kurzbz;
|
||||
|
||||
$dokumente_person = new dokument();
|
||||
$dokumente_person->getAllDokumenteForPerson($person_id, true);
|
||||
$dokumente_arr = array();
|
||||
foreach ($dokumente_person->result AS $row)
|
||||
$dokumente_arr[] .= $row->dokument_kurzbz;
|
||||
|
||||
if ($person_id!=$akte_person || !in_array($akte_dokument_kurzbz, $dokumente_arr))
|
||||
die('Sie haben keinen Zugriff auf dieses Dokument');
|
||||
}
|
||||
else
|
||||
{
|
||||
//Dokument erfordert Authentifizierung
|
||||
$user = get_uid();
|
||||
if(!$doc->isBerechtigt($id, $user))
|
||||
{
|
||||
//Globales DMS recht pruefen
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isBerechtigt('basis/dms'))
|
||||
die('Sie haben keinen Zugriff auf dieses Dokument');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($_GET['notimeupdate']))
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
*/
|
||||
/**
|
||||
* Menue Addon zur Auswahl von LVs
|
||||
*
|
||||
*
|
||||
* Dieses Addon erstellt ein Formular zur Auswahl von Studiengang und Semester und zeigt die
|
||||
* zugehoerigen LVs an
|
||||
*
|
||||
*
|
||||
* Parameter fuer das Params Array:
|
||||
* - studiengang_kz
|
||||
* - semester
|
||||
@@ -44,9 +44,9 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
global $params;
|
||||
|
||||
parent::__construct();
|
||||
|
||||
|
||||
$this->link=false;
|
||||
|
||||
|
||||
$sprache = getSprache();
|
||||
$user = get_uid();
|
||||
$student = new student();
|
||||
@@ -55,17 +55,17 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
$studiengang_kz=$student->studiengang_kz;
|
||||
$semester=$student->semester;
|
||||
}
|
||||
|
||||
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
|
||||
|
||||
|
||||
$this->block.='
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
function MM_jumpMenu(targ, selObj, restore)
|
||||
{
|
||||
eval(targ + ".location=\'" + selObj.options[selObj.selectedIndex].value + "\'");
|
||||
|
||||
|
||||
if(restore)
|
||||
{
|
||||
selObj.selectedIndex = 0;
|
||||
@@ -86,7 +86,7 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
|
||||
if(isset($params['studiengang_kz']) && is_numeric($params['studiengang_kz']))
|
||||
$studiengang_kz=$params['studiengang_kz'];
|
||||
|
||||
|
||||
if(isset($params['semester']) && is_numeric($params['semester']))
|
||||
$semester=$params['semester'];
|
||||
else
|
||||
@@ -94,7 +94,7 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
if(!isset($semester))
|
||||
$semester=1;
|
||||
}
|
||||
|
||||
|
||||
$sel_kurzbzlang='';
|
||||
foreach($stg_obj->result as $row)
|
||||
{
|
||||
@@ -115,7 +115,7 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->block.='
|
||||
</select>
|
||||
</td>
|
||||
@@ -127,7 +127,7 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
<td class="tdwrap">'.$p->t('global/semester').': </td>
|
||||
<td class="tdwrap">
|
||||
<select name="term" onChange="MM_jumpMenu(\'self\',this,0)">';
|
||||
|
||||
|
||||
$short = 'Fehler Stg.Kz '.$studiengang_kz;
|
||||
$max = 1;
|
||||
if ($stg_obj=new studiengang($studiengang_kz))
|
||||
@@ -137,12 +137,12 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
}
|
||||
if($semester>$max)
|
||||
$semester=1;
|
||||
|
||||
|
||||
$params['studiengang_kz'] = $studiengang_kz;
|
||||
$params['semester'] = $semester;
|
||||
$params['studiengang_kurzbz_lo'] = strtolower($short);
|
||||
$params['studiengang_kurzbz_hi'] = $short;
|
||||
|
||||
|
||||
for($i=0;$i<$max;$i++)
|
||||
{
|
||||
if(($i+1)==$semester)
|
||||
@@ -150,7 +150,7 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
else
|
||||
$this->block.= '<option value="?content_id='.$_GET['content_id'].'&studiengang_kz='.$studiengang_kz.'&semester='.($i+1).'">'.($i+1).'. Semester</option>';
|
||||
}
|
||||
|
||||
|
||||
$this->block.='
|
||||
</select>
|
||||
</td>
|
||||
@@ -165,24 +165,68 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
<td class="tdwrap"> </td>
|
||||
</tr>';
|
||||
|
||||
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
$lv_obj->lehrveranstaltungen=array();
|
||||
if ($lv_obj->load_lva($studiengang_kz,$semester,null,TRUE,TRUE,'orgform_kurzbz DESC, bezeichnung'))
|
||||
{
|
||||
$db = new basis_db();
|
||||
$qry = "SELECT * FROM lehre.tbl_studienordnung WHERE studiengang_kz=".$this->db_add_param($studiengang_kz)." AND status_kurzbz='approved'";
|
||||
$genehmigte_sto_vorhanden=false;
|
||||
if($result_sto = $db->db_query($qry))
|
||||
{
|
||||
if($db->db_num_rows($result_sto)>0)
|
||||
{
|
||||
$genehmigte_sto_vorhanden=true;
|
||||
}
|
||||
}
|
||||
|
||||
$lastform=null;
|
||||
foreach ($lv_obj->lehrveranstaltungen as $row)
|
||||
{
|
||||
{
|
||||
// Alle LVs herausfiltern die nicht in genehmigten Studienplaenen vorkommen
|
||||
// Module werden auch herausgefiltert
|
||||
if($genehmigte_sto_vorhanden)
|
||||
{
|
||||
$qry = "SELECT
|
||||
count(*) as anzahl
|
||||
FROM
|
||||
lehre.tbl_studienplan_lehrveranstaltung
|
||||
JOIN lehre.tbl_studienplan USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehrtyp USING(lehrtyp_kurzbz)
|
||||
WHERE
|
||||
tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id)."
|
||||
AND tbl_studienordnung.status_kurzbz='approved'
|
||||
AND lehrtyp_kurzbz='lv'";
|
||||
if($result_genehmigt = $db->db_query($qry))
|
||||
{
|
||||
if($row_genehmigt = $db->db_fetch_object($result_genehmigt))
|
||||
{
|
||||
if($row_genehmigt->anzahl==0)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Wenn es in diesem Studiengang keine genehmigte Studienordnung gibt dann
|
||||
// alle LVs anzeigen und nur die Module herausfiltern
|
||||
if($row->lehrtyp_kurzbz!='lv')
|
||||
continue;
|
||||
}
|
||||
|
||||
if($row->orgform_kurzbz!=$lastform)
|
||||
{
|
||||
$orgform = new organisationsform();
|
||||
$orgform->load($row->orgform_kurzbz);
|
||||
|
||||
$this->block.= "<tr><td><b>$orgform->bezeichnung</b></td></tr>";
|
||||
|
||||
$lastform=$row->orgform_kurzbz;
|
||||
|
||||
$this->block.= "<tr><td><b>$orgform->bezeichnung</b></td></tr>";
|
||||
|
||||
$lastform=$row->orgform_kurzbz;
|
||||
}
|
||||
$this->block.= '<tr>';
|
||||
$this->block.= ' <td class="tdwrap"><ul style="margin: 0px; padding: 0px; ">';
|
||||
@@ -194,7 +238,7 @@ class menu_addon_lehrveranstaltungen extends menu_addon
|
||||
$this->block.='</table>';
|
||||
$this->output();
|
||||
}
|
||||
|
||||
|
||||
private function CutString($strVal, $limit)
|
||||
{
|
||||
if(mb_strlen($strVal) > $limit+3)
|
||||
|
||||
@@ -31,15 +31,15 @@ class menu_addon_zeitsperren extends menu_addon
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
$sprache = getSprache();
|
||||
$user = get_uid();
|
||||
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
|
||||
$fkt=new funktion();
|
||||
$fkt->getAll($user);
|
||||
|
||||
@@ -50,7 +50,8 @@ class menu_addon_zeitsperren extends menu_addon
|
||||
'link' => 'private/profile/zeitsperre_days.php?days=12',
|
||||
'name' => $p->t('menu/zeitsperren')
|
||||
);
|
||||
|
||||
|
||||
/*
|
||||
if ($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('mitarbeiter'))
|
||||
{
|
||||
$this->items[] = array('title' => $p->t('menu/resturlaub'),
|
||||
@@ -59,8 +60,9 @@ class menu_addon_zeitsperren extends menu_addon
|
||||
'name' => $p->t('menu/resturlaub')
|
||||
);
|
||||
}
|
||||
|
||||
if ($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('mitarbeiter')
|
||||
*/
|
||||
|
||||
if ($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('mitarbeiter')
|
||||
|| $fkt->checkFunktion('stvLtg')|| $fkt->checkFunktion('gLtg')
|
||||
|| $fkt->checkFunktion('Leitung') || $fkt->checkFunktion('ass'))
|
||||
{
|
||||
@@ -85,7 +87,7 @@ class menu_addon_zeitsperren extends menu_addon
|
||||
'name' => $p->t('menu/assistenz')
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->loadArray($rechte->getStgKz('admin'), 'typ, kurzbz', true);
|
||||
foreach($stg_obj->result as $row)
|
||||
@@ -95,11 +97,11 @@ class menu_addon_zeitsperren extends menu_addon
|
||||
'link' => 'private/profile/zeitsperre.php?funktion=lkt&stg_kz='.$row->studiengang_kz,
|
||||
'name' => $p->t('menu/lektoren').' '.$row->kurzbzlang
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->output();
|
||||
}
|
||||
}
|
||||
|
||||
new menu_addon_zeitsperren();
|
||||
?>
|
||||
?>
|
||||
|
||||
+41
-30
@@ -270,7 +270,7 @@ if($importFile != '')
|
||||
|
||||
if($dms->save(true))
|
||||
{
|
||||
echo 'File wurde erfolgreich hochgeladen. Filename:'.$filename.' ID:'.$dms->dms_id;
|
||||
echo 'File wurde erfolgreich hochgeladen. <br>Filename:'.$filename.' <br>ID: <a href="id://'.$dms->dms_id.'/Auswahl" onclick="FileBrowserDialog.mySubmit('.$dms->dms_id.'); return false;" style="font-size: small">'.$dms->dms_id.'</a>';
|
||||
$dms_id=$dms->dms_id;
|
||||
|
||||
if($projekt_kurzbz!='' || $projektphase_id!='')
|
||||
@@ -282,10 +282,10 @@ if($importFile != '')
|
||||
else
|
||||
echo 'Fehler beim Speichern der Daten';
|
||||
|
||||
if(!chgrp(DMS_PATH.$filename,'dms'))
|
||||
echo 'CHGRP failed';
|
||||
if(!chmod(DMS_PATH.$filename, 0774))
|
||||
echo 'CHMOD failed';
|
||||
if(!@chgrp(DMS_PATH.$filename,'dms'))
|
||||
echo '<br>CHGRP failed';
|
||||
if(!@chmod(DMS_PATH.$filename, 0774))
|
||||
echo '<br>CHMOD failed';
|
||||
exec('sudo chown wwwrun '.$filename);
|
||||
|
||||
// Lösche File aus Verzeichnis nachdem es raufgeladen wurde
|
||||
@@ -308,10 +308,10 @@ if(isset($_POST['fileupload']))
|
||||
|
||||
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
|
||||
{
|
||||
if(!chgrp($uploadfile,'dms'))
|
||||
echo 'CHGRP failed<br>';
|
||||
if(!chmod($uploadfile, 0774))
|
||||
echo 'CHMOD failed<br>';
|
||||
if(!@chgrp($uploadfile,'dms'))
|
||||
echo '<br>CHGRP failed';
|
||||
if(!@chmod($uploadfile, 0774))
|
||||
echo '<br>CHMOD failed';
|
||||
exec('sudo chown wwwrun '.$uploadfile);
|
||||
|
||||
$dms = new dms();
|
||||
@@ -831,32 +831,43 @@ function drawFilesFromImport()
|
||||
|
||||
if ($handle = opendir(IMPORT_PATH))
|
||||
{
|
||||
echo '<script>
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t3").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]], headers: {1:{sorter:false}},
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
echo ' <h3>Files im Import Ordner</h3>
|
||||
<table> <form action ="'.$_SERVER['PHP_SELF'].'" method="POST" name="import" >';
|
||||
<table class="tablesorter" id="t3" style="width: auto"> <form action ="'.$_SERVER['PHP_SELF'].'" method="POST" name="import" >
|
||||
<thead><th>File</th><th></th></thead><tbody>';
|
||||
|
||||
while (false !== ($file = readdir($handle)))
|
||||
{
|
||||
if($file != '.' && $file != '..')
|
||||
{
|
||||
echo'
|
||||
<tr>
|
||||
<td><img src="../skin/images/blank.png" style="height: 15px">
|
||||
<span> '.$file.'</span>
|
||||
</td>
|
||||
<td>
|
||||
| <a onclick="document.import.importFile.value=\''.$file.'\';document.import.submit();" style="font-size:small">Upload</a>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
echo'
|
||||
<input type="hidden" name="dms_id_import" id="dms_id_import" value="">
|
||||
while (false !== ($file = readdir($handle)))
|
||||
{
|
||||
if($file != '.' && $file != '..')
|
||||
{
|
||||
echo'
|
||||
<tr>
|
||||
<td>
|
||||
<span> '.$file.'</span>
|
||||
</td>
|
||||
<td>
|
||||
<a onclick="window.location=\'#divupload\'; document.import.importFile.value=\''.$file.'\';document.import.submit();" style="font-size:small">Upload</a>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
echo'
|
||||
<input type="hidden" name="dms_id_import" id="dms_id_import" value="">
|
||||
<input type="hidden" name="importFile" value="">
|
||||
<input type="hidden" name="kategorie_kurzbz" id="kategorie_kurzbz" value="'.$kategorie_kurzbz.'">
|
||||
<input type="hidden" name="projekt_kurzbz" value="'.$projekt_kurzbz.'">
|
||||
<input type="hidden" name="projektphase_id" value="'.$projektphase_id.'">
|
||||
</form></table>';
|
||||
closedir($handle);
|
||||
</form></tbody></table>';
|
||||
closedir($handle);
|
||||
}
|
||||
}
|
||||
/**
|
||||
@@ -1018,7 +1029,7 @@ function drawFilesList($rows)
|
||||
<li><a href="dms.php?id='.$row->dms_id.'&version='.$row->version.'" style="font-size:small" target="_blank">Herunterladen</a></li>';
|
||||
if($rechte->isberechtigt('basis/dms',null, 'sui', null))
|
||||
{
|
||||
echo ' <li><a href="id://'.$row->dms_id.'/Upload" onclick=" updateBeschreibung(\'';
|
||||
echo ' <li><a href="id://'.$row->dms_id.'/Upload" onclick="window.location=\'#divupload\'; updateBeschreibung(\'';
|
||||
$beschreibungstext = $row->beschreibung;
|
||||
$beschreibungstext = str_replace("'","4nführungsze1ch3n",$beschreibungstext);
|
||||
$beschreibungstext = str_replace('"',"D4n7ührung",$beschreibungstext);
|
||||
|
||||
Regular → Executable
+2
-2
@@ -50,6 +50,7 @@
|
||||
"components/angular.js": "1.3.16",
|
||||
"components/bootstrap": "3.3.5",
|
||||
"michelf/php-markdown": "1.5.0",
|
||||
"fzaninotto/faker": "1.*",
|
||||
"zetacomponents/workflow": "1.*",
|
||||
"zetacomponents/document": "1.*",
|
||||
"zetacomponents/workflow-database-tiein": "1.*",
|
||||
@@ -57,8 +58,7 @@
|
||||
},
|
||||
"require-dev":
|
||||
{
|
||||
"squizlabs/php_codesniffer": "2.*",
|
||||
"fzaninotto/faker": "1.*"
|
||||
"squizlabs/php_codesniffer": "2.*"
|
||||
},
|
||||
"config":
|
||||
{
|
||||
|
||||
Generated
-3544
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@
|
||||
define("DB_SYSTEM","pgsql");
|
||||
define("DB_HOST","localhost");
|
||||
define("DB_PORT","5432");
|
||||
define("DB_NAME","fhcomplete");
|
||||
define("DB_NAME","fhctest");
|
||||
define("DB_USER","fhcomplete");
|
||||
define("DB_PASSWORD","fhcomplete");
|
||||
define("DB_CONNECT_PERSISTENT",FALSE);
|
||||
|
||||
@@ -25,6 +25,10 @@ define("DB_USER","vilesci");
|
||||
define("DB_PASSWORD","vilesci");
|
||||
define("DB_CONNECT_PERSISTENT",TRUE);
|
||||
define('CONN_CLIENT_ENCODING','UTF-8' );
|
||||
|
||||
//Connection String Infoscreen
|
||||
define("INFOSCREEN_USER","");
|
||||
define("INFOSCREEN_PASSWORD","");
|
||||
|
||||
// Name des Servers (benoetigt fuer Cronjobs
|
||||
define('SERVER_NAME','localhost');
|
||||
|
||||
+960
-953
File diff suppressed because it is too large
Load Diff
@@ -1300,6 +1300,27 @@ function ExtrasShowProjektarbeitsabgaben()
|
||||
window.open('<?php echo APP_ROOT ?>vilesci/lehre/abgabe_assistenz_frameset.php?stg_kz='+studiengang_kz,'Projektarbeitsabgaben','');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Zeigt HTML Seite für die Aliquote Reduktion
|
||||
// ****
|
||||
function ExtrasShowAliquote_reduktion()
|
||||
{
|
||||
tree = document.getElementById('tree-verband');
|
||||
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert('Bitte zuerst einen Studiengang auswaehlen');
|
||||
return;
|
||||
}
|
||||
|
||||
//Studiengang holen
|
||||
var col;
|
||||
col = tree.columns ? tree.columns["stg_kz"] : "stg_kz";
|
||||
var studiengang_kz=tree.view.getCellText(tree.currentIndex,col);
|
||||
var studiensemester_kurzbz = getStudiensemester();
|
||||
window.open('<?php echo APP_ROOT ?>vilesci/personen/aliquote_reduktion.php?studiengang_kz='+studiengang_kz+'&studiensemester_kurzbz='+studiensemester_kurzbz,'Aliquote Reduktion','');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Zeigt HTML Seite zur Bearbeitung der Gruppen an
|
||||
// ****
|
||||
@@ -1745,10 +1766,21 @@ function PrintZutrittskarte()
|
||||
function PrintStudienblatt(event)
|
||||
{
|
||||
var tree = document.getElementById('student-prestudent-tree-rolle');
|
||||
var ss = document.getElementById('statusbarpanel-semester').label;
|
||||
|
||||
var items = tree.view.rowCount;
|
||||
|
||||
try
|
||||
{
|
||||
var studienplan_id = getTreeCellText(tree, "student-prestudent-tree-rolle-studienplan_id", 0);
|
||||
var studienplan_id = "";
|
||||
for (var v=0; v < items; v++)
|
||||
{
|
||||
var stsem = getTreeCellText(tree, 'student-prestudent-tree-rolle-studiensemester_kurzbz', v);
|
||||
if(stsem == ss)
|
||||
{
|
||||
studienplan_id = getTreeCellText(tree, 'student-prestudent-tree-rolle-studienplan_id', v);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
@@ -1817,7 +1849,7 @@ function PrintStudienblatt(event)
|
||||
{
|
||||
if(error>0)
|
||||
alert(error+' der ausgewaehlten Personen haben keinen Account');
|
||||
action = '<?php echo APP_ROOT; ?>content/pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&output='+output+'&&uid='+data;
|
||||
action = '<?php echo APP_ROOT; ?>content/pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&output='+output+'&&uid='+data+"&ss="+ss;
|
||||
window.open(action,'Studienblatt','height=520,width=500,left=350,top=350,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
|
||||
}
|
||||
else
|
||||
@@ -1832,10 +1864,19 @@ function PrintStudienblatt(event)
|
||||
function PrintStudienblattEnglisch(event)
|
||||
{
|
||||
var tree = document.getElementById('student-prestudent-tree-rolle');
|
||||
var items = tree.view.rowCount;
|
||||
|
||||
try
|
||||
{
|
||||
var studienplan_id = getTreeCellText(tree, "student-prestudent-tree-rolle-studienplan_id", 0);
|
||||
var studienplan_id = "";
|
||||
for (var v=0; v < items; v++)
|
||||
{
|
||||
var stsem = getTreeCellText(tree, 'student-prestudent-tree-rolle-studiensemester_kurzbz', v);
|
||||
if(stsem == ss)
|
||||
{
|
||||
studienplan_id = getTreeCellText(tree, 'student-prestudent-tree-rolle-studienplan_id', v);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
|
||||
@@ -53,137 +53,137 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
style="margin:4px;"
|
||||
>
|
||||
<columns >
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="UID" control="mitarbeiter-detail-textbox-uid"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-uid" disabled="true" maxlength="32" size="16" oninput="MitarbeiterDetailValueChange()"/></hbox>
|
||||
<spacer />
|
||||
<spacer />
|
||||
<label value="Aktiv" control="mitarbeiter-detail-checkbox-aktiv"/>
|
||||
<checkbox id="mitarbeiter-detail-checkbox-aktiv" checked="true" disabled="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anrede" control="mitarbeiter-detail-textbox-anrede"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-anrede" disabled="true" maxlength="16" size="16" oninput="MitarbeiterDetailValueChange()"/></hbox>
|
||||
<label value="TitelPre" control="mitarbeiter-detail-textbox-titelpre"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-titelpre" disabled="true" maxlength="64" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="TitelPost" control="mitarbeiter-detail-textbox-titelpost"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-titelpost" disabled="true" maxlength="32" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Nachname" control="mitarbeiter-detail-textbox-nachname"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-nachname" disabled="true" maxlength="64" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="Vorname" control="mitarbeiter-detail-textbox-vorname"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-vorname" disabled="true" maxlength="32" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="Vornamen" control="mitarbeiter-detail-textbox-vornamen"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-vornamen" disabled="true" maxlength="128" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?>>
|
||||
<label value="Geburtsdatum" control="mitarbeiter-detail-textbox-geburtsdatum" />
|
||||
<hbox>
|
||||
<box class="Datum" id="mitarbeiter-detail-textbox-geburtsdatum" disabled="true" oninput="MitarbeiterDetailValueChange()" />
|
||||
</hbox>
|
||||
<label value="Geburtsort" control="mitarbeiter-detail-textbox-geburtsort"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-geburtsort" disabled="true" maxlength="128" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="Geburtszeit" control="mitarbeiter-detail-textbox-geburtszeit" hidden="true"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-geburtszeit" disabled="true" maxlength="5" size="5" tooltiptext="Format: hh:mm Beispiel: 10:30" oninput="MitarbeiterDetailValueChange()" hidden="true"/></hbox>
|
||||
</row>
|
||||
<row <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?>>
|
||||
<label value="SVNR" control="mitarbeiter-detail-textbox-svnr"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-svnr" disabled="true" maxlength="16" size="10" oninput="MitarbeiterGenerateGebDatFromSVNR(); MitarbeiterDetailValueChange()"/></hbox>
|
||||
<label value="Ersatzkennzeichen" control="mitarbeiter-detail-textbox-ersatzkennzeichen"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-ersatzkennzeichen" disabled="true" maxlength="10" size="10" oninput="MitarbeiterDetailValueChange()"/></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="UID" control="mitarbeiter-detail-textbox-uid"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-uid" disabled="true" maxlength="32" size="16" oninput="MitarbeiterDetailValueChange()"/></hbox>
|
||||
<spacer />
|
||||
<spacer />
|
||||
<label value="Aktiv" control="mitarbeiter-detail-checkbox-aktiv"/>
|
||||
<checkbox id="mitarbeiter-detail-checkbox-aktiv" checked="true" disabled="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anrede" control="mitarbeiter-detail-textbox-anrede"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-anrede" disabled="true" maxlength="16" size="16" oninput="MitarbeiterDetailValueChange()"/></hbox>
|
||||
<label value="TitelPre" control="mitarbeiter-detail-textbox-titelpre"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-titelpre" disabled="true" maxlength="64" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="TitelPost" control="mitarbeiter-detail-textbox-titelpost"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-titelpost" disabled="true" maxlength="32" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Nachname" control="mitarbeiter-detail-textbox-nachname"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-nachname" disabled="true" maxlength="64" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="Vorname" control="mitarbeiter-detail-textbox-vorname"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-vorname" disabled="true" maxlength="32" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="Vornamen" control="mitarbeiter-detail-textbox-vornamen"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-vornamen" disabled="true" maxlength="128" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?>>
|
||||
<label value="Geburtsdatum" control="mitarbeiter-detail-textbox-geburtsdatum" />
|
||||
<hbox>
|
||||
<box class="Datum" id="mitarbeiter-detail-textbox-geburtsdatum" disabled="true" oninput="MitarbeiterDetailValueChange()" />
|
||||
</hbox>
|
||||
<label value="Geburtsort" control="mitarbeiter-detail-textbox-geburtsort"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-geburtsort" disabled="true" maxlength="128" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="Geburtszeit" control="mitarbeiter-detail-textbox-geburtszeit" hidden="true"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-geburtszeit" disabled="true" maxlength="5" size="5" tooltiptext="Format: hh:mm Beispiel: 10:30" oninput="MitarbeiterDetailValueChange()" hidden="true"/></hbox>
|
||||
</row>
|
||||
<row <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?>>
|
||||
<label value="SVNR" control="mitarbeiter-detail-textbox-svnr"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-svnr" disabled="true" maxlength="16" size="10" oninput="MitarbeiterDetailValueChange()"/></hbox><!-- oninput="MitarbeiterGenerateGebDatFromSVNR(); fuer automatisches eintragen der SVNR anhand des Geburtsdatums -->
|
||||
<label value="Ersatzkennzeichen" control="mitarbeiter-detail-textbox-ersatzkennzeichen"/>
|
||||
<hbox><textbox id="mitarbeiter-detail-textbox-ersatzkennzeichen" disabled="true" maxlength="10" size="10" oninput="MitarbeiterDetailValueChange()"/></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Staatsbuergerschaft" control="mitarbeiter-detail-menulist-staatsbuergerschaft" <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?>/>
|
||||
<menulist id="mitarbeiter-detail-menulist-staatsbuergerschaft" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste" oncommand="MitarbeiterDetailValueChange()"
|
||||
<?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> >
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste" oncommand="MitarbeiterDetailValueChange()"
|
||||
<?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Geburtsnation" control="mitarbeiter-detail-menulist-geburtsnation" <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> />
|
||||
<menulist id="mitarbeiter-detail-menulist-geburtsnation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste" oncommand="MitarbeiterDetailValueChange()"
|
||||
<?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> >
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste" oncommand="MitarbeiterDetailValueChange()"
|
||||
<?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Sprache" control="mitarbeiter-detail-menulist-sprache" />
|
||||
<menulist id="mitarbeiter-detail-menulist-sprache" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/sprache.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/sprachen/liste" oncommand="MitarbeiterDetailValueChange()">
|
||||
datasources="<?php echo APP_ROOT ?>rdf/sprache.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/sprachen/liste" oncommand="MitarbeiterDetailValueChange()">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/sprachen/rdf#bezeichnung"
|
||||
label="rdf:http://www.technikum-wien.at/sprachen/rdf#anzeigename"
|
||||
uri="rdf:*"/>
|
||||
label="rdf:http://www.technikum-wien.at/sprachen/rdf#anzeigename"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Geschlecht" control="mitarbeiter-detail-menulist-geschlecht"/>
|
||||
<menulist id="mitarbeiter-detail-menulist-geschlecht" disabled="true" oncommand="MitarbeiterDetailValueChange()">
|
||||
<row>
|
||||
<label value="Geschlecht" control="mitarbeiter-detail-menulist-geschlecht"/>
|
||||
<menulist id="mitarbeiter-detail-menulist-geschlecht" disabled="true" oncommand="MitarbeiterDetailValueChange()">
|
||||
<menupopup>
|
||||
<menuitem value="m" label="maennlich"/>
|
||||
<menuitem value="w" label="weiblich"/>
|
||||
<menuitem value="u" label="unbekannt"/>
|
||||
</menupopup>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
<label value="Familienstand" control="mitarbeiter-detail-menulist-familienstand" <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> />
|
||||
<menulist id="mitarbeiter-detail-menulist-familienstand" disabled="true" oncommand="MitarbeiterDetailValueChange()" <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> >
|
||||
<menulist id="mitarbeiter-detail-menulist-familienstand" disabled="true" oncommand="MitarbeiterDetailValueChange()" <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> >
|
||||
<menupopup>
|
||||
<menuitem value="" label="--keine Auswahl--"/>
|
||||
<menuitem value="g" label="geschieden"/>
|
||||
<menuitem value="l" label="ledig"/>
|
||||
<menuitem value="v" label="verheiratet"/>
|
||||
<menuitem value="w" label="verwitwet"/>
|
||||
</menupopup>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
<label value="Anzahl der Kinder" control="mitarbeiter-detail-textbox-anzahlderkinder" hidden="true"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-anzahlderkinder" disabled="true" maxlength="2" oninput="MitarbeiterDetailValueChange()" hidden="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<vbox>
|
||||
<label value="Foto" />
|
||||
<hbox>
|
||||
<button id="mitarbeiter-detail-button-image-upload" label="Upload" oncommand="MitarbeiterImageUpload();" disabled="true"/>
|
||||
<button id="mitarbeiter-detail-button-image-delete" label="Delete" oncommand="MitarbeiterImageDelete();" disabled="true"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
<button id="mitarbeiter-detail-button-image-infomail" label="Infomail" oncommand="MitarbeiterImageInfomail();" disabled="true"/>
|
||||
</vbox>
|
||||
<hbox>
|
||||
<image src='' id="mitarbeiter-detail-image" style="margin-left:5px; width:90px; height:120px"/> <!-- width="60" height="60" -->
|
||||
<spacer flex="1"/>
|
||||
</hbox>
|
||||
<label value="Anmerkung" control="mitarbeiter-detail-textbox-anmerkung"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-anmerkung" disabled="true" multiline="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="Homepage" control="mitarbeiter-detail-textbox-homepage"/>
|
||||
<vbox><textbox id="mitarbeiter-detail-textbox-homepage" disabled="true" maxlength="256" oninput="MitarbeiterDetailValueChange()"/></vbox>
|
||||
</row>
|
||||
<textbox id="mitarbeiter-detail-textbox-anzahlderkinder" disabled="true" maxlength="2" oninput="MitarbeiterDetailValueChange()" hidden="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<vbox>
|
||||
<label value="Foto" />
|
||||
<hbox>
|
||||
<button id="mitarbeiter-detail-button-image-upload" label="Upload" oncommand="MitarbeiterImageUpload();" disabled="true"/>
|
||||
<button id="mitarbeiter-detail-button-image-delete" label="Delete" oncommand="MitarbeiterImageDelete();" disabled="true"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
<button id="mitarbeiter-detail-button-image-infomail" label="Infomail" oncommand="MitarbeiterImageInfomail();" disabled="true"/>
|
||||
</vbox>
|
||||
<hbox>
|
||||
<image src='' id="mitarbeiter-detail-image" style="margin-left:5px; width:90px; height:120px"/> <!-- width="60" height="60" -->
|
||||
<spacer flex="1"/>
|
||||
</hbox>
|
||||
<label value="Anmerkung" control="mitarbeiter-detail-textbox-anmerkung"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-anmerkung" disabled="true" multiline="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label value="Homepage" control="mitarbeiter-detail-textbox-homepage"/>
|
||||
<vbox><textbox id="mitarbeiter-detail-textbox-homepage" disabled="true" maxlength="256" oninput="MitarbeiterDetailValueChange()"/></vbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</grid>
|
||||
|
||||
</groupbox>
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,281 +1,282 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
header("Cache-Control: no-cache");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiterdetailoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiterfunktionoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiterbuchungoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragoverlay.xul.php"?>';
|
||||
?>
|
||||
<!DOCTYPE overlay >
|
||||
|
||||
<overlay id="MitarbeiterOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiter/mitarbeiteroverlay.js.php" />
|
||||
|
||||
<!-- **************** -->
|
||||
<!-- * MITARBEITER * -->
|
||||
<!-- **************** -->
|
||||
<vbox id="MitarbeiterEditor" persist="height" flex="1">
|
||||
<popupset>
|
||||
<menupopup id="mitarbeiter-tree-popup">
|
||||
<menuitem label="EMail senden (intern)" oncommand="MitarbeiterSendMail();" id="mitarbeiter-tree-popup-mail" hidden="false"/>
|
||||
<menuitem label="EMail senden (privat)" oncommand="MitarbeiterSendMailPrivat();" id="mitarbeiter-tree-popup-mail" hidden="false"/>
|
||||
<menuitem label="Personendetails anzeigen" oncommand="MitarbeiterShowPersonendetails()" id="mitarbeiter-tree-popup-personendetails" hidden="false"/>
|
||||
</menupopup>
|
||||
</popupset>
|
||||
<hbox>
|
||||
<toolbox flex="1">
|
||||
<toolbar id="mitarbeiter-nav-toolbar">
|
||||
<toolbarbutton id="mitarbeiter-toolbar-neu" label="Neu" oncommand="MitarbeiterNeu()" disabled="false" image="../skin/images/NeuDokument.png" tooltiptext="Neuen Mitarbeiter anlegen"/>
|
||||
<toolbarbutton id="mitarbeiter-toolbar-export" label="Export" oncommand="MitarbeiterExport()" disabled="false" image="../skin/images/ExcelIcon.png" tooltiptext="Daten ins Excel Exportieren"/>
|
||||
<toolbarbutton id="mitarbeiter-toolbar-refresh" label="Aktualisieren" oncommand="MitarbeiterTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
|
||||
<textbox id="mitarbeiter-toolbar-textbox-suche" control="mitarbeiter-toolbar-button-search" onkeypress="MitarbeiterSearchFieldKeyPress(event)" />
|
||||
<button id="mitarbeiter-toolbar-button-search" oncommand="MitarbeiterSuche()" label="Suchen"/>
|
||||
<spacer flex="1"/>
|
||||
<label id="mitarbeiter-toolbar-label-anzahl"/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
</hbox>
|
||||
<box style="height: 100px;">
|
||||
<!-- ************ -->
|
||||
<!-- * TREE * -->
|
||||
<!-- ************ -->
|
||||
<tree id="mitarbeiter-tree" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/mitarbeiter/alle"
|
||||
onselect="MitarbeiterAuswahl();"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
persist="hidden, height"
|
||||
context="mitarbeiter-tree-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="mitarbeiter-treecol-uid" label="UID" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-anrede" label="Anrede" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-titelpre" label="TitelPre" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-nachname" label="Nachname" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sortActive="true"
|
||||
sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-vorname" label="Vorname" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-vornamen" label="Vornamen" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-titelpost" label="TitelPost" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('mitarbeiter/persoenlich'))
|
||||
echo '
|
||||
<treecol id="mitarbeiter-treecol-geburtsdatum" label="Geburtsdatum" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-geburtsdatum_iso" label="GeburtsdatumISO" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-svnr" label="SVNR" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#svnr" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-ersatzkennzeichen" label="Ersatzkennzeichen" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ersatzkennzeichen" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>';
|
||||
?>
|
||||
<treecol id="mitarbeiter-treecol-aktiv" label="Aktiv" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-personalnummer" label="PNr" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#personalnummer" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-kurzbz" label="Kurzbz" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-lektor" label="Lektor" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#lektor" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-fixangestellt" label="Fix" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-telefonklappe" label="Klappe" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#telefonklappe" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-ort_kurzbz" label="Buero" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ort_kurzbz" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-person_id" label="Person_id" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-insertamum" label="Angelegt am" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-insertvon" label="Angelegt von" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertvon" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-insertamum_iso" label="Angelegt am (ISO)" flex="1" persist="hidden, width, ordinal" hidden="true" ignoreincolumnpicker="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-updateamum" label="Geaendert am" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-updatevon" label="Geaendert von" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updatevon" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-updateamum_iso" label="Geaendert am (ISO)" flex="1" persist="hidden, width, ordinal" hidden="true" ignoreincolumnpicker="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
|
||||
<?php
|
||||
if($rechte->isBerechtigt('mitarbeiter/persoenlich'))
|
||||
echo '
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#svnr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ersatzkennzeichen" />';
|
||||
?>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#personalnummer" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#lektor" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#telefonklappe" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ort_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertvon" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum_iso" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updatevon" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum_iso" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</box>
|
||||
<splitter collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<!-- ************ -->
|
||||
<!-- * TABS * -->
|
||||
<!-- ************ -->
|
||||
<vbox persist="height" flex="1">
|
||||
<tabbox id="mitarbeiter-tabbox" orient="vertical" flex="1">
|
||||
<tabs orient="horizontal" id="mitarbeiter-tabs">
|
||||
<tab id="mitarbeiter-tab-detail" label="Stammdaten" />
|
||||
<tab id="mitarbeiter-tab-kontakt" label="Kontaktdaten" />
|
||||
<tab id="mitarbeiter-tab-bis" label="BIS-Daten" />
|
||||
<tab id="mitarbeiter-tab-betriebsmittel" label="Betriebsmittel" />
|
||||
<tab id="mitarbeiter-tab-funktionen" label="Funktionen" oncommand="MitarbeiterFunktionIFrameLoad()"/>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('buchung/mitarbeiter'))
|
||||
echo '<tab id="mitarbeiter-tab-buchung" label="Buchungen" />';
|
||||
if($rechte->isBerechtigt('vertrag/mitarbeiter'))
|
||||
echo '<tab id="mitarbeiter-tab-vertrag" label="Verträge" />';
|
||||
|
||||
?>
|
||||
<tab id="mitarbeiter-tab-termine" label="Termine" onclick="MitarbeiterTermineIFrameLoad()" />
|
||||
</tabs>
|
||||
<tabpanels id="mitarbeiter-tabpanels-main" flex="1">
|
||||
<vbox id="mitarbeiter-detail-stammdaten" style="margin-top:10px;" />
|
||||
<iframe id="mitarbeiter-kontakt" src="" style="margin-top:10px;" />
|
||||
<vbox id="mitarbeiter-detail-funktionen" style="margin-top:10px;" />
|
||||
<iframe id="mitarbeiter-betriebsmittel" src="" style="margin-top:10px;" />
|
||||
<iframe id="mitarbeiter-funktionen" src="" style="margin-top:10px;"/>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('buchung/mitarbeiter'))
|
||||
echo '<vbox id="mitarbeiter-buchung" style="margin-top:10px;" />';
|
||||
if($rechte->isBerechtigt('vertrag/mitarbeiter'))
|
||||
echo '<vbox id="mitarbeiter-vertrag" style="margin-top:10px;" />';
|
||||
?>
|
||||
<iframe id="mitarbeiter-termine" src="" style="margin-top:10px;" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
<?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> and
|
||||
* Andreas moik <moik@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
header("Cache-Control: no-cache");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiterdetailoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiterfunktionoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiterbuchungoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragoverlay.xul.php"?>';
|
||||
?>
|
||||
<!DOCTYPE overlay >
|
||||
|
||||
<overlay id="MitarbeiterOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiter/mitarbeiteroverlay.js.php" />
|
||||
|
||||
<!-- **************** -->
|
||||
<!-- * MITARBEITER * -->
|
||||
<!-- **************** -->
|
||||
<vbox id="MitarbeiterEditor" persist="height" flex="1">
|
||||
<popupset>
|
||||
<menupopup id="mitarbeiter-tree-popup">
|
||||
<menuitem label="EMail senden (intern)" oncommand="MitarbeiterSendMail();" id="mitarbeiter-tree-popup-mail" hidden="false"/>
|
||||
<menuitem label="EMail senden (privat)" oncommand="MitarbeiterSendMailPrivat();" id="mitarbeiter-tree-popup-mail" hidden="false"/>
|
||||
<menuitem label="Personendetails anzeigen" oncommand="MitarbeiterShowPersonendetails()" id="mitarbeiter-tree-popup-personendetails" hidden="false"/>
|
||||
</menupopup>
|
||||
</popupset>
|
||||
<hbox>
|
||||
<toolbox flex="1">
|
||||
<toolbar id="mitarbeiter-nav-toolbar">
|
||||
<toolbarbutton id="mitarbeiter-toolbar-neu" label="Neu" oncommand="MitarbeiterNeu()" disabled="false" image="../skin/images/NeuDokument.png" tooltiptext="Neuen Mitarbeiter anlegen"/>
|
||||
<toolbarbutton id="mitarbeiter-toolbar-export" label="Export" oncommand="MitarbeiterExport()" disabled="false" image="../skin/images/ExcelIcon.png" tooltiptext="Daten ins Excel Exportieren"/>
|
||||
<toolbarbutton id="mitarbeiter-toolbar-refresh" label="Aktualisieren" oncommand="MitarbeiterTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
|
||||
<textbox id="mitarbeiter-toolbar-textbox-suche" control="mitarbeiter-toolbar-button-search" onkeypress="MitarbeiterSearchFieldKeyPress(event)" />
|
||||
<button id="mitarbeiter-toolbar-button-search" oncommand="MitarbeiterSuche()" label="Suchen"/>
|
||||
<spacer flex="1"/>
|
||||
<label id="mitarbeiter-toolbar-label-anzahl"/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
</hbox>
|
||||
<box style="height: 100px;">
|
||||
<!-- ************ -->
|
||||
<!-- * TREE * -->
|
||||
<!-- ************ -->
|
||||
<tree id="mitarbeiter-tree" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/mitarbeiter/alle"
|
||||
onselect="MitarbeiterAuswahl();"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
persist="hidden, height"
|
||||
context="mitarbeiter-tree-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="mitarbeiter-treecol-uid" label="UID" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-anrede" label="Anrede" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-titelpre" label="TitelPre" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-nachname" label="Nachname" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sortActive="true"
|
||||
sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-vorname" label="Vorname" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-vornamen" label="Vornamen" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-titelpost" label="TitelPost" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('mitarbeiter/persoenlich'))
|
||||
echo '
|
||||
<treecol id="mitarbeiter-treecol-geburtsdatum" label="Geburtsdatum" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-geburtsdatum_iso" label="GeburtsdatumISO" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-svnr" label="SVNR" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#svnr" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-ersatzkennzeichen" label="Ersatzkennzeichen" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ersatzkennzeichen" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>';
|
||||
?>
|
||||
<treecol id="mitarbeiter-treecol-aktiv" label="Aktiv" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-personalnummer" label="PNr" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#personalnummer" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-kurzbz" label="Kurzbz" flex="1" persist="hidden, width, ordinal" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-lektor" label="Lektor" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#lektor" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-fixangestellt" label="Fix" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-telefonklappe" label="Klappe" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#telefonklappe" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-ort_kurzbz" label="Buero" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ort_kurzbz" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-person_id" label="Person_id" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-insertamum" label="Angelegt am" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-insertvon" label="Angelegt von" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertvon" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-insertamum_iso" label="Angelegt am (ISO)" flex="1" persist="hidden, width, ordinal" hidden="true" ignoreincolumnpicker="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-updateamum" label="Geaendert am" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-updatevon" label="Geaendert von" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updatevon" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-updateamum_iso" label="Geaendert am (ISO)" flex="1" persist="hidden, width, ordinal" hidden="true" ignoreincolumnpicker="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum_iso" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
|
||||
<?php
|
||||
if($rechte->isBerechtigt('mitarbeiter/persoenlich'))
|
||||
echo '
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#svnr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ersatzkennzeichen" />';
|
||||
?>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#personalnummer" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#lektor" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#telefonklappe" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ort_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertvon" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum_iso" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updatevon" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum_iso" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</box>
|
||||
<splitter collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<!-- ************ -->
|
||||
<!-- * TABS * -->
|
||||
<!-- ************ -->
|
||||
<vbox persist="height" flex="1">
|
||||
<tabbox id="mitarbeiter-tabbox" orient="vertical" flex="1">
|
||||
<tabs orient="horizontal" id="mitarbeiter-tabs">
|
||||
<tab id="mitarbeiter-tab-detail" label="Stammdaten" />
|
||||
<tab id="mitarbeiter-tab-kontakt" label="Kontaktdaten" />
|
||||
<tab id="mitarbeiter-tab-bis" label="BIS-Daten" />
|
||||
<tab id="mitarbeiter-tab-betriebsmittel" label="Betriebsmittel" />
|
||||
<tab id="mitarbeiter-tab-funktionen" label="Funktionen" oncommand="MitarbeiterFunktionIFrameLoad()"/>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('buchung/mitarbeiter'))
|
||||
echo '<tab id="mitarbeiter-tab-buchung" label="Buchungen" />';
|
||||
if($rechte->isBerechtigt('vertrag/mitarbeiter'))
|
||||
echo '<tab id="mitarbeiter-tab-vertrag" label="Verträge" />';
|
||||
|
||||
?>
|
||||
<tab id="mitarbeiter-tab-termine" label="Termine" onclick="MitarbeiterTermineIFrameLoad()" />
|
||||
</tabs>
|
||||
<tabpanels id="mitarbeiter-tabpanels-main" flex="1">
|
||||
<vbox id="mitarbeiter-detail-stammdaten" style="margin-top:10px;" />
|
||||
<iframe id="mitarbeiter-kontakt" src="" style="margin-top:10px;" />
|
||||
<vbox id="mitarbeiter-detail-funktionen" style="margin-top:10px;" />
|
||||
<iframe id="mitarbeiter-betriebsmittel" src="" style="margin-top:10px;" />
|
||||
<iframe id="mitarbeiter-funktionen" src="" style="margin-top:10px;"/>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('buchung/mitarbeiter'))
|
||||
echo '<vbox id="mitarbeiter-buchung" style="margin-top:10px;" />';
|
||||
if($rechte->isBerechtigt('vertrag/mitarbeiter'))
|
||||
echo '<vbox id="mitarbeiter-vertrag" style="margin-top:10px;" />';
|
||||
?>
|
||||
<iframe id="mitarbeiter-termine" src="" style="margin-top:10px;" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
|
||||
@@ -25,8 +25,12 @@
|
||||
* Hilfe der XSL-FO Vorlage aus der DB und generiert
|
||||
* daraus ein PDF mittels xslfo2pdf bzw unoconv
|
||||
*/
|
||||
session_cache_limiter('none'); //muss gesetzt werden sonst funktioniert der Download mit IE8 nicht
|
||||
session_start();
|
||||
|
||||
/*
|
||||
* It raise an error, conflict with CI session
|
||||
* session_cache_limiter('none'); //muss gesetzt werden sonst funktioniert der Download mit IE8 nicht
|
||||
session_start();*/
|
||||
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
|
||||
@@ -22,22 +22,27 @@ require_once('../../config/vilesci.config.inc.php');
|
||||
|
||||
?>
|
||||
|
||||
var global_year;
|
||||
var global_url;
|
||||
var global_year;
|
||||
var global_url;
|
||||
|
||||
function getProperties()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree=document.getElementById('tree-projektmenue');
|
||||
|
||||
|
||||
// Wenn auf die Ueberschrift geklickt wird, soll nix passieren
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert("Kein gültiges Projekt ausgewählt!");
|
||||
return;
|
||||
}
|
||||
projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
|
||||
|
||||
if(typeof(ProjektSelectKurzbz)!='undefined')
|
||||
projekt_kurzbz = ProjektSelectKurzbz;
|
||||
else
|
||||
{
|
||||
alert("Kein gültiges Projekt ausgewählt!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
|
||||
}
|
||||
|
||||
function showStudienjahr()
|
||||
@@ -47,27 +52,35 @@ function showStudienjahr()
|
||||
{
|
||||
var datumAktuell = new Date();
|
||||
var jahrAktuell = datumAktuell.getFullYear();
|
||||
global_year = jahrAktuell;
|
||||
global_year = jahrAktuell;
|
||||
}
|
||||
|
||||
var tree=document.getElementById('tree-projektmenue');
|
||||
// Wenn auf die Ueberschrift geklickt wird, soll nix passieren
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert("Kein gültiges Projekt ausgewählt!");
|
||||
return;
|
||||
}
|
||||
projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
|
||||
if(typeof(ProjektSelectKurzbz)!='undefined')
|
||||
projekt_kurzbz = ProjektSelectKurzbz;
|
||||
else
|
||||
{
|
||||
alert("Kein gültiges Projekt ausgewählt!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
|
||||
}
|
||||
if(projekt_kurzbz == '')
|
||||
{
|
||||
oe_kurzbz = getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex);
|
||||
oe_kurzbz = getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex);
|
||||
var url = 'projekt/gantt.svg.php?oe='+oe_kurzbz+'&studienjahr='+(global_year-1)+'&ansicht=studienjahr';
|
||||
global_url=url;
|
||||
global_url=url;
|
||||
}
|
||||
else
|
||||
{
|
||||
var url = 'projekt/gantt.svg.php?projekt='+projekt_kurzbz+'&studienjahr='+(global_year-1)+'&ansicht=studienjahr';
|
||||
global_url = url;
|
||||
global_url = url;
|
||||
}
|
||||
|
||||
document.getElementById('iframe-gant-projekt').contentWindow.location.href=url;
|
||||
@@ -79,33 +92,40 @@ function showKalenderjahr()
|
||||
{
|
||||
var datumAktuell = new Date();
|
||||
var jahrAktuell = datumAktuell.getFullYear();
|
||||
global_year = jahrAktuell;
|
||||
global_year = jahrAktuell;
|
||||
}
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree=document.getElementById('tree-projektmenue');
|
||||
|
||||
|
||||
// Wenn auf die Ueberschrift geklickt wird, soll nix passieren
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert("Kein gültiges Projekt ausgewählt!");
|
||||
return;
|
||||
}
|
||||
projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
|
||||
if(typeof(ProjektSelectKurzbz)!='undefined')
|
||||
projekt_kurzbz = ProjektSelectKurzbz;
|
||||
else
|
||||
{
|
||||
alert("Kein gültiges Projekt ausgewählt!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
|
||||
|
||||
if(projekt_kurzbz == '')
|
||||
{
|
||||
oe_kurzbz = getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex);
|
||||
oe_kurzbz = getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex);
|
||||
var url = 'projekt/gantt.svg.php?oe='+oe_kurzbz+'&studienjahr='+global_year+'&ansicht=kalenderjahr';
|
||||
global_url = url;
|
||||
global_url = url;
|
||||
}
|
||||
else
|
||||
{
|
||||
var url = 'projekt/gantt.svg.php?projekt='+projekt_kurzbz+'&studienjahr='+global_year+'&ansicht=kalenderjahr';
|
||||
global_url = url;
|
||||
global_url = url;
|
||||
}
|
||||
|
||||
global_url = url;
|
||||
document.getElementById('iframe-gant-projekt').contentWindow.location.href=url;
|
||||
document.getElementById('iframe-gant-projekt').contentWindow.location.href=url;
|
||||
}
|
||||
|
||||
function showZeitraum(beginn, ende)
|
||||
@@ -114,36 +134,36 @@ function showZeitraum(beginn, ende)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree=document.getElementById('tree-projektmenue');
|
||||
|
||||
|
||||
// Wenn auf die Ueberschrift geklickt wird, soll nix passieren
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert("Kein gültiges Projekt ausgewählt!");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
|
||||
if(projekt_kurzbz == '')
|
||||
{
|
||||
oe_kurzbz = getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex);
|
||||
oe_kurzbz = getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex);
|
||||
var url = 'projekt/gantt.svg.php?oe='+oe_kurzbz+'&beginn='+beginn+'&ende='+ende;
|
||||
global_url = url;
|
||||
global_url = url;
|
||||
}
|
||||
|
||||
global_url = url;
|
||||
document.getElementById('iframe-gant-projekt').contentWindow.location.href=url;
|
||||
document.getElementById('iframe-gant-projekt').contentWindow.location.href=url;
|
||||
}
|
||||
else
|
||||
alert('kein gültiges Datum eingetragen');
|
||||
|
||||
|
||||
}
|
||||
|
||||
function showYear()
|
||||
{
|
||||
var datumAktuell = new Date();
|
||||
var jahrAktuell = datumAktuell.getFullYear();
|
||||
global_year = jahrAktuell;
|
||||
|
||||
global_year = jahrAktuell;
|
||||
|
||||
foo = document.getElementById('toolbarbutton-menuitem-gantt-kalenderjahr');
|
||||
checked=foo.getAttribute('checked');
|
||||
// kalenderjahr checked
|
||||
@@ -207,7 +227,7 @@ function showYearPlus()
|
||||
}
|
||||
|
||||
function printGantt()
|
||||
{
|
||||
{
|
||||
foo = window.open(global_url);
|
||||
foo.onload = function ()
|
||||
{
|
||||
|
||||
Regular → Executable
@@ -149,7 +149,9 @@ function onselectProjekt()
|
||||
var beginn=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beginn" ));
|
||||
var ende=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ende" ));
|
||||
var budget=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#budget" ));
|
||||
var farbe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#farbe" ));
|
||||
var farbe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#farbe" ));
|
||||
var aufwand_pt=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufwand_pt" ));
|
||||
var anzahl_ma=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_ma" ));
|
||||
var aufwandstyp_kurzbz=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufwandstyp_kurzbz" ));
|
||||
|
||||
//Daten den Feldern zuweisen
|
||||
@@ -164,7 +166,9 @@ function onselectProjekt()
|
||||
document.getElementById('textbox-projekt-detail-ende').value=ende;
|
||||
document.getElementById('textbox-projekt-detail-budget').value=budget;
|
||||
document.getElementById('textbox-projekt-detail-farbe').value=farbe;
|
||||
document.getElementById('checkbox-projekt-detail-neu').checked=false;
|
||||
document.getElementById('checkbox-projekt-detail-neu').checked=false;
|
||||
document.getElementById('textbox-projekt-anzahl_ma').value=anzahl_ma;
|
||||
document.getElementById('textbox-projekt-aufwand_pt').value=aufwand_pt;
|
||||
MenulistSelectItemOnValue('menulist-projekt-detail-aufwandstyp', aufwandstyp_kurzbz);
|
||||
|
||||
|
||||
@@ -174,7 +178,7 @@ function onselectProjekt()
|
||||
|
||||
ressource = document.getElementById('box-projekt-ressourcen');
|
||||
ressource.LoadRessourceTree(projekt_kurzbz,'');
|
||||
|
||||
makeProjektAnalyse()
|
||||
|
||||
}
|
||||
// ****
|
||||
@@ -193,9 +197,11 @@ function saveProjektDetail()
|
||||
beginn = document.getElementById('textbox-projekt-detail-beginn').iso;
|
||||
ende = document.getElementById('textbox-projekt-detail-ende').iso;
|
||||
budget = document.getElementById('textbox-projekt-detail-budget').value;
|
||||
farbe = document.getElementById('textbox-projekt-detail-farbe').value;
|
||||
farbe = document.getElementById('textbox-projekt-detail-farbe').value;
|
||||
neu = document.getElementById('checkbox-projekt-detail-neu').checked;
|
||||
aufwandstyp_kurzbz = MenulistGetSelectedValue('menulist-projekt-detail-aufwandstyp');
|
||||
aufwandstyp_kurzbz = MenulistGetSelectedValue('menulist-projekt-detail-aufwandstyp');
|
||||
anzahl_ma = document.getElementById('textbox-projekt-anzahl_ma').value;
|
||||
aufwand_pt = document.getElementById('textbox-projekt-aufwand_pt').value;
|
||||
|
||||
var soapBody = new SOAPObject("saveProjekt");
|
||||
//soapBody.appendChild(new SOAPObject("username")).val('joe');
|
||||
@@ -211,7 +217,9 @@ function saveProjektDetail()
|
||||
projekt.appendChild(new SOAPObject("ende")).val(ende);
|
||||
projekt.appendChild(new SOAPObject("budget")).val(budget);
|
||||
projekt.appendChild(new SOAPObject("farbe")).val(farbe);
|
||||
projekt.appendChild(new SOAPObject("aufwandstyp_kurzbz")).val(aufwandstyp_kurzbz);
|
||||
projekt.appendChild(new SOAPObject("aufwandstyp_kurzbz")).val(aufwandstyp_kurzbz);
|
||||
projekt.appendChild(new SOAPObject("anzahl_ma")).val(anzahl_ma);
|
||||
projekt.appendChild(new SOAPObject("aufwand_pt")).val(aufwand_pt);
|
||||
|
||||
if(neu)
|
||||
projekt.appendChild(new SOAPObject("neu")).val('true');
|
||||
@@ -334,7 +342,10 @@ function ProjektDetailReset()
|
||||
document.getElementById('textbox-projekt-detail-beschreibung').value='';
|
||||
document.getElementById('textbox-projekt-detail-beginn').value='';
|
||||
document.getElementById('textbox-projekt-detail-ende').value='';
|
||||
document.getElementById('textbox-projekt-detail-budget').value='';
|
||||
document.getElementById('textbox-projekt-detail-budget').value='';
|
||||
document.getElementById('textbox-projekt-anzahl_ma').value='';
|
||||
document.getElementById('textbox-projekt-aufwand_pt').value='';
|
||||
document.getElementById('textbox-projekt-detail-projektwuerdigkeit').value='';
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -349,9 +360,11 @@ function ProjektDisableFields(val)
|
||||
document.getElementById('textbox-projekt-detail-beginn').disabled=val;
|
||||
document.getElementById('textbox-projekt-detail-ende').disabled=val;
|
||||
document.getElementById('textbox-projekt-detail-budget').disabled=val;
|
||||
document.getElementById('textbox-projekt-detail-farbe').disabled=val;
|
||||
document.getElementById('textbox-projekt-detail-farbe').disabled=val;
|
||||
document.getElementById('button-projekt-detail-speichern').disabled=val;
|
||||
document.getElementById('menulist-projekt-detail-aufwandstyp').disabled=val;
|
||||
document.getElementById('menulist-projekt-detail-aufwandstyp').disabled=val;
|
||||
document.getElementById('textbox-projekt-anzahl_ma').disabled=val;
|
||||
document.getElementById('textbox-projekt-aufwand_pt').disabled=val;
|
||||
}
|
||||
|
||||
|
||||
@@ -372,11 +385,65 @@ function ProjektNeu()
|
||||
document.getElementById('textbox-projekt-detail-projekt_kurzbz').disabled=false;
|
||||
document.getElementById('checkbox-projekt-detail-neu').checked=true;
|
||||
document.getElementById('caption-projekt-detail').label='Neues Projekt';
|
||||
document.getElementById('textbox-projekt-detail-farbe').value='#FF0000';
|
||||
document.getElementById('textbox-projekt-detail-farbe').value='#FF0000';
|
||||
document.getElementById('textbox-projekt-anzahl_ma').disabled=false;
|
||||
document.getElementById('textbox-projekt-aufwand_pt').disabled=false;
|
||||
|
||||
//Detail Tab auswaehlen
|
||||
document.getElementById('tabs-projekt-main').selectedItem=document.getElementById('tab-projekt-detail');
|
||||
}
|
||||
|
||||
function makeProjektAnalyse(){
|
||||
var ergebnis_el = document.getElementById('textbox-projekt-detail-projektwuerdigkeit');
|
||||
ergebnis_el.value="";
|
||||
var anzahl_ma = document.getElementById('textbox-projekt-anzahl_ma').value;
|
||||
var aufwand_pt = document.getElementById('textbox-projekt-aufwand_pt').value;
|
||||
var budget = document.getElementById('textbox-projekt-detail-budget').value;
|
||||
var beginn = document.getElementById('textbox-projekt-detail-beginn').value;
|
||||
var ende = document.getElementById('textbox-projekt-detail-ende').value;
|
||||
|
||||
if (!anzahl_ma || !aufwand_pt || !budget || !beginn || !ende)
|
||||
{
|
||||
ergebnis_el.value = 'Angaben unvollständig';
|
||||
}
|
||||
else
|
||||
{
|
||||
var beginn_arr = beginn.split(".");
|
||||
var ende_arr = ende.split(".");
|
||||
var date1 = new Date(beginn_arr[2],beginn_arr[1],beginn_arr[0]);
|
||||
var date2 = new Date(ende_arr[2],ende_arr[1],ende_arr[0]);
|
||||
|
||||
var dauerTage = parseInt((date2 - date1) / (1000 * 60 * 60 * 24));
|
||||
|
||||
var punkte_gesamt = 0;
|
||||
var projekttyp = '';
|
||||
if (aufwand_pt < 10) punkte_gesamt += 1;
|
||||
else if (aufwand_pt <= 50) punkte_gesamt += 4;
|
||||
else if (aufwand_pt <= 250) punkte_gesamt += 8;
|
||||
else punkte_gesamt += 8;
|
||||
|
||||
if (anzahl_ma < 3) punkte_gesamt += 1;
|
||||
else if (anzahl_ma <= 5) punkte_gesamt += 3;
|
||||
else if (anzahl_ma <= 20) punkte_gesamt += 6;
|
||||
else punkte_gesamt += 9;
|
||||
|
||||
if (budget < 5000) punkte_gesamt += 1;
|
||||
else if (budget <= 25000) punkte_gesamt += 2;
|
||||
else if (budget <= 500000) punkte_gesamt += 4;
|
||||
else punkte_gesamt += 6;
|
||||
|
||||
if (dauerTage < 30) punkte_gesamt += 0;
|
||||
else if (dauerTage <= 90) punkte_gesamt += 4;
|
||||
else if (dauerTage <= 360) punkte_gesamt += 5;
|
||||
else punkte_gesamt += 7;
|
||||
|
||||
if (punkte_gesamt <= 8) projekttyp = 'Vorhaben';
|
||||
else if (punkte_gesamt <= 15) projekttyp = 'Kleinprojekt';
|
||||
else if (punkte_gesamt <= 30) projekttyp = 'Projekt';
|
||||
else projekttyp = 'Großrojekt';
|
||||
ergebnis_el.value = projekttyp;
|
||||
}
|
||||
}
|
||||
|
||||
function ProjektPrintStatusbericht()
|
||||
{
|
||||
|
||||
@@ -63,7 +63,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdetail.overlay.xul.
|
||||
<!-- ************* -->
|
||||
<!-- Bem.: style="visibility:collapse" versteckt eine Spalte -->
|
||||
<tree id="tree-projekt" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="../../rdf/projekt.rdf.php?foo=<?php echo time(); ?>" ref="http://www.technikum-wien.at/projekt/alle-projekte"
|
||||
datasources="../rdf/projekt.rdf.php?nocache=<?php echo time(); ?>" ref="http://www.technikum-wien.at/projekt/alle-projekte"
|
||||
style="margin:0px;height:250px" enableColumnDrag="true"
|
||||
onselect="onselectProjekt(this);"
|
||||
persist="height"
|
||||
@@ -154,5 +154,5 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdetail.overlay.xul.
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
|
||||
?>
|
||||
|
||||
function updateProjektRessource()
|
||||
{
|
||||
if(projekt_ressource_id!='')
|
||||
{
|
||||
|
||||
aufwand = document.getElementById("textbox-ressource-aufwand").value;
|
||||
if (document.getElementById("leitung").selected)
|
||||
funktion_kurzbz = 'Leitung';
|
||||
else
|
||||
funktion_kurzbz = 'Mitarbeiter';
|
||||
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
var soapBody = new SOAPObject("saveProjektRessource");
|
||||
var projektRessource = new SOAPObject("projektRessource");
|
||||
|
||||
projektRessource.appendChild(new SOAPObject("projekt_ressource_id")).val(projekt_ressource_id);
|
||||
|
||||
if(projekt_kurzbz != '')
|
||||
{
|
||||
projektRessource.appendChild(new SOAPObject("projektphase_id")).val('');
|
||||
projektRessource.appendChild(new SOAPObject("projekt_kurzbz")).val(projekt_kurzbz);
|
||||
}
|
||||
else if(projektphase_id != '')
|
||||
{
|
||||
projektRessource.appendChild(new SOAPObject("projektphase_id")).val(projektphase_id);
|
||||
projektRessource.appendChild(new SOAPObject("projekt_kurzbz")).val('');
|
||||
}
|
||||
|
||||
projektRessource.appendChild(new SOAPObject("ressource_id")).val(ressource_id);
|
||||
projektRessource.appendChild(new SOAPObject("funktion_kurzbz")).val(funktion_kurzbz);
|
||||
projektRessource.appendChild(new SOAPObject("beschreibung")).val(beschreibung);
|
||||
projektRessource.appendChild(new SOAPObject("aufwand")).val(aufwand);
|
||||
|
||||
soapBody.appendChild(projektRessource);
|
||||
|
||||
var sr = new SOAPRequest("saveProjektRessource",soapBody);
|
||||
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/ressource_projekt.soap.php?"+gettimestamp();
|
||||
|
||||
function mycallb(obj)
|
||||
{
|
||||
var me=obj;
|
||||
this.invoke=function (respObj)
|
||||
{
|
||||
try
|
||||
{
|
||||
var id = respObj.Body[0].saveProjektRessourceResponse[0].message[0].Text;
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
var fehler = respObj.Body[0].Fault[0].faultstring[0].Text;
|
||||
alert('Fehler: '+fehler);
|
||||
return;
|
||||
}
|
||||
me.RefreshRessource();
|
||||
}
|
||||
}
|
||||
|
||||
var cb=new mycallb(this);
|
||||
|
||||
//SOAPClient.SendRequest(sr,cb.invoke);
|
||||
SOAPClient.SendRequest(sr);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
debug("Ressource load failed with exception: "+e);
|
||||
}
|
||||
|
||||
}
|
||||
//window.opener.location.reload(false);
|
||||
window.close();
|
||||
|
||||
}
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Gerald Raab <erald.raab@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
$projekt_ressource_id = $_GET["id"];
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/ressource.class.php');
|
||||
|
||||
$ressource = new ressource();
|
||||
$ressource->getSingleProjektRessource($projekt_ressource_id);
|
||||
$aufwand = $ressource->aufwand;
|
||||
$funktion_kurzbz = $ressource->funktion_kurzbz;
|
||||
$ressource_id = $ressource->ressource_id;
|
||||
$projektphase_id = $ressource->projektphase_id;
|
||||
$beschreibung = $ressource->beschreibung;
|
||||
$projekt_kurzbz = $ressource->projekt_kurzbz;
|
||||
|
||||
if ($funktion_kurzbz == "Leitung")
|
||||
{
|
||||
$leitung_sel = ' selected="true"';
|
||||
$mitarbeiter_sel = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
$leitung_sel = '';
|
||||
$mitarbeiter_sel = ' selected="true"';
|
||||
}
|
||||
|
||||
|
||||
header("Cache-Control: no-cache");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
?>
|
||||
|
||||
<window id="window-ressource-neu" title="Projektressource verwalten"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
<script type="text/javascript" language="JavaScript" src="<?php echo APP_ROOT; ?>include/js/jquery.js"></script>
|
||||
<script type="text/javascript" language="JavaScript" src="<?php echo APP_ROOT; ?>include/js/jqSOAPClient.js"></script>
|
||||
<script type="text/javascript" language="JavaScript" src="<?php echo APP_ROOT; ?>include/js/jqXMLUtils.js"></script>
|
||||
<script type="text/javascript" language="JavaScript" src="<?php echo APP_ROOT; ?>content/functions.js.php"></script>
|
||||
<script type="text/javascript" language="JavaScript" src="<?php echo APP_ROOT; ?>content/projekt/projekt_ressource.window.js.php"></script>
|
||||
<script type="text/javascript">
|
||||
var projekt_ressource_id = '<?php echo $projekt_ressource_id ?>';
|
||||
var aufwand = '<?php echo $aufwand; ?>';
|
||||
var funktion_kurzbz = '<?php echo $funktion_kurzbz; ?>';
|
||||
var projekt_kurzbz = '<?php echo $projekt_kurzbz; ?>';
|
||||
var projektphase_id = '<?php echo $projektphase_id; ?>';
|
||||
var ressource_id = '<?php echo $ressource_id; ?>';
|
||||
var funktion_kurzbz = '<?php echo $funktion_kurzbz; ?>';
|
||||
var beschreibung = '<?php echo $beschreibung; ?>';
|
||||
</script>
|
||||
|
||||
<vbox>
|
||||
|
||||
<checkbox id="checkbox-ressource-neu" hidden="true"/>
|
||||
<groupbox id="groupbox-ressource" flex="1">
|
||||
<caption label="Details"/>
|
||||
<grid id="grid-ressource-detail" style="overflow:auto;margin:4px;" flex="1">
|
||||
<columns >
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
</columns>
|
||||
<rows>
|
||||
|
||||
<row>
|
||||
<label value="ProjektRessourceID" control="textbox-ressource-projekt_ressource_id"/>
|
||||
<textbox id="textbox-ressource-projekt_ressource_id" value="<?php echo $projekt_ressource_id; ?>" disabled="true" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="Funktion" control="textbox-ressource-funktionradio"/>
|
||||
<radiogroup>
|
||||
<radio id="leitung" label="Leitung" <?php echo $leitung_sel; ?>/>
|
||||
<radio id="mitarbeiter" label="Mitarbeiter" <?php echo $mitarbeiter_sel; ?>/>
|
||||
</radiogroup>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Aufwand" control="textbox-ressource-aufwand"/>
|
||||
<textbox id="textbox-ressource-aufwand" value="<?php echo $aufwand; ?>" maxlength="256"/>
|
||||
</row>
|
||||
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox>
|
||||
<spacer flex="1" />
|
||||
<button id="button-ressource-speichern" oncommand="updateProjektRessource()" label="Speichern" />
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
</window>
|
||||
@@ -58,6 +58,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<spacer />
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<label value="OE (Organisationseinheit)" control="textbox-projekt-detail-oe_kurzbz"/>
|
||||
<hbox>
|
||||
@@ -100,21 +101,43 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Beschreibung" control="textbox-projekt-detail-beschreibung"/>
|
||||
<textbox id="textbox-projekt-detail-beschreibung" multiline="true" disabled="true" rows="10"/>
|
||||
</row>
|
||||
<row>
|
||||
<row style="background-color:#eeeeee">
|
||||
<label value="Projektwürdigkeit" control="textbox-projekt-detail-projektwuerdigkeit" style="font-weight:bold;"/>
|
||||
<hbox>
|
||||
<textbox id="textbox-projekt-detail-projektwuerdigkeit" size="16" maxlength="16" readonly="true" style="font-weight:bold;"/>
|
||||
<spacer />
|
||||
</hbox>
|
||||
</row>
|
||||
<row style="background-color:#eeeeee">
|
||||
<label value="Beginn" control="textbox-projekt-detail-beginn"/>
|
||||
<box class="Datum" id="textbox-projekt-detail-beginn" disabled="true"/>
|
||||
<box class="Datum" id="textbox-projekt-detail-beginn" disabled="true" onchange="makeProjektAnalyse()"/>
|
||||
|
||||
</row>
|
||||
<row>
|
||||
<row style="background-color:#eeeeee">
|
||||
<label value="Ende" control="textbox-projekt-detail-ende"/>
|
||||
<box class="Datum" id="textbox-projekt-detail-ende" disabled="true"/>
|
||||
<box class="Datum" id="textbox-projekt-detail-ende" disabled="true" onchange="makeProjektAnalyse()"/>
|
||||
</row>
|
||||
<row>
|
||||
<row style="background-color:#eeeeee">
|
||||
<label value="Budget" control="textbox-projekt-detail-budget"/>
|
||||
<hbox>
|
||||
<textbox id="textbox-projekt-detail-budget" size="12" maxlength="13" disabled="true"/>
|
||||
<textbox id="textbox-projekt-detail-budget" size="12" maxlength="13" disabled="true" onchange="makeProjektAnalyse()"/>
|
||||
<spacer />
|
||||
</hbox>
|
||||
</row>
|
||||
<row style="background-color:#eeeeee">
|
||||
<label value="Anzahl MA" control="textbox-projekt-anzahl_ma"/>
|
||||
<hbox>
|
||||
<textbox id="textbox-projekt-anzahl_ma" size="7" maxlength="7" disabled="true" onchange="makeProjektAnalyse()"/>
|
||||
</hbox>
|
||||
<spacer />
|
||||
</row>
|
||||
<row style="background-color:#eeeeee">
|
||||
<label value="Aufwand PT" control="textbox-projekt-aufwand_pt" />
|
||||
<hbox>
|
||||
<textbox id="textbox-projekt-aufwand_pt" size="7" maxlength="7" disabled="true" onchange="makeProjektAnalyse()"/>
|
||||
</hbox>
|
||||
<spacer />
|
||||
</row>
|
||||
<row>
|
||||
<label value="Farbe" control="textbox-projekt-detail-farbe"/>
|
||||
<hbox>
|
||||
@@ -122,6 +145,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<spacer />
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<label value="Aufwandstyp" control="textbox-projekt-detail-aufwandstyp"/>
|
||||
<hbox>
|
||||
|
||||
Regular → Executable
+1
@@ -224,6 +224,7 @@ function saveRessource()
|
||||
SOAPClient.SendRequest(sr, clb_saveRessource);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ****
|
||||
|
||||
Regular → Executable
+601
-581
File diff suppressed because it is too large
Load Diff
@@ -127,7 +127,7 @@ if($studiengang_kz!='')
|
||||
$worksheet->write($zeile,++$spalte, $row->status);
|
||||
if(mb_strlen($row->status)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($row->status);
|
||||
|
||||
|
||||
$worksheet->write($zeile,++$spalte, $row->semester, $format_center);
|
||||
if(mb_strlen($row->semester)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($row->semester);
|
||||
@@ -142,11 +142,11 @@ if($studiengang_kz!='')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Die Breite der Spalten setzen
|
||||
foreach($maxlength as $i=>$breite)
|
||||
$worksheet->setColumn($i, $i, $breite+2);
|
||||
|
||||
|
||||
$workbook->close();
|
||||
}
|
||||
else
|
||||
@@ -166,4 +166,4 @@ else
|
||||
</html>
|
||||
';
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user