This commit is contained in:
Stefan Puraner
2016-05-02 13:00:58 +02:00
263 changed files with 24229 additions and 18254 deletions
+6 -4
View File
@@ -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
-3
View File
@@ -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
View File
@@ -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
+3
View File
@@ -1,4 +1,7 @@
# FH-Complete
[![Build Status](http://phpci.fhcomplete.org/build-status/image/1)](http://phpci.fhcomplete.org/project/view/1)
* [FH-Complete Homepage](http://www.fhcomplete.org)
* [Wiki](http://fhcomplete.technikum-wien.at/dokuwiki/)
* [Changelog](CHANGELOG.md)
+44
View File
@@ -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;
}
*/
}
});
+44
View File
@@ -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;
}
*/
}
});
+6 -10
View File
@@ -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;
});
+19
View 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
+8 -4
View File
@@ -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'
);
+11 -7
View File
@@ -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;
/*
|--------------------------------------------------------------------------
+15
View File
@@ -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;
+165
View File
@@ -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);
}
}
+4 -26
View File
@@ -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');
}
}
-133
View File
@@ -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);
}
}
-316
View File
@@ -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'));
}
}
+1 -1
View File
@@ -15,7 +15,7 @@
defined('BASEPATH') || exit('No direct script access allowed');
class Kontakt extends REST_Controller
class Kontakt extends APIv1_Controller
{
//public $session;
+80
View File
@@ -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);
}
}
-207
View File
@@ -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);
}
}
+50
View File
@@ -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');
}
}
-32
View File
@@ -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');
}
}
+13
View File
@@ -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
}
}
+233
View File
@@ -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;
}
}
+1 -14
View File
@@ -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
}
}
}
+38 -81
View File
@@ -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;
}
}
+12
View File
@@ -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;
}
+20
View File
@@ -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';
+18 -6
View File
@@ -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));
}
}
+2 -2
View File
@@ -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)
+46 -10
View File
@@ -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;
}
}
}
+629
View File
@@ -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();
}
}
+71
View File
@@ -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;
}
}
+16
View File
@@ -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';
}
}
+796 -125
View File
@@ -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();
}
}
+119
View File
@@ -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
View File
@@ -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?');
}
}
+1 -1
View File
@@ -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');
+1 -1
View File
@@ -119,4 +119,4 @@
}
?>
</body>
</html>
</html>
+11 -9
View File
@@ -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';
+9 -2
View File
@@ -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
+30 -23
View File
@@ -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();
File diff suppressed because it is too large Load Diff
+41 -28
View File
@@ -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;
}
?>
?>
+62 -55
View File
@@ -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>
+45 -29
View File
@@ -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>
+67 -59
View File
@@ -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>
+32 -19
View File
@@ -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;
}
}
+39 -31
View File
@@ -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>
+94 -86
View File
@@ -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.'">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>
+25 -15
View File
@@ -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;
}
?>
?>
+50 -42
View File
@@ -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>&nbsp;</td><td><input id="buttonSave" type="button" value="Speichern" onclick='savePruefungstermin();'></td>
<td>&nbsp;</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>
+107 -85
View File
@@ -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>
+22 -3
View File
@@ -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>";
+95 -22
View File
@@ -1,22 +1,22 @@
<?php
/*
* Copyright 2013 fhcomplete.org
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
*
@@ -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>
+72 -32
View File
@@ -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
{
+19
View File
@@ -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))
File diff suppressed because it is too large Load Diff
+17 -17
View File
@@ -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>
+145 -119
View File
@@ -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> &gt; 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>&nbsp;</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
View File
@@ -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
View File
@@ -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']))
+68 -24
View File
@@ -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">&nbsp;</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)
+12 -10
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -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);
+4
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+44 -3
View File
@@ -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
+282 -281
View File
@@ -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>
+6 -2
View File
@@ -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');
+56 -36
View File
@@ -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
View File
+77 -10
View File
@@ -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()
{
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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>
+30 -6
View File
@@ -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
View File
@@ -224,6 +224,7 @@ function saveRessource()
SOAPClient.SendRequest(sr, clb_saveRessource);
}
}
// ****
+601 -581
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -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