mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Merge branch 'master' into TempusLektorFilter
This commit is contained in:
+1
-1
@@ -119,7 +119,7 @@
|
||||
- **[DEPRECATED]** Spalte ort_kurzbz in tbl_reihungstest wird nicht mehr verwendet und in zukünftigen Versionen entfernt
|
||||
|
||||
Zum Update auf diese Version folgen Sie den Anweisungen auf folgender Seite:
|
||||
http://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=fh-complete:codeigniter
|
||||
https://wiki.fhcomplete.org/doku.php?id=fh-complete:codeigniter
|
||||
|
||||
## [3.1.0] - 2015-11-12
|
||||
### Added
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# FH-Complete
|
||||
|
||||
* [FH-Complete Homepage](http://www.fhcomplete.org)
|
||||
* [Wiki](http://fhcomplete.technikum-wien.at/dokuwiki/)
|
||||
* [FH-Complete Homepage](https://www.fhcomplete.org)
|
||||
* [Wiki](https://wiki.fhcomplete.org/)
|
||||
* [Changelog](CHANGELOG.md)
|
||||
|
||||
@@ -1,77 +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
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class CallerLibrary extends APIv1_Controller
|
||||
{
|
||||
/**
|
||||
* API constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(array('Call' => 'admin:rw'));
|
||||
|
||||
// Loads the CallerLib
|
||||
$this->load->library('CallerLib');
|
||||
}
|
||||
|
||||
/**
|
||||
* Manages a HTTP get call
|
||||
*/
|
||||
public function getCall()
|
||||
{
|
||||
// Start me up!
|
||||
$result = $this->callerlib->callLibrary($this->get());
|
||||
|
||||
// Print the result
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function postCall()
|
||||
{
|
||||
// Start me up!
|
||||
$result = $this->callerlib->callLibrary($this->post());
|
||||
|
||||
// Print the result
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function putCall()
|
||||
{
|
||||
// Start me up!
|
||||
$result = $this->callerlib->callLibrary($this->put());
|
||||
|
||||
// Print the result
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function deleteCall()
|
||||
{
|
||||
// Start me up!
|
||||
$result = $this->callerlib->callLibrary($this->delete());
|
||||
|
||||
// Print the result
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
}
|
||||
@@ -1,77 +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
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class CallerModel extends APIv1_Controller
|
||||
{
|
||||
/**
|
||||
* API constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(array('Call' => 'admin:rw'));
|
||||
|
||||
// Loads the CallerLib
|
||||
$this->load->library('CallerLib');
|
||||
}
|
||||
|
||||
/**
|
||||
* Manages a HTTP get call
|
||||
*/
|
||||
public function getCall()
|
||||
{
|
||||
// Start me up!
|
||||
$result = $this->callerlib->callModel($this->get());
|
||||
|
||||
// Print the result
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function postCall()
|
||||
{
|
||||
// Start me up!
|
||||
$result = $this->callerlib->callModel($this->post());
|
||||
|
||||
// Print the result
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function putCall()
|
||||
{
|
||||
// Start me up!
|
||||
$result = $this->callerlib->callModel($this->put());
|
||||
|
||||
// Print the result
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function deleteCall()
|
||||
{
|
||||
// Start me up!
|
||||
$result = $this->callerlib->callModel($this->delete());
|
||||
|
||||
// Print the result
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,8 @@ class Prestudentstatus extends CLI_Controller
|
||||
tbl_prestudent.studiengang_kz,
|
||||
tbl_prestudentstatus.studienplan_id,
|
||||
tbl_studienplan.orgform_kurzbz,
|
||||
tbl_prestudent.person_id');
|
||||
tbl_prestudent.person_id,
|
||||
tbl_studienplan.sprache');
|
||||
$this->PrestudentstatusModel->addJoin('public.tbl_prestudent', 'prestudent_id');
|
||||
$this->PrestudentstatusModel->addJoin('lehre.tbl_studienplan', 'studienplan_id','LEFT');
|
||||
$this->PrestudentstatusModel->addJoin('lehre.tbl_studienordnung', 'studienordnung_id','LEFT');
|
||||
@@ -64,7 +65,8 @@ class Prestudentstatus extends CLI_Controller
|
||||
$row_status->studiengang_kz,
|
||||
$row_status->studiensemester_kurzbz,
|
||||
$row_status->ausbildungssemester,
|
||||
$row_status->orgform_kurzbz);
|
||||
$row_status->orgform_kurzbz,
|
||||
$row_status->sprache);
|
||||
|
||||
if(isSuccess($studienplan) && count($studienplan->retval) == 1)
|
||||
{
|
||||
|
||||
+22
-15
@@ -2,8 +2,10 @@
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class UDF extends Auth_Controller
|
||||
class FAS_UDF extends Auth_Controller
|
||||
{
|
||||
const FAS_UDF_SESSION_NAME = 'fasUdfSessionName';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
@@ -22,31 +24,33 @@ class UDF extends Auth_Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$fasUdfSession = getSession(self::FAS_UDF_SESSION_NAME);
|
||||
|
||||
$person_id = $this->input->get('person_id');
|
||||
if (isset($this->session->person_id))
|
||||
if (isset($fasUdfSession['person_id']))
|
||||
{
|
||||
if (!isset($person_id))
|
||||
{
|
||||
$person_id = $this->session->person_id;
|
||||
$person_id = $fasUdfSession['person_id'];
|
||||
}
|
||||
unset($this->session->person_id);
|
||||
unset($fasUdfSession['person_id']);
|
||||
}
|
||||
|
||||
$prestudent_id = $this->input->get('prestudent_id');
|
||||
if (isset($this->session->prestudent_id))
|
||||
if (isset($fasUdfSession['prestudent_id']))
|
||||
{
|
||||
if (!isset($prestudent_id))
|
||||
{
|
||||
$prestudent_id = $this->session->prestudent_id;
|
||||
$prestudent_id = $fasUdfSession['prestudent_id'];
|
||||
}
|
||||
unset($this->session->prestudent_id);
|
||||
unset($fasUdfSession['prestudent_id']);
|
||||
}
|
||||
|
||||
$result = null;
|
||||
if (isset($this->session->result))
|
||||
if (isset($fasUdfSession['result']))
|
||||
{
|
||||
$result = clone $this->session->result;
|
||||
$this->session->set_userdata('result', null);
|
||||
$result = clone $fasUdfSession['result'];
|
||||
setSessionElement(self::FAS_UDF_SESSION_NAME, 'result', null);
|
||||
}
|
||||
|
||||
$data = array('result' => $result);
|
||||
@@ -71,7 +75,7 @@ class UDF extends Auth_Controller
|
||||
}
|
||||
}
|
||||
|
||||
$this->load->view('system/udf', $data);
|
||||
$this->load->view('system/fas_udf', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,9 +94,9 @@ class UDF extends Auth_Controller
|
||||
if (isSuccess($validation))
|
||||
{
|
||||
// Load model UDF_model
|
||||
$this->load->model('system/UDF_model', 'UDFModel');
|
||||
$this->load->model('system/FAS_UDF_model', 'FASUDFModel');
|
||||
|
||||
$result = $this->UDFModel->saveUDFs($udfs);
|
||||
$result = $this->FASUDFModel->saveUDFs($udfs);
|
||||
|
||||
$userdata['result'] = $result;
|
||||
}
|
||||
@@ -101,8 +105,11 @@ class UDF extends Auth_Controller
|
||||
$userdata['result'] = $validation;
|
||||
}
|
||||
|
||||
$this->session->set_userdata($userdata);
|
||||
redirect('system/UDF');
|
||||
setSessionElement(self::FAS_UDF_SESSION_NAME, 'person_id', $userdata['person_id']);
|
||||
setSessionElement(self::FAS_UDF_SESSION_NAME, 'prestudent_id', $userdata['prestudent_id']);
|
||||
setSessionElement(self::FAS_UDF_SESSION_NAME, 'result', $userdata['result']);
|
||||
|
||||
redirect('system/FAS_UDF');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -216,6 +216,16 @@ class Filters extends FHC_Controller
|
||||
$this->outputJsonSuccess('Success');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the dataset
|
||||
*/
|
||||
public function reloadDataset()
|
||||
{
|
||||
$this->filterslib->reloadDataset();
|
||||
|
||||
$this->outputJsonSuccess('Success');
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Overview on cronjob logs
|
||||
*/
|
||||
class LogsViewer extends Auth_Controller
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'admin:r'
|
||||
)
|
||||
);
|
||||
|
||||
// Loads WidgetLib
|
||||
$this->load->library('WidgetLib');
|
||||
|
||||
// Loads phrases system
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'filter'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Main page of the InfoCenter tool
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->load->view('system/logs/logsViewer.php');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Class Variables
|
||||
* Provides interface for managing user variables.
|
||||
*/
|
||||
class Variables extends Auth_Controller
|
||||
{
|
||||
private $_uid;
|
||||
|
||||
/**
|
||||
* Variables constructor.
|
||||
* Sets logged in user, loads models and libraries.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'setVar' => 'basis/variable:rw',
|
||||
'getVar' => 'basis/variable:rw',
|
||||
'changeStudiensemesterVar' => 'basis/variable:rw'
|
||||
)
|
||||
);
|
||||
|
||||
$this->load->model('system/variable_model', 'VariableModel');
|
||||
|
||||
$this->_setAuthUID();
|
||||
|
||||
$this->load->library('VariableLib', array('uid' => $this->_uid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a user variable based on received post parameters, outputs JSON response.
|
||||
*/
|
||||
public function setVar()
|
||||
{
|
||||
$name = $this->input->post('name');
|
||||
$wert = $this->input->post('wert');
|
||||
|
||||
$result = $this->VariableModel->setVariable($this->_uid, $name, $wert);
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets a user variable based on received post parameter, outputs JSON response.
|
||||
*/
|
||||
public function getVar()
|
||||
{
|
||||
$name = $this->input->get('name');
|
||||
$this->outputJson($this->VariableModel->getVariables($this->_uid, array($name)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes a user variable containing a Studiensemester based on received post parameters, outputs JSON response.
|
||||
*/
|
||||
public function changeStudiensemesterVar()
|
||||
{
|
||||
$name = $this->input->post('name');
|
||||
$change = $this->input->post('change');
|
||||
|
||||
$result = $this->variablelib->changeStudiensemesterVar($this->_uid, $name, $change);
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
}
|
||||
@@ -136,6 +136,8 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
|
||||
$this->load->library('VariableLib', array('uid' => $this->_uid));
|
||||
|
||||
$this->setControllerId(); // sets the controller id
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<?php
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* REST_Controller takes care about authentication and it loads the AuthLib
|
||||
*/
|
||||
class APIv1_Controller extends REST_Controller
|
||||
abstract class APIv1_Controller extends REST_Controller
|
||||
{
|
||||
private $_requiredPermissions;
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Auth_Controller extends FHC_Controller
|
||||
/**
|
||||
*
|
||||
*/
|
||||
abstract class Auth_Controller extends FHC_Controller
|
||||
{
|
||||
/**
|
||||
* Extends this controller if authentication is required
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class CLI_Controller extends FHC_Controller
|
||||
/**
|
||||
*
|
||||
*/
|
||||
abstract class CLI_Controller extends FHC_Controller
|
||||
{
|
||||
const INFO_FORMAT = '%s %s %s %s'; // Info message format
|
||||
const REQUIRED_PARAM_FORMAT = ' %s'; // Info message required method parameter format
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<?php
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class DB_Model extends CI_Model
|
||||
{
|
||||
// Default schema used by the models
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class FHC_Controller extends CI_Controller
|
||||
/**
|
||||
*
|
||||
*/
|
||||
abstract class FHC_Controller extends CI_Controller
|
||||
{
|
||||
const FHC_CONTROLLER_ID = 'fhc_controller_id'; // name of the parameter used to identify uniquely a call to a controller
|
||||
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
<?php
|
||||
|
||||
class FS_Model extends CI_Model
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
abstract class FS_Model extends CI_Model
|
||||
{
|
||||
protected $filepath; // Path of the file
|
||||
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
abstract class JOB_Controller extends CLI_Controller
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Loads LogLib with different debug trace levels to get data of the job that extends this class
|
||||
// It also specify parameters to set database fields
|
||||
$this->load->library('LogLib', array(
|
||||
'classIndex' => 5,
|
||||
'functionIndex' => 5,
|
||||
'lineIndex' => 4,
|
||||
'dbLogType' => 'job', // required
|
||||
'dbExecuteUser' => 'Cronjob system'
|
||||
));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Protected methods
|
||||
|
||||
/**
|
||||
* Writes a cronjob info log
|
||||
*/
|
||||
protected function logInfo($response, $parameters = null)
|
||||
{
|
||||
$this->_log(LogLib::INFO, 'Cronjob info', $response, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a cronjob debug log
|
||||
*/
|
||||
protected function logDebug($response, $parameters = null)
|
||||
{
|
||||
$this->_log(LogLib::DEBUG, 'Cronjob debug', $response, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a cronjob warning log
|
||||
*/
|
||||
protected function logWarning($response, $parameters = null)
|
||||
{
|
||||
$this->_log(LogLib::WARNING, 'Cronjob warning', $response, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a cronjob error log
|
||||
*/
|
||||
protected function logError($response, $parameters = null)
|
||||
{
|
||||
$this->_log(LogLib::ERROR, 'Cronjob error', $response, $parameters);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Writes a log to database
|
||||
*/
|
||||
private function _log($level, $requestId, $response, $parameters)
|
||||
{
|
||||
$data = new stdClass();
|
||||
|
||||
$data->response = $response;
|
||||
if ($parameters != null) $data->parameters = $parameters;
|
||||
|
||||
switch($level)
|
||||
{
|
||||
case LogLib::INFO:
|
||||
$this->loglib->logInfoDB($requestId, json_encode(success($data, LogLib::INFO)));
|
||||
break;
|
||||
case LogLib::DEBUG:
|
||||
$this->loglib->logDebugDB($requestId, json_encode(success($data, LogLib::DEBUG)));
|
||||
break;
|
||||
case LogLib::WARNING:
|
||||
$this->loglib->logWarningDB($requestId, json_encode(error($data, LogLib::WARNING)));
|
||||
break;
|
||||
case LogLib::ERROR:
|
||||
$this->loglib->logErrorDB($requestId, json_encode(error($data, LogLib::ERROR)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,361 +0,0 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Library used to call a method of a model or a library
|
||||
*/
|
||||
class CallerLib
|
||||
{
|
||||
const RESOURCE_PARAMETER = 'resource';
|
||||
const FUNCTION_PARAMETER = 'function';
|
||||
const REG_SPLIT_EXPR = '/\//';
|
||||
const LIB_PREFIX = 'Lib';
|
||||
const LIB_FILE_EXTENSION = '.php';
|
||||
const LIBS_PATH = 'libraries';
|
||||
const MODEL_PREFIX = '_model';
|
||||
|
||||
// Black list of resources that are no allowed to be used
|
||||
private static $RESOURCES_BLACK_LIST = array(
|
||||
'CallerLib', // disabled self loading
|
||||
'LogLib', // hardly usefull and virtually dangerous
|
||||
'MigrationLib', // virtually dangerous, DB manipulation
|
||||
'FilesystemLib', // virtually dangerous, direct access to file system
|
||||
'PermissionLib', // usefull?
|
||||
'PersonLogLib'
|
||||
);
|
||||
|
||||
private $_ci; // CI instance
|
||||
|
||||
/**
|
||||
* Library initialization
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->_ci =& get_instance(); // Gets CI instance
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper method for _call
|
||||
*/
|
||||
public function callLibrary($callParameters)
|
||||
{
|
||||
return $this->_call($callParameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper method for _call
|
||||
*/
|
||||
public function callModel($callParameters)
|
||||
{
|
||||
return $this->_call($callParameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Everything starts here...
|
||||
*/
|
||||
private function _call($callParameters)
|
||||
{
|
||||
$result = null;
|
||||
$parameters = $this->_getParameters($callParameters);
|
||||
$validation = $this->_validateCall($parameters);
|
||||
|
||||
// If the validation was passed
|
||||
if (isSuccess($validation))
|
||||
{
|
||||
$loaded = null;
|
||||
// If the given resource is a model
|
||||
if (strpos($parameters->resourceName, CallerLib::MODEL_PREFIX) !== false)
|
||||
{
|
||||
// Try to load the model
|
||||
$result = $this->_loadModel($parameters->resourcePath, $parameters->resourceName);
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$loaded = $result->retval;
|
||||
}
|
||||
}
|
||||
// If the given resource is a library
|
||||
elseif (strpos($parameters->resourceName, CallerLib::LIB_PREFIX) !== false)
|
||||
{
|
||||
// Check if the resource is already loaded, it works only with libraries and drivers
|
||||
$isLoaded = $this->_ci->load->is_loaded($parameters->resourceName);
|
||||
// If not loaded then load it
|
||||
if ($isLoaded === false)
|
||||
{
|
||||
// Try to load the library
|
||||
$result = $this->_loadLibrary($parameters->resourcePath, $parameters->resourceName);
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$loaded = $result->retval;
|
||||
}
|
||||
}
|
||||
// If it is already loaded $isLoaded contains the instance of the library
|
||||
else
|
||||
{
|
||||
$loaded = $isLoaded;
|
||||
}
|
||||
}
|
||||
// Wrong selection!
|
||||
else
|
||||
{
|
||||
$result = error('Neither a lib nor model: '.$parameters->resourcePath.$parameters->resourceName);
|
||||
}
|
||||
|
||||
// If the resource was found and loaded
|
||||
if (!is_null($loaded))
|
||||
{
|
||||
$result = $this->_callThis($parameters->resourceName, $parameters->function, $parameters->parameters);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Resource not loaded
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $validation;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the parameters from the http call
|
||||
* Search for parameters <RESOURCE_PARAMETER> and <FUNCTION_PARAMETER>
|
||||
* <RESOURCE_PARAMETER> is the name of the model or of the library
|
||||
* <FUNCTION_PARAMETER> is the name of the method present in the model/library
|
||||
* All the others parameters will be given to the method in the same order that
|
||||
* they are present in the HTTP call
|
||||
* EX:
|
||||
* URL: ../system/CallerLibrary/Call?resource=<resource>&function=<method>&<par1>=<val1>&<par2>=<val2>&<par3>=<val3>
|
||||
* will call <resource>.<method>(par1, par2, par3)
|
||||
*/
|
||||
private function _getParameters($parametersArray)
|
||||
{
|
||||
$parameters = new stdClass();
|
||||
$parameters->parameters = array();
|
||||
$count = 0;
|
||||
|
||||
foreach ($parametersArray as $parameterName => $parameterValue)
|
||||
{
|
||||
// The name of the resource, path included
|
||||
if ($parameterName == CallerLib::RESOURCE_PARAMETER)
|
||||
{
|
||||
// Separates the resource path from the resource name
|
||||
$splittedResource = preg_split(CallerLib::REG_SPLIT_EXPR, $parameterValue);
|
||||
$parameters->resourceName = $splittedResource[count($splittedResource) - 1];
|
||||
$parameters->resourcePath = str_replace($parameters->resourceName, '', $parameterValue);
|
||||
}
|
||||
// The name of the function
|
||||
elseif ($parameterName == CallerLib::FUNCTION_PARAMETER)
|
||||
{
|
||||
$parameters->function = $parameterValue;
|
||||
}
|
||||
// It is assumed that all other parameters are the parameters to be passed to the function
|
||||
// They will be passed to the function in the same order in which they are passed to
|
||||
// this controller
|
||||
else
|
||||
{
|
||||
$parameters->parameters[$count++] = $parameterValue;
|
||||
}
|
||||
}
|
||||
|
||||
return $parameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate the given parameters
|
||||
*/
|
||||
private function _validateCall($parameters)
|
||||
{
|
||||
if (!is_object($parameters))
|
||||
{
|
||||
return error('Parameter is not an object');
|
||||
}
|
||||
if (!isset($parameters->resourcePath))
|
||||
{
|
||||
return error('Resource path is not specified');
|
||||
}
|
||||
if (!isset($parameters->resourceName))
|
||||
{
|
||||
return error('Resource name is not specified');
|
||||
}
|
||||
if (!isset($parameters->function))
|
||||
{
|
||||
return error('Function is not specified');
|
||||
}
|
||||
if (!is_array($parameters->parameters))
|
||||
{
|
||||
return error('Parameters are not specified');
|
||||
}
|
||||
if (in_array($parameters->resourceName, CallerLib::$RESOURCES_BLACK_LIST))
|
||||
{
|
||||
return error('You are trying to access to unauthorized resources');
|
||||
}
|
||||
|
||||
return success('Input data are valid');
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a model using the given path and name
|
||||
*
|
||||
* NOTE: the models automatically handle the permissions
|
||||
*/
|
||||
private function _loadModel($resourcePath, $resourceName)
|
||||
{
|
||||
$loaded = null;
|
||||
$result = null;
|
||||
|
||||
try
|
||||
{
|
||||
$loaded = $this->_ci->load->model($resourcePath.$resourceName);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
// Errors while loading the model
|
||||
$result = error('Errors while loading the model: '.$e->getMessage());
|
||||
}
|
||||
|
||||
if (!is_null($loaded))
|
||||
{
|
||||
$result = success($loaded);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a library using the given path and name
|
||||
*
|
||||
* The method 'library' of the class CI_Loader provided by CI has some limitations,
|
||||
* so to be able to check errors was used a workaround.
|
||||
* It consists in:
|
||||
* - Checking if the file (identified by parameters $resourcePath and $resourceName) exists
|
||||
* - If exists it will be loaded using the method 'file' from CI_Loader
|
||||
* - Checks if the loaded file contains a class identified by parameter $resourceName
|
||||
*
|
||||
* If one of the previous tests fails, it will be returned a null value
|
||||
*/
|
||||
private function _loadLibrary($resourcePath, $resourceName)
|
||||
{
|
||||
$loaded = null;
|
||||
|
||||
try
|
||||
{
|
||||
// Gets all the configured resources paths
|
||||
$packagePaths = $this->_ci->load->get_package_paths();
|
||||
// Looking for a file in every paths with the same name of the resource
|
||||
$found = null;
|
||||
for ($i = 0; $i < count($packagePaths) && is_null($found); $i++)
|
||||
{
|
||||
$file = $packagePaths[$i].CallerLib::LIBS_PATH.DIRECTORY_SEPARATOR.
|
||||
$resourcePath.$resourceName.CallerLib::LIB_FILE_EXTENSION;
|
||||
if (file_exists($file))
|
||||
{
|
||||
$found = $file;
|
||||
}
|
||||
}
|
||||
|
||||
// If the file was found
|
||||
if (!is_null($found))
|
||||
{
|
||||
// Load the file
|
||||
$loaded = $this->_ci->load->file($found);
|
||||
// If the resource is not present inside the file
|
||||
if (!class_exists($resourceName))
|
||||
{
|
||||
$loaded = null;
|
||||
// Same phrase error as load->model() provided by CI
|
||||
$result = error($found.' exists, but doesn\'t declare class '.$resourceName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$loaded = null;
|
||||
// Same phrase error as load->model() provided by CI
|
||||
$result = error('Unable to load the requested class: '.$resourceName);
|
||||
}
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
// Errors while loading the library
|
||||
$result = error('Errors while loading the library: '.$e->getMessage());
|
||||
}
|
||||
|
||||
if (!is_null($loaded))
|
||||
{
|
||||
$result = success($loaded);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls a method of a class with the given parameters and returns its result
|
||||
*
|
||||
* @param string $resourceName identifies the class name
|
||||
* @param string $function identifies the method name
|
||||
* @param array $parameters contains the parameters to be passed to the method
|
||||
*/
|
||||
private function _callThis($resourceName, $function, $parameters)
|
||||
{
|
||||
$result = null;
|
||||
|
||||
try
|
||||
{
|
||||
// Get informations about the function
|
||||
$reflectionMethod = new ReflectionMethod($resourceName, $function);
|
||||
// If the number of given parameters is greater or equal to the number of
|
||||
// parameters required by the function
|
||||
if (count($parameters) >= $reflectionMethod->getNumberOfRequiredParameters())
|
||||
{
|
||||
// If the function is static
|
||||
if ($reflectionMethod->isStatic() === true)
|
||||
{
|
||||
$classMethod = $resourceName.'::'.$function;
|
||||
}
|
||||
// If the function is not static
|
||||
else
|
||||
{
|
||||
$classMethod = array(new $resourceName(), $function);
|
||||
}
|
||||
|
||||
// If the resource's function is callable
|
||||
if (is_callable($classMethod))
|
||||
{
|
||||
// Call resource->function()
|
||||
// @ was applied to prevent really ugly and unmanageable errors
|
||||
$resultCall = @call_user_func_array($classMethod, $parameters);
|
||||
// If errors occurred while running it
|
||||
// NOTE: if the called function via call_user_func_array returns a boolean set as false,
|
||||
// it will be recognized like a running error. A little bit tricky ;)
|
||||
if ($resultCall === false)
|
||||
{
|
||||
$result = error('Error running '.$resourceName.'->'.$function.'()');
|
||||
}
|
||||
// Returns the result of resource->function()
|
||||
else
|
||||
{
|
||||
$result = success($resultCall);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error($resourceName.'->'.$function.'() is not callable!');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = error(
|
||||
'Number of required parameters: '.$reflectionMethod->getNumberOfRequiredParameters().'. Given: '.count($parameters)
|
||||
);
|
||||
}
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$result = error($e->getMessage());
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -528,6 +528,14 @@ class FiltersLib
|
||||
return $applyFilters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads dataset by setting session variable to true
|
||||
*/
|
||||
public function reloadDataset()
|
||||
{
|
||||
$this->setSessionElement(self::SESSION_RELOAD_DATASET, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a filter (SQL where clause) to be applied to the current filter
|
||||
*/
|
||||
|
||||
@@ -1,102 +1,252 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Library usefull for logging!
|
||||
* This library can log using CodeIgniter log system (file system) or to database
|
||||
*/
|
||||
class LogLib
|
||||
{
|
||||
const DEBUG = 'debug';
|
||||
const ERROR = 'error';
|
||||
// Log levels
|
||||
const INFO = 'info';
|
||||
const DEBUG = 'debug';
|
||||
const WARNING = 'warning';
|
||||
const ERROR = 'error';
|
||||
|
||||
// Default debug trace levels
|
||||
const CLASS_INDEX = 3;
|
||||
const FUNCTION_INDEX = 3;
|
||||
const LINE_INDEX = 2;
|
||||
|
||||
const DB_EXECUTE_USER = 'LogLib'; // Default execute user
|
||||
|
||||
// Caller data names
|
||||
const CLASS_NAME = 'className';
|
||||
const FUNCTION_NAME = 'functionName';
|
||||
const CODE_LINE = 'codeLine';
|
||||
|
||||
// To format the log message prefix when logging to file system
|
||||
const CALLER_PREFIX = '[';
|
||||
const CALLER_POSTFIX = ']';
|
||||
const CLASS_POSTFIX = '->';
|
||||
const LINE_SEPARATOR = ':';
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
// CodeIgniter configuration log entry name and log debug value
|
||||
const CI_LOG_THRESHOLD_NAME = 'log_threshold';
|
||||
const CI_LOG_THRESHOLD_DEBUG = 2;
|
||||
|
||||
// LogLib parameters names
|
||||
const P_NAME_CLASS_INDEX = 'classIndex';
|
||||
const P_NAME_FUNCTION_INDEX = 'functionIndex';
|
||||
const P_NAME_LINE_INDEX = 'lineIndex';
|
||||
const P_NAME_DB_LOG_TYPE = 'dbLogType';
|
||||
const P_NAME_DB_EXECUTE_USER = 'dbExecuteUser';
|
||||
|
||||
// Properties used to retrieve caller data
|
||||
private $_classIndex;
|
||||
private $_functionIndex;
|
||||
private $_lineIndex;
|
||||
|
||||
// Properties used when logging to database
|
||||
private $_dbLogType;
|
||||
private $_dbExecuteUser;
|
||||
|
||||
/**
|
||||
* logDebug
|
||||
* Set properties to a default value or overwrites them with the given parameters
|
||||
*/
|
||||
public function __construct($params = null)
|
||||
{
|
||||
// Properties default values
|
||||
$this->_classIndex = self::CLASS_INDEX;
|
||||
$this->_functionIndex = self::FUNCTION_INDEX;
|
||||
$this->_lineIndex = self::LINE_INDEX;
|
||||
$this->_dbLogType = null;
|
||||
$this->_dbExecuteUser = self::DB_EXECUTE_USER;
|
||||
|
||||
// If parameters are given then overwrite the default values
|
||||
if (!isEmptyArray($params))
|
||||
{
|
||||
if (isset($params[self::P_NAME_CLASS_INDEX])) $this->_classIndex = $params[self::P_NAME_CLASS_INDEX];
|
||||
if (isset($params[self::P_NAME_FUNCTION_INDEX])) $this->_functionIndex = $params[self::P_NAME_FUNCTION_INDEX];
|
||||
if (isset($params[self::P_NAME_LINE_INDEX])) $this->_lineIndex = $params[self::P_NAME_LINE_INDEX];
|
||||
if (isset($params[self::P_NAME_DB_LOG_TYPE])) $this->_dbLogType = $params[self::P_NAME_DB_LOG_TYPE];
|
||||
if (isset($params[self::P_NAME_DB_EXECUTE_USER])) $this->_dbExecuteUser = $params[self::P_NAME_DB_EXECUTE_USER];
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
// Public methods based on CodeIgniter log system
|
||||
|
||||
/**
|
||||
* Writes a debug log to CodeIgniter log
|
||||
*/
|
||||
public function logDebug($message)
|
||||
{
|
||||
$this->_log(LogLib::DEBUG, $message);
|
||||
$this->_log(self::DEBUG, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* logInfo
|
||||
* Writes an info log to CodeIgniter log
|
||||
*/
|
||||
public function logInfo($message)
|
||||
{
|
||||
$this->_log(LogLib::INFO, $message);
|
||||
$this->_log(self::INFO, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* logError
|
||||
* Writes an error log to CodeIgniter log
|
||||
*/
|
||||
public function logError($message)
|
||||
{
|
||||
$this->_log(LogLib::ERROR, $message);
|
||||
$this->_log(self::ERROR, $message);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
// Public methods based on database
|
||||
|
||||
/**
|
||||
* Writes an info log to database
|
||||
*/
|
||||
public function logInfoDB($requestId, $data)
|
||||
{
|
||||
$this->_logDB(self::INFO, $requestId, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a debug log to database
|
||||
*/
|
||||
public function logDebugDB($requestId, $data)
|
||||
{
|
||||
$this->_logDB(self::DEBUG, $requestId, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes an warning log to database
|
||||
*/
|
||||
public function logWarningDB($requestId, $data)
|
||||
{
|
||||
$this->_logDB(self::WARNING, $requestId, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes an error log to database
|
||||
*/
|
||||
public function logErrorDB($requestId, $data)
|
||||
{
|
||||
$this->_logDB(self::ERROR, $requestId, $data);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* log
|
||||
* Writes using CodeIgniter log system (file system)
|
||||
*/
|
||||
private function _log($level, $message)
|
||||
{
|
||||
log_message($level, $this->_getCaller().$message);
|
||||
log_message($level, $this->_getPrefix($this->_getCaller()).$message);
|
||||
}
|
||||
|
||||
/**
|
||||
* _getCaller
|
||||
* Writes logs to database
|
||||
*/
|
||||
private function _logDB($level, $requestId, $data)
|
||||
{
|
||||
// If the _dbLogType parameter was not given when this library was loaded
|
||||
// NOTE: this message will be displayed only to the developer AND stops the execution
|
||||
if ($this->_dbLogType == null)
|
||||
{
|
||||
show_error('To log to database you need to specify the "'.self::P_NAME_DB_LOG_TYPE.'" parameter when the LogLib is loaded');
|
||||
}
|
||||
|
||||
$ci =& get_instance(); // get code igniter instance
|
||||
|
||||
// If only debug log is enabed then is possible to write a debug log, otherwise...
|
||||
if ($level == self::DEBUG && $ci->config->item(self::CI_LOG_THRESHOLD_NAME) != self::CI_LOG_THRESHOLD_DEBUG)
|
||||
{
|
||||
// ...do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
// Loads WebservicelogModel
|
||||
$ci->load->model('system/Webservicelog_model', 'WebservicelogModel');
|
||||
|
||||
// Get caller data
|
||||
$callerData = $this->_getCaller();
|
||||
|
||||
// Writes a log to database
|
||||
$ci->WebservicelogModel->insert(array(
|
||||
'webservicetyp_kurzbz' => $this->_dbLogType,
|
||||
'request_id' => $requestId,
|
||||
'beschreibung' => $this->_getDatabaseDescription($callerData),
|
||||
'request_data' => $data,
|
||||
'execute_user' => $this->_dbExecuteUser,
|
||||
'execute_time' => 'NOW()' // current time
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves caller's data
|
||||
*/
|
||||
private function _getCaller()
|
||||
{
|
||||
$classIndex = 3;
|
||||
$functionIndex = 3;
|
||||
$lineIndex = 2;
|
||||
$class = '';
|
||||
$function = '';
|
||||
$line = '';
|
||||
$backtrace_arr = debug_backtrace();
|
||||
if (isset($backtrace_arr[$classIndex]['class']) && $backtrace_arr[$classIndex]['class'] != '')
|
||||
|
||||
if (isset($backtrace_arr[$this->_classIndex]['class']) && $backtrace_arr[$this->_classIndex]['class'] != '')
|
||||
{
|
||||
$class = $backtrace_arr[$classIndex]['class'];
|
||||
$class = $backtrace_arr[$this->_classIndex]['class'];
|
||||
}
|
||||
|
||||
if (isset($backtrace_arr[$functionIndex]['function']) && $backtrace_arr[$functionIndex]['function'] != '')
|
||||
if (isset($backtrace_arr[$this->_functionIndex]['function']) && $backtrace_arr[$this->_functionIndex]['function'] != '')
|
||||
{
|
||||
$function = $backtrace_arr[$functionIndex]['function'];
|
||||
$function = $backtrace_arr[$this->_functionIndex]['function'];
|
||||
}
|
||||
|
||||
if (isset($backtrace_arr[$lineIndex]['line']) && $backtrace_arr[$lineIndex]['line'] != '')
|
||||
if (isset($backtrace_arr[$this->_lineIndex]['line']) && $backtrace_arr[$this->_lineIndex]['line'] != '')
|
||||
{
|
||||
$line = $backtrace_arr[$lineIndex]['line'];
|
||||
$line = $backtrace_arr[$this->_lineIndex]['line'];
|
||||
}
|
||||
|
||||
return $this->_format($class, $function, $line);
|
||||
return array(
|
||||
self::CLASS_NAME => $class,
|
||||
self::FUNCTION_NAME => $function,
|
||||
self::CODE_LINE => $line
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* format
|
||||
* Formats the log message prefix (file system based)
|
||||
*/
|
||||
private function _format($class, $function, $line)
|
||||
private function _getPrefix($callerData)
|
||||
{
|
||||
$formatted = LogLib::CALLER_PREFIX;
|
||||
$formatted = self::CALLER_PREFIX;
|
||||
|
||||
if (!is_null($class) && $class != '')
|
||||
if (!isEmptyString($callerData[self::CLASS_NAME]))
|
||||
{
|
||||
$formatted .= $class.LogLib::CLASS_POSTFIX;
|
||||
$formatted .= $callerData[self::CLASS_NAME].self::CLASS_POSTFIX;
|
||||
}
|
||||
|
||||
$formatted .= $function.LogLib::LINE_SEPARATOR.$line.LogLib::CALLER_POSTFIX.' ';
|
||||
$formatted .= $callerData[self::FUNCTION_NAME].self::LINE_SEPARATOR.$callerData[self::CODE_LINE].self::CALLER_POSTFIX.' ';
|
||||
|
||||
return $formatted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats the database description for a log
|
||||
*/
|
||||
private function _getDatabaseDescription($callerData)
|
||||
{
|
||||
$formatted = $callerData[self::FUNCTION_NAME].self::LINE_SEPARATOR.$callerData[self::CODE_LINE];
|
||||
|
||||
if (!isEmptyString($callerData[self::CLASS_NAME]))
|
||||
{
|
||||
$formatted = $callerData[self::CLASS_NAME].self::CLASS_POSTFIX.$formatted;
|
||||
}
|
||||
|
||||
return $formatted;
|
||||
}
|
||||
|
||||
@@ -1,466 +0,0 @@
|
||||
<?php
|
||||
|
||||
if (! defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
/**
|
||||
* Utility class to be used in the database migration process
|
||||
*/
|
||||
class MigrationLib extends CI_Migration
|
||||
{
|
||||
/**
|
||||
* Object initialization
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Loads EPrintfLib
|
||||
$this->load->library('EPrintfLib');
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a column exists in a table and schema
|
||||
*/
|
||||
private function columnExists($name, $schema, $table)
|
||||
{
|
||||
$query = sprintf("SELECT %s FROM %s.%s LIMIT 1", $name, $schema, $table);
|
||||
|
||||
if (@$this->db->simple_query($query))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Print an info about the starting of method up
|
||||
*/
|
||||
protected function startUP()
|
||||
{
|
||||
$this->eprintflib->printInfo(
|
||||
sprintf("%s Start method up of class %s %s", EPrintfLib::SEPARATOR, get_called_class(), EPrintfLib::SEPARATOR)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print an info about the ending of method up
|
||||
*/
|
||||
protected function endUP()
|
||||
{
|
||||
$this->eprintflib->printInfo(
|
||||
sprintf("%s End method up of class %s %s", EPrintfLib::SEPARATOR, get_called_class(), EPrintfLib::SEPARATOR)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print an info about the starting of method down
|
||||
*/
|
||||
protected function startDown()
|
||||
{
|
||||
$this->eprintflib->printInfo(
|
||||
sprintf("%s Start method down of class %s %s", EPrintfLib::SEPARATOR, get_called_class(), EPrintfLib::SEPARATOR)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print an info about the ending of method down
|
||||
*/
|
||||
protected function endDown()
|
||||
{
|
||||
$this->eprintflib->printInfo(
|
||||
sprintf("%s End method down of class %s %s", EPrintfLib::SEPARATOR, get_called_class(), EPrintfLib::SEPARATOR)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a column, with attributes, to a table and schema
|
||||
*/
|
||||
protected function addColumn($schema, $table, $fields)
|
||||
{
|
||||
foreach ($fields as $name => $definition)
|
||||
{
|
||||
if (!$this->columnExists($name, $schema, $table))
|
||||
{
|
||||
if ($this->dbforge->add_column($schema.'.'.$table, array($name => $definition)))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Column %s.%s.%s of type %s added", $schema, $table, $name, $definition["type"]));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Error while adding column %s.%s.%s of type %s", $schema, $table, $name, $definition["type"]));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printInfo(sprintf("Column %s.%s.%s already exists", $schema, $table, $name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifies a column, and its attributes, of a table and schema
|
||||
*/
|
||||
protected function modifyColumn($schema, $table, $fields)
|
||||
{
|
||||
foreach ($fields as $name => $definition)
|
||||
{
|
||||
if ($this->columnExists($name, $schema, $table))
|
||||
{
|
||||
if ($this->dbforge->modify_column($schema.'.'.$table, array($name => $definition)))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Column %s.%s.%s has been modified", $schema, $table, $name));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Error while modifying column %s.%s.%s", $schema, $table, $name));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printInfo(sprintf("Column %s.%s.%s doesn't exist", $schema, $table, $name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Drops a column from a table and schema
|
||||
*/
|
||||
protected function dropColumn($schema, $table, $field)
|
||||
{
|
||||
if ($this->columnExists($field, $schema, $table))
|
||||
{
|
||||
if ($this->dbforge->drop_column($schema.'.'.$table, $field))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Column %s.%s.%s has been dropped", $schema, $table, $field));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Error while dropping column %s.%s.%s", $schema, $table, $field));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printInfo(sprintf("Column %s.%s.%s doesn't exist", $schema, $table, $field));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a column as primary key of a table and schema
|
||||
*/
|
||||
protected function addPrimaryKey($schema, $table, $name, $fields)
|
||||
{
|
||||
$stringFields = null;
|
||||
|
||||
if (is_array($fields))
|
||||
{
|
||||
if (count($fields) > 0)
|
||||
{
|
||||
$stringFields = "";
|
||||
for ($i = 0; $i < count($fields); $i++)
|
||||
{
|
||||
$stringFields .= $fields[$i];
|
||||
if ($i != count($fields) - 1)
|
||||
{
|
||||
$stringFields .= ", ";
|
||||
}
|
||||
}
|
||||
$query = sprintf("ALTER TABLE %s.%s ADD CONSTRAINT %s PRIMARY KEY (%s)", $schema, $table, $name, $stringFields);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = sprintf("ALTER TABLE %s.%s ADD CONSTRAINT %s PRIMARY KEY (%s)", $schema, $table, $name, $fields);
|
||||
}
|
||||
|
||||
if (@$this->db->simple_query($query))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Added primary key %s on table %s.%s", $name, $schema, $table));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Adding primary key %s on table %s.%s", $name, $schema, $table));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a column as foreign key of a table and schema
|
||||
*/
|
||||
protected function addForeingKey($schema, $table, $name, $field, $schemaDest, $tableDest, $fieldDest, $attributes)
|
||||
{
|
||||
$query = sprintf(
|
||||
"ALTER TABLE %s.%s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s.%s (%s) %s",
|
||||
$schema,
|
||||
$table,
|
||||
$name,
|
||||
$field,
|
||||
$schemaDest,
|
||||
$tableDest,
|
||||
$fieldDest,
|
||||
$attributes
|
||||
);
|
||||
|
||||
if (@$this->db->simple_query($query))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Added foreign key %s on table %s.%s", $name, $schema, $table));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Adding foreign key %s on table %s.%s", $name, $schema, $table));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a column as unique key of a table and schema
|
||||
*/
|
||||
protected function addUniqueKey($schema, $table, $name, $fields)
|
||||
{
|
||||
$stringFields = null;
|
||||
|
||||
if (is_array($fields))
|
||||
{
|
||||
if (count($fields) > 0)
|
||||
{
|
||||
$stringFields = "";
|
||||
for ($i = 0; $i < count($fields); $i++)
|
||||
{
|
||||
$stringFields .= $fields[$i];
|
||||
if ($i != count($fields) - 1)
|
||||
{
|
||||
$stringFields .= ", ";
|
||||
}
|
||||
}
|
||||
$query = sprintf("CREATE UNIQUE INDEX %s ON %s.%s (%s)", $name, $schema, $table, $stringFields);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = sprintf("CREATE UNIQUE INDEX %s ON %s.%s (%s)", $name, $schema, $table, $fields);
|
||||
}
|
||||
|
||||
if (@$this->db->simple_query($query))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Added unique key %s on table %s.%s", $name, $schema, $table));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Adding unique key %s on table %s.%s", $name, $schema, $table));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Grants permissions to a user on a table and schema
|
||||
*/
|
||||
protected function grantTable($permissions, $schema, $table, $user)
|
||||
{
|
||||
$stringPermission = null;
|
||||
|
||||
if (is_array($permissions))
|
||||
{
|
||||
if (count($permissions) > 0)
|
||||
{
|
||||
$stringPermission = "";
|
||||
for ($i = 0; $i < count($permissions); $i++)
|
||||
{
|
||||
$stringPermission .= $permissions[$i];
|
||||
if ($i != count($permissions) - 1)
|
||||
{
|
||||
$stringPermission .= ", ";
|
||||
}
|
||||
}
|
||||
$query = sprintf("GRANT %s ON TABLE %s.%s TO %s", $stringPermission, $schema, $table, $user);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = sprintf("GRANT %s ON TABLE %s.%s TO %s", $permissions, $schema, $table, $user);
|
||||
}
|
||||
|
||||
if (@$this->db->simple_query($query))
|
||||
{
|
||||
$this->eprintflib->printMessage(
|
||||
sprintf(
|
||||
"Granted permissions %s on table %s.%s to user %s",
|
||||
is_null($stringPermission) ? $permissions : $stringPermission,
|
||||
$schema,
|
||||
$table,
|
||||
$user
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(
|
||||
sprintf(
|
||||
"Granting permissions %s on table %s.%s to user %s",
|
||||
is_null($stringPermission) ? $permissions : $stringPermission,
|
||||
$schema,
|
||||
$table,
|
||||
$user
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a table in a schema with columns
|
||||
*/
|
||||
protected function createTable($schema, $table, $fields)
|
||||
{
|
||||
$this->dbforge->add_field($fields);
|
||||
|
||||
if ($this->dbforge->create_table($schema.'.'.$table, true))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Table %s.%s created or existing", $schema, $table));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Creating table %s.%s", $schema, $table));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Drops a table from a schema
|
||||
*/
|
||||
protected function dropTable($schema, $table)
|
||||
{
|
||||
if ($this->dbforge->drop_table($schema.".".$table))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Table %s.%s has been dropped", $schema, $table));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Dropping table %s.%s", $schema, $table));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes a sequence with the max value of a column
|
||||
*/
|
||||
protected function initializeSequence($schemaSrc, $sequence, $schemaDst, $table, $field)
|
||||
{
|
||||
$query = sprintf("SELECT SETVAL('%s.%s', (SELECT MAX(%s) FROM %s.%s))", $schemaSrc, $sequence, $field, $schemaDst, $table);
|
||||
|
||||
if (@$this->db->simple_query($query))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Sequence %s.%s has been initialized", $schemaSrc, $sequence));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Initializing sequence %s.%s", $schemaSrc, $sequence));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add comment to a column
|
||||
*/
|
||||
protected function addCommentToColumn($schema, $table, $field, $comment)
|
||||
{
|
||||
$query = sprintf("COMMENT ON COLUMN %s.%s.%s IS ?", $schema, $table, $field);
|
||||
|
||||
if (@$this->db->query($query, array($comment)))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Comment added to %s.%s.%s", $schema, $table, $field));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Error while adding comment to %s.%s.%s", $schema, $table, $field));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add comment to a table
|
||||
*/
|
||||
protected function addCommentToTable($schema, $table, $comment)
|
||||
{
|
||||
$query = sprintf("COMMENT ON TABLE %s.%s IS ?", $schema, $table, $field);
|
||||
|
||||
if (@$this->db->query($query, array($comment)))
|
||||
{
|
||||
$this->eprintflib->printMessage(sprintf("Comment added to %s.%s", $schema, $table));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(sprintf("Error while adding comment to %s.%s", $schema, $table));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Grants permissions to a user on a sequence
|
||||
*/
|
||||
protected function grantSequence($permissions, $schema, $sequence, $user)
|
||||
{
|
||||
$stringPermission = null;
|
||||
|
||||
if (is_array($permissions))
|
||||
{
|
||||
if (count($permissions) > 0)
|
||||
{
|
||||
$stringPermission = "";
|
||||
for ($i = 0; $i < count($permissions); $i++)
|
||||
{
|
||||
$stringPermission .= $permissions[$i];
|
||||
if ($i != count($permissions) - 1)
|
||||
{
|
||||
$stringPermission .= ", ";
|
||||
}
|
||||
}
|
||||
$query = sprintf("GRANT %s ON SEQUENCE %s.%s TO %s", $stringPermission, $schema, $sequence, $user);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$query = sprintf("GRANT %s ON SEQUENCE %s.%s TO %s", $permissions, $schema, $sequence, $user);
|
||||
}
|
||||
|
||||
if (@$this->db->simple_query($query))
|
||||
{
|
||||
$this->eprintflib->printMessage(
|
||||
sprintf(
|
||||
"Granted permissions %s on sequence %s.%s to user %s",
|
||||
is_null($stringPermission) ? $permissions : $stringPermission,
|
||||
$schema,
|
||||
$sequence,
|
||||
$user
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError(
|
||||
sprintf(
|
||||
"Granting permissions %s on sequence %s.%s to user %s",
|
||||
is_null($stringPermission) ? $permissions : $stringPermission,
|
||||
$schema,
|
||||
$sequence,
|
||||
$user
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the given query
|
||||
*/
|
||||
protected function execQuery($query)
|
||||
{
|
||||
if (! @$this->db->simple_query($query))
|
||||
{
|
||||
$error = $this->db->error();
|
||||
|
||||
if (is_array($error) && isset($error["message"]))
|
||||
{
|
||||
$this->eprintflib->printError($error["message"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->eprintflib->printError("Error while executing a query");
|
||||
}
|
||||
}
|
||||
|
||||
$this->eprintflib->printInfo(
|
||||
"Query correctly executed: ".
|
||||
substr(preg_replace("/\s+/", " ", trim($query)), 0, EPrintfLib::PRINT_QUERY_LEN).
|
||||
(strlen($query) > EPrintfLib::PRINT_QUERY_LEN ? "..." : "")
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Class VariableLib
|
||||
* Provides functionality for managing uservariables for currently logged in user.
|
||||
* Preloads variables for a user, so variables can be retrieved from views without getting uid again.
|
||||
*/
|
||||
class VariableLib
|
||||
{
|
||||
private $_variables; // Contains the retrieved variables
|
||||
|
||||
/**
|
||||
* VariableLib constructor.
|
||||
* Loads variable of logged in user.
|
||||
* @param $loggeduid
|
||||
*/
|
||||
public function __construct($loggeduid)
|
||||
{
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
$this->_variables = null;
|
||||
|
||||
$this->_ci->load->model('system/Variable_model', 'VariableModel');
|
||||
$this->_ci->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
|
||||
|
||||
if (isset($loggeduid['uid']) && !isEmptyString($loggeduid['uid']))
|
||||
$this->_setVariables($loggeduid['uid']);
|
||||
else
|
||||
{
|
||||
show_error('uid of logged user not passed!');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an already loaded user variable by variable name.
|
||||
* @param $name
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function getVar($name)
|
||||
{
|
||||
return isset($this->_variables[$name]) ? $this->_variables[$name] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes variables having Studiensemester as value. Sets variable value to next or previous Semester.
|
||||
* @param $uid variable is set for this user
|
||||
* @param $name variable name
|
||||
* @param $change if positive, variable value is set to next semester, negative - previous semester
|
||||
* @return array if change was successfull, uid and variable name. Infotext otherwise.
|
||||
*/
|
||||
public function changeStudiensemesterVar($uid, $name, $change)
|
||||
{
|
||||
$result = error('error when setting variable!');
|
||||
$notchangedtext = "Studiensemester variable not changed.";
|
||||
|
||||
if (!isEmptyString($uid) && !isEmptyString($name) && is_numeric($change))
|
||||
{
|
||||
$change = (int) $change;
|
||||
$varres = $this->_ci->VariableModel->getVariables($uid, array($name));
|
||||
|
||||
if (isSuccess($varres))
|
||||
{
|
||||
if (hasData($varres))
|
||||
{
|
||||
$currStudiensemester = getData($varres);
|
||||
|
||||
if ($change === 0)
|
||||
{
|
||||
$result = success($notchangedtext);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($change > 0)
|
||||
{
|
||||
$changedsem = $this->_ci->StudiensemesterModel->getNextFrom($currStudiensemester[$name]);
|
||||
}
|
||||
elseif ($change < 0)
|
||||
{
|
||||
$changedsem = $this->_ci->StudiensemesterModel->getPreviousFrom($currStudiensemester[$name]);
|
||||
}
|
||||
|
||||
if (hasData($changedsem))
|
||||
{
|
||||
$changedsem = getData($changedsem);
|
||||
|
||||
$result = $this->_ci->VariableModel->setVariable($uid, $name, $changedsem[0]->studiensemester_kurzbz);
|
||||
//update property
|
||||
$this->_setVariable($uid, $name);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = success($notchangedtext);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* "Refreshes" variable value with given name by retrieving current value from db and saving it.
|
||||
* @param $uid
|
||||
* @param $name
|
||||
*/
|
||||
private function _setVariable($uid, $name)
|
||||
{
|
||||
$variable = $this->_ci->VariableModel->getVariables($uid, array($name));
|
||||
|
||||
if (hasData($variable))
|
||||
{
|
||||
$variable = getData($variable);
|
||||
$this->_variables[$name] = $variable[$name];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* "Refreshes" all variable values by retrieving current values from db and saving them.
|
||||
* @param $uid
|
||||
*/
|
||||
private function _setVariables($uid)
|
||||
{
|
||||
$variables = $this->_ci->VariableModel->getVariables($uid);
|
||||
if (hasData($variables))
|
||||
{
|
||||
$this->_variables = getData($variables);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
class Bisiozweck_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'bis.tbl_bisio_zweck';
|
||||
$this->pk = array('bisio_id', 'zweck_code');
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,8 @@ class Prestudent_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_prestudent';
|
||||
$this->pk = 'prestudent_id';
|
||||
|
||||
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -208,7 +210,6 @@ class Prestudent_model extends DB_Model
|
||||
return error('prestudent could not be loaded');
|
||||
|
||||
//Prestudentstatus
|
||||
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
||||
|
||||
if ($lastStatus->error)
|
||||
@@ -310,8 +311,6 @@ class Prestudent_model extends DB_Model
|
||||
if (!hasData($prestudents))
|
||||
return $bewerbungen;
|
||||
|
||||
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
|
||||
|
||||
foreach ($prestudents->retval as $prestudent)
|
||||
{
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent->prestudent_id, $studiensemester_kurzbz);
|
||||
@@ -424,7 +423,6 @@ class Prestudent_model extends DB_Model
|
||||
if (!hasData($prestudent))
|
||||
return false;
|
||||
|
||||
$this->load->model('prestudentstatus_model', 'PrestudentstatusModel');
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id, null, 'Interessent');
|
||||
|
||||
if (!hasData($lastStatus))
|
||||
|
||||
@@ -98,8 +98,8 @@ class Lehreinheitgruppe_model extends DB_Model
|
||||
'semester' => $lvadata->semester,
|
||||
'bezeichnung' => $bezeichnung,
|
||||
'aktiv' => true,
|
||||
'mailgrp' => false,
|
||||
'sichtbar' => true,
|
||||
'mailgrp' => true,
|
||||
'sichtbar' => false,
|
||||
'generiert' => false,
|
||||
'insertamum' => date('Y-m-d H:i:s'),
|
||||
'insertvon' => $loggedInUser,
|
||||
|
||||
@@ -10,6 +10,9 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'lehre.tbl_lehrveranstaltung';
|
||||
$this->pk = 'lehrveranstaltung_id';
|
||||
|
||||
$this->load->model('organisation/studiengang_model', 'StudiengangModel');
|
||||
$this->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -22,8 +25,6 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
*/
|
||||
public function getLehrveranstaltungGroupNames($studiensemester_kurzbz, $ausbildungssemester = null, $studiengang_kz = null, $lehrveranstaltung_ids = null)
|
||||
{
|
||||
$this->load->model('organisation/studiengang_model', 'StudiengangModel');
|
||||
|
||||
$studiengang_kz_arr = array();
|
||||
$ausbildungssemester_arr = array();
|
||||
$lehrveranstaltung_id_arr = array();
|
||||
@@ -59,7 +60,6 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
|
||||
foreach ($studiengang_kz_arr as $studiengang_kz_item)
|
||||
{
|
||||
$result = $this->StudiensemesterModel->getAusbildungssemesterByStudiensemesterAndStudiengang($studiensemester_kurzbz, $studiengang_kz_item);
|
||||
@@ -214,8 +214,6 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
*/
|
||||
public function getLvsWithIncomingPlaces($studiensemester_kurzbz)
|
||||
{
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
|
||||
$studsemres = $this->StudiensemesterModel->load($studiensemester_kurzbz);
|
||||
|
||||
if (!hasData($studsemres))
|
||||
|
||||
@@ -19,7 +19,7 @@ class Studienplan_model extends DB_Model
|
||||
return $this->loadWhere(array("studiengang_kz" => $studiengang_kz));
|
||||
}
|
||||
|
||||
public function getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester = null, $orgform_kurzbz = null)
|
||||
public function getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester = null, $orgform_kurzbz = null, $sprache = null)
|
||||
{
|
||||
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
|
||||
$this->addJoin("lehre.tbl_studienplan_semester", "studienplan_id");
|
||||
@@ -40,6 +40,11 @@ class Studienplan_model extends DB_Model
|
||||
$whereArray["orgform_kurzbz"] = $orgform_kurzbz;
|
||||
}
|
||||
|
||||
if(!is_null($sprache))
|
||||
{
|
||||
$whereArray["tbl_studienplan.sprache"] = $sprache;
|
||||
}
|
||||
|
||||
return $this->StudienplanModel->loadWhere($whereArray);
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ class Studiensemester_model extends DB_Model
|
||||
start,
|
||||
ende
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE start > (
|
||||
WHERE start >= (
|
||||
SELECT ende
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = ?
|
||||
@@ -72,6 +72,26 @@ class Studiensemester_model extends DB_Model
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz));
|
||||
}
|
||||
|
||||
/**
|
||||
* getPreviousFrom
|
||||
*/
|
||||
public function getPreviousFrom($studiensemester_kurzbz)
|
||||
{
|
||||
$query = 'SELECT studiensemester_kurzbz,
|
||||
start,
|
||||
ende
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende <= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = ?
|
||||
)
|
||||
ORDER BY start DESC
|
||||
LIMIT 1';
|
||||
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz));
|
||||
}
|
||||
|
||||
/**
|
||||
* getNearest
|
||||
*/
|
||||
|
||||
@@ -10,6 +10,9 @@ class Person_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_person';
|
||||
$this->pk = 'person_id';
|
||||
|
||||
$this->load->model('person/kontakt_model', 'KontaktModel');
|
||||
$this->load->model('person/adresse_model', 'AdresseModel');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -162,9 +165,6 @@ class Person_model extends DB_Model
|
||||
if(count($person->retval) < 1)
|
||||
return success(null);
|
||||
|
||||
$this->load->model('person/kontakt_model', 'KontaktModel');
|
||||
$this->load->model('person/adresse_model', 'AdresseModel');
|
||||
|
||||
$this->KontaktModel->addDistinct();
|
||||
$this->KontaktModel->addSelect('kontakttyp, anmerkung, kontakt, zustellung');
|
||||
$this->KontaktModel->addOrder('kontakttyp');
|
||||
|
||||
@@ -0,0 +1,169 @@
|
||||
<?php
|
||||
|
||||
class FAS_UDF_model extends DB_Model
|
||||
{
|
||||
// String values of booleans
|
||||
const STRING_NULL = 'null';
|
||||
const STRING_TRUE = 'true';
|
||||
const STRING_FALSE = 'false';
|
||||
|
||||
const UDF_DROPDOWN_TYPE = 'dropdown';
|
||||
const UDF_MULTIPLEDROPDOWN_TYPE = 'multipledropdown';
|
||||
|
||||
/**
|
||||
* Methods to save data from FAS
|
||||
*/
|
||||
public function saveUDFs($udfs)
|
||||
{
|
||||
$result = error('No way man!');
|
||||
$resultPerson = success('person');
|
||||
$resultPrestudent = success('prestudent');
|
||||
|
||||
$person_id = null;
|
||||
if (isset($udfs['person_id'])) $person_id = $udfs['person_id'];
|
||||
unset($udfs['person_id']);
|
||||
|
||||
$prestudent_id = null;
|
||||
if (isset($udfs['prestudent_id'])) $prestudent_id = $udfs['prestudent_id'];
|
||||
unset($udfs['prestudent_id']);
|
||||
|
||||
$jsons = array();
|
||||
|
||||
//
|
||||
if (isset($person_id))
|
||||
{
|
||||
// Load model Person_model
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
|
||||
$result = $this->load(array('public', 'tbl_person'));
|
||||
if (isSuccess($result) && count($result->retval) == 1)
|
||||
{
|
||||
$jsons = json_decode($result->retval[0]->jsons);
|
||||
}
|
||||
|
||||
$udfs = $this->_fillMissingTextUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingChkboxUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingDropdownUDF($udfs, $jsons);
|
||||
|
||||
$resultPerson = $this->PersonModel->update($person_id, $udfs);
|
||||
}
|
||||
|
||||
//
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
// Load model Prestudent_model
|
||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
$result = $this->load(array('public', 'tbl_prestudent'));
|
||||
if (isSuccess($result) && count($result->retval) == 1)
|
||||
{
|
||||
$jsons = json_decode($result->retval[0]->jsons);
|
||||
}
|
||||
|
||||
$udfs = $this->_fillMissingTextUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingChkboxUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingDropdownUDF($udfs, $jsons);
|
||||
|
||||
$resultPrestudent = $this->PrestudentModel->update($prestudent_id, $udfs);
|
||||
}
|
||||
|
||||
if (isSuccess($resultPerson) && isSuccess($resultPrestudent))
|
||||
{
|
||||
$result = success(array($resultPerson->retval, $resultPrestudent->retval));
|
||||
}
|
||||
else if(isError($resultPerson))
|
||||
{
|
||||
$result = $resultPerson;
|
||||
}
|
||||
else if(isError($resultPrestudent))
|
||||
{
|
||||
$result = $resultPrestudent;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingChkboxUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingChkboxUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == UDFLib::CHKBOX_TYPE)
|
||||
{
|
||||
if (!isset($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_FALSE)
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = false;
|
||||
}
|
||||
else if ($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_TRUE)
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingChkboxUDF;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingDropdownUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingDropdownUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == UDF_model::UDF_DROPDOWN_TYPE
|
||||
|| $udfDescription->{UDFLib::TYPE} == UDF_model::UDF_MULTIPLEDROPDOWN_TYPE)
|
||||
{
|
||||
if (!isset($_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
else if($_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_NULL)
|
||||
{
|
||||
$_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingDropdownUDF;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingTextUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingTextUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == 'textarea'
|
||||
|| $udfDescription->{UDFLib::TYPE} == 'textfield')
|
||||
{
|
||||
if (!isset($_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
else if(trim($_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}]) == '')
|
||||
{
|
||||
$_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingTextUDF;
|
||||
}
|
||||
}
|
||||
@@ -2,14 +2,6 @@
|
||||
|
||||
class UDF_model extends DB_Model
|
||||
{
|
||||
// String values of booleans
|
||||
const STRING_NULL = 'null';
|
||||
const STRING_TRUE = 'true';
|
||||
const STRING_FALSE = 'false';
|
||||
|
||||
const UDF_DROPDOWN_TYPE = 'dropdown';
|
||||
const UDF_MULTIPLEDROPDOWN_TYPE = 'multipledropdown';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
@@ -38,164 +30,4 @@ class UDF_model extends DB_Model
|
||||
|
||||
return $udfResults;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
// These methods work only with the this version of FAS, not with the future versions
|
||||
|
||||
/**
|
||||
* Methods to save data from FAS
|
||||
*/
|
||||
public function saveUDFs($udfs)
|
||||
{
|
||||
$result = error('No way man!');
|
||||
$resultPerson = success('person');
|
||||
$resultPrestudent = success('prestudent');
|
||||
|
||||
$person_id = null;
|
||||
if (isset($udfs['person_id'])) $person_id = $udfs['person_id'];
|
||||
unset($udfs['person_id']);
|
||||
|
||||
$prestudent_id = null;
|
||||
if (isset($udfs['prestudent_id'])) $prestudent_id = $udfs['prestudent_id'];
|
||||
unset($udfs['prestudent_id']);
|
||||
|
||||
$jsons = array();
|
||||
|
||||
//
|
||||
if (isset($person_id))
|
||||
{
|
||||
// Load model Person_model
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
|
||||
$result = $this->load(array('public', 'tbl_person'));
|
||||
if (isSuccess($result) && count($result->retval) == 1)
|
||||
{
|
||||
$jsons = json_decode($result->retval[0]->jsons);
|
||||
}
|
||||
|
||||
$udfs = $this->_fillMissingTextUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingChkboxUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingDropdownUDF($udfs, $jsons);
|
||||
|
||||
$resultPerson = $this->PersonModel->update($person_id, $udfs);
|
||||
}
|
||||
|
||||
//
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
// Load model Prestudent_model
|
||||
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
$result = $this->load(array('public', 'tbl_prestudent'));
|
||||
if (isSuccess($result) && count($result->retval) == 1)
|
||||
{
|
||||
$jsons = json_decode($result->retval[0]->jsons);
|
||||
}
|
||||
|
||||
$udfs = $this->_fillMissingTextUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingChkboxUDF($udfs, $jsons);
|
||||
$udfs = $this->_fillMissingDropdownUDF($udfs, $jsons);
|
||||
|
||||
$resultPrestudent = $this->PrestudentModel->update($prestudent_id, $udfs);
|
||||
}
|
||||
|
||||
if (isSuccess($resultPerson) && isSuccess($resultPrestudent))
|
||||
{
|
||||
$result = success(array($resultPerson->retval, $resultPrestudent->retval));
|
||||
}
|
||||
else if(isError($resultPerson))
|
||||
{
|
||||
$result = $resultPerson;
|
||||
}
|
||||
else if(isError($resultPrestudent))
|
||||
{
|
||||
$result = $resultPrestudent;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingChkboxUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingChkboxUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == UDFLib::CHKBOX_TYPE)
|
||||
{
|
||||
if (!isset($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_FALSE)
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = false;
|
||||
}
|
||||
else if ($_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_TRUE)
|
||||
{
|
||||
$_fillMissingChkboxUDF[$udfDescription->{UDFLib::NAME}] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingChkboxUDF;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingDropdownUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingDropdownUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == UDF_model::UDF_DROPDOWN_TYPE
|
||||
|| $udfDescription->{UDFLib::TYPE} == UDF_model::UDF_MULTIPLEDROPDOWN_TYPE)
|
||||
{
|
||||
if (!isset($_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
else if($_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] == UDF_model::STRING_NULL)
|
||||
{
|
||||
$_fillMissingDropdownUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingDropdownUDF;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _fillMissingTextUDF($udfs, $jsons)
|
||||
{
|
||||
$_fillMissingTextUDF = $udfs;
|
||||
|
||||
foreach($jsons as $udfDescription)
|
||||
{
|
||||
if ($udfDescription->{UDFLib::TYPE} == 'textarea'
|
||||
|| $udfDescription->{UDFLib::TYPE} == 'textfield')
|
||||
{
|
||||
if (!isset($_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}]))
|
||||
{
|
||||
$_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
else if(trim($_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}]) == '')
|
||||
{
|
||||
$_fillMissingTextUDF[$udfDescription->{UDFLib::NAME}] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $_fillMissingTextUDF;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,5 +10,92 @@ class Variable_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_variable';
|
||||
$this->pk = array('uid', 'name');
|
||||
$this->hasSequence = false;
|
||||
|
||||
$this->load->model('system/Variablenname_model', 'VariablennameModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets user variables and values for a uid.
|
||||
* If no value found in tbl_variable, default as defined in variablename_model is retrieved.
|
||||
* @param $uid
|
||||
* @param null $names optionally get only certain variables
|
||||
* @return array
|
||||
*/
|
||||
public function getVariables($uid, $names = null)
|
||||
{
|
||||
if (isEmptyString($uid) || (isset($names) && !is_array($names)))
|
||||
$result = error('wrong parameters passed');
|
||||
else
|
||||
{
|
||||
$vardata = array();
|
||||
|
||||
$qry = "SELECT name, wert FROM public.tbl_variable WHERE uid = ?";
|
||||
|
||||
if (isset($names))
|
||||
{
|
||||
$qry .= " AND name IN ('".implode(',', $names)."')";
|
||||
}
|
||||
$qry .= ";";
|
||||
|
||||
$varresults = $this->execQuery($qry, array($uid));
|
||||
|
||||
if (hasData($varresults))
|
||||
{
|
||||
$varresults = getData($varresults);
|
||||
foreach ($varresults as $varresult)
|
||||
{
|
||||
if (isset($varresult->wert))
|
||||
$vardata[$varresult->name] = $varresult->wert;
|
||||
}
|
||||
}
|
||||
|
||||
$vardefaults = $this->VariablennameModel->getDefaults($names);
|
||||
|
||||
if (hasData($vardefaults))
|
||||
{
|
||||
$vardefaults = getData($vardefaults);
|
||||
|
||||
|
||||
foreach ($vardefaults as $vardefault)
|
||||
{
|
||||
if (!isset($vardata[$vardefault->name]) && isset($vardefault->defaultwert))
|
||||
{
|
||||
$vardata[$vardefault->name] = $vardefault->defaultwert;
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = success($vardata);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a variable value for a uid. Adds new entry if not present, updates entry otherwise.
|
||||
* @param $uid
|
||||
* @param $name
|
||||
* @param $wert
|
||||
* @return array
|
||||
*/
|
||||
public function setVariable($uid, $name, $wert)
|
||||
{
|
||||
$result = error('error when setting variable!');
|
||||
if (!isEmptyString($uid) && !isEmptyString($name) && !isEmptyString($wert))
|
||||
{
|
||||
$varres = $this->loadWhere(array('uid' => $uid, 'name' => $name));
|
||||
|
||||
if (isSuccess($varres))
|
||||
{
|
||||
if (hasData($varres))
|
||||
{
|
||||
$result = $this->VariableModel->update(array('uid' => $uid, 'name' => $name), array('wert' => $wert));
|
||||
}
|
||||
else
|
||||
$result = $this->VariableModel->insert(array('uid' => $uid, 'name' => $name, 'wert' => $wert));
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
class Variablenname_model extends DB_Model
|
||||
{
|
||||
// Contains SQL queries retrieving default variable values if no default is set.
|
||||
private $_dynamic_defaults = array(
|
||||
'semester_aktuell' => 'SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1',
|
||||
'infocenter_studiensemester' => 'SELECT studiensemester_kurzbz FROM (
|
||||
SELECT DISTINCT ON (studienjahr_kurzbz) start, studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
ORDER BY studienjahr_kurzbz, start
|
||||
) sem
|
||||
WHERE start > now()
|
||||
LIMIT 1;'
|
||||
);
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_variablenname';
|
||||
$this->pk ='name';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets defaults for user variables.
|
||||
* If no default value present in table, SQL can be executed for retrieving the value.
|
||||
* @param null $names optionally get only defaults for certain variables
|
||||
* @return array
|
||||
*/
|
||||
public function getDefaults($names = null)
|
||||
{
|
||||
$defaults = array();
|
||||
|
||||
$qry = "SELECT name, defaultwert FROM public.tbl_variablenname";
|
||||
|
||||
if (isset($names) && is_array($names))
|
||||
{
|
||||
$qry .= " WHERE name IN ('".implode(',', $names)."')";
|
||||
}
|
||||
$qry .= ";";
|
||||
|
||||
$defaultsres = $this->execQuery($qry);
|
||||
|
||||
if (hasData($defaultsres))
|
||||
{
|
||||
$defaults = getData($defaultsres);
|
||||
|
||||
foreach ($defaults as $default)
|
||||
{
|
||||
if (!isset($default->defaultwert))
|
||||
{
|
||||
if (isset($this->_dynamic_defaults[$default->name]))
|
||||
{
|
||||
$dyndefault = $this->execQuery($this->_dynamic_defaults[$default->name]);
|
||||
if (hasData($dyndefault))
|
||||
{
|
||||
$dyndefault = getData($dyndefault);
|
||||
|
||||
if (count($dyndefault) === 1)
|
||||
{
|
||||
foreach ($dyndefault[0] as $value)
|
||||
{
|
||||
$default->defaultwert = $value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return success($defaults);
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
<?php
|
||||
|
||||
class Webservicelog_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->dbTable = 'system.tbl_webservicelog';
|
||||
$this->pk = 'webservicelog_id';
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
}
|
||||
}
|
||||
?>
|
||||
<form action="<?php echo site_url('system/UDF/saveUDF'); ?>" method="POST">
|
||||
<form action="<?php echo site_url('system/FAS_UDF/saveUDF'); ?>" method="POST">
|
||||
|
||||
<div class="div-table">
|
||||
<div class="div-row">
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -11,16 +11,9 @@
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$ADDITIONAL_STG = '10021,10027';
|
||||
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
WITH currentOrNextStudiensemester AS (
|
||||
SELECT ss.studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester ss
|
||||
WHERE ss.ende > NOW()
|
||||
ORDER BY ss.ende
|
||||
LIMIT 3
|
||||
)
|
||||
|
||||
SELECT
|
||||
p.person_id AS "PersonId",
|
||||
p.vorname AS "Vorname",
|
||||
@@ -100,13 +93,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = pss.prestudent_id
|
||||
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
@@ -125,13 +119,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = pss.prestudent_id
|
||||
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "AnzahlAbgeschickt",
|
||||
@@ -149,13 +144,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = pss.prestudent_id
|
||||
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgAbgeschickt",
|
||||
@@ -173,13 +169,15 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = pss.prestudent_id
|
||||
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgNichtAbgeschickt",
|
||||
@@ -196,13 +194,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.start >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = pss.prestudent_id
|
||||
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgAktiv",
|
||||
@@ -252,7 +251,7 @@
|
||||
WHERE spss.prestudent_id = sps.prestudent_id
|
||||
AND spss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND spss.bestaetigtam IS NULL
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
)
|
||||
)
|
||||
ORDER BY "LastAction" ASC';
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
$REJECTED_STATUS = '\'Abgewiesener\'';
|
||||
$ADDITIONAL_STG = '10021,10027,10002';
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -58,7 +59,7 @@
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.bestaetigtam is not null
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "Studiensemester",
|
||||
@@ -74,7 +75,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "SendDate",
|
||||
@@ -90,7 +91,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
@@ -112,7 +113,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "StgAbgeschickt",
|
||||
(
|
||||
@@ -128,13 +129,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = pss.prestudent_id
|
||||
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgAktiv",
|
||||
@@ -145,7 +147,7 @@
|
||||
LEFT JOIN public.tbl_status_grund sg USING(statusgrund_id)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "Statusgrund",
|
||||
(
|
||||
@@ -162,7 +164,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestAngetreten",
|
||||
@@ -179,7 +181,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.studiensemester_kurzbz = \'WS2019\')
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestApplied",
|
||||
@@ -215,7 +217,7 @@
|
||||
AND pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND pss.bestaetigtam IS NOT NULL
|
||||
AND pss.bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
|
||||
$ADDITIONAL_STG = '10021,10027';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -46,7 +47,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "Studiensemester",
|
||||
@@ -62,7 +63,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "SendDate",
|
||||
@@ -78,7 +79,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "AnzahlAbgeschickt",
|
||||
(
|
||||
@@ -93,7 +94,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "StgAbgeschickt",
|
||||
(
|
||||
@@ -103,7 +104,7 @@
|
||||
LEFT JOIN public.tbl_status_grund sg USING(statusgrund_id)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "Statusgrund",
|
||||
(
|
||||
@@ -120,7 +121,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestAngetreten",
|
||||
@@ -137,7 +138,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestApplied",
|
||||
@@ -155,7 +156,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestDatum",
|
||||
@@ -191,7 +192,7 @@
|
||||
AND pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND pss.bestaetigtam IS NOT NULL
|
||||
AND pss.bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
)
|
||||
)
|
||||
ORDER BY "LastAction" DESC';
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Logs viewer',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customJSs' => array('public/js/bootstrapper.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
JobsViewer
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/logs/logsViewerData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => '
|
||||
SELECT wsl.webservicelog_id AS "LogId",
|
||||
wsl.request_id AS "RequestId",
|
||||
wsl.execute_time AS "ExecutionTime",
|
||||
wsl.execute_user AS "ExecutedBy",
|
||||
wsl.beschreibung AS "Description",
|
||||
wsl.request_data AS "Data",
|
||||
wsl.webservicetyp_kurzbz AS "WebserviceType"
|
||||
FROM system.tbl_webservicelog wsl
|
||||
ORDER BY wsl.execute_time DESC
|
||||
',
|
||||
'requiredPermissions' => 'admin',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'reloadDataset' => ($this->input->get('reloadDataset') == 'true' ? true : false),
|
||||
'columnsAliases' => array(
|
||||
'Log id',
|
||||
'Request id',
|
||||
'Execution time',
|
||||
'Executed by',
|
||||
'Producer',
|
||||
'Data',
|
||||
'Webservice type'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->ExecutionTime = date_format(date_create($datasetRaw->ExecutionTime), 'd.m.Y H:i:s');
|
||||
|
||||
return $datasetRaw;
|
||||
},
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
$mark = '';
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob error')
|
||||
{
|
||||
$mark = 'text-red';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob info')
|
||||
{
|
||||
$mark = 'text-green';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob warning')
|
||||
{
|
||||
$mark = 'text-orange';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob debug')
|
||||
{
|
||||
$mark = 'text-info';
|
||||
}
|
||||
|
||||
return $mark;
|
||||
}
|
||||
);
|
||||
|
||||
$filterWidgetArray['app'] = 'core';
|
||||
$filterWidgetArray['datasetName'] = 'logs';
|
||||
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
@@ -1974,6 +1974,9 @@ function personen_id_read_mitarbeiter_oder_student($db,$person_id)
|
||||
*/
|
||||
function read_create_html_news($db,$fachbereich_kurzbz,$studiengang_kz,$semester)
|
||||
{
|
||||
if(defined('CIS_INFOSCREEN_NEWS_ANZEIGEN') && CIS_INFOSCREEN_NEWS_ANZEIGEN==false)
|
||||
return '';
|
||||
|
||||
// ------------------------------------------------------------------------------------------
|
||||
// Lesen Newstickerzeilen
|
||||
// ------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -314,6 +314,24 @@ switch($work)
|
||||
echo $coodletermin->errormsg;
|
||||
|
||||
break;
|
||||
|
||||
case 'countTermine':
|
||||
if(isset($_POST['coodle_id']))
|
||||
$coodle_id = $_POST['coodle_id'];
|
||||
else
|
||||
die('CoodleID fehlt');
|
||||
|
||||
$coodle = new coodle();
|
||||
if ($coodle->getTermine($coodle_id))
|
||||
{
|
||||
echo count($coodle->result);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $coodle->errormsg;
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
die('Invalid Work Parameter');
|
||||
}
|
||||
|
||||
@@ -76,11 +76,12 @@ if(isset($_POST['action']) && $_POST['action']=='start')
|
||||
// Start der Umfrage
|
||||
$coodle_termine = new coodle();
|
||||
$coodle_termine->getTermine($coodle_id);
|
||||
if(count($coodle_termine->result)>0)
|
||||
// Die Terminoption "keine Auswahl wird immer benötigt. Deshalb > 1
|
||||
if(count($coodle_termine->result) > 1)
|
||||
{
|
||||
$coodle_ressource = new coodle();
|
||||
$coodle_ressource->getRessourcen($coodle_id);
|
||||
if(count($coodle_ressource->result)>0)
|
||||
if(count($coodle_ressource->result) > 0)
|
||||
{
|
||||
// Status aendern
|
||||
$coodle->coodle_status_kurzbz='laufend';
|
||||
@@ -135,16 +136,18 @@ if(isset($_POST['action']) && $_POST['action']=='start')
|
||||
Bitte folgen Sie dem Link, um Ihre Terminwünsche bekannt zu geben:
|
||||
<a href="'.$link.'">Link zur Terminumfrage</a>
|
||||
<br><br>
|
||||
'.($coodle->beschreibung != '' ? '
|
||||
Beschreibung:<br><br>
|
||||
'.$coodle->beschreibung.'<br><br>
|
||||
'.$coodle->beschreibung.'<br><br>' : '').'
|
||||
'.nl2br($sign);
|
||||
|
||||
$text=$anrede."!\n\nSie wurden zu einer Terminumfrage zum Thema \"".$db->convert_html_chars($coodle->titel)."\" eingeladen.\n
|
||||
Bitte folgen Sie dem Link, um Ihre Terminwünsche bekannt zu geben:\n
|
||||
$link\n\n
|
||||
".($coodle->beschreibung != "" ? "
|
||||
Beschreibung:\n\n
|
||||
".strip_tags($coodle->beschreibung)."
|
||||
\n\n
|
||||
\n\n" : "")."
|
||||
$sign";
|
||||
|
||||
$mail = new mail($email, $von,'Terminumfrage - '.$coodle->titel, $text);
|
||||
@@ -317,7 +320,6 @@ echo '<html>
|
||||
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
// Coodle Termin initialisieren
|
||||
@@ -342,7 +344,6 @@ echo '<html>
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Kalender Initialisieren
|
||||
$("#calendar").fullCalendar(
|
||||
{
|
||||
@@ -568,6 +569,35 @@ echo '<html>
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$("#umfrageStartenSubmitButton").click(function(e)
|
||||
{
|
||||
e.preventDefault(); // avoid to execute the actual submit of the form.
|
||||
|
||||
var form = $(this).parents("form:first");
|
||||
formdata = form.serialize();
|
||||
formdata += (formdata!=="")? "&work=countTermine&coodle_id='.$coodle_id.'":"";
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url:"coodle_worker.php",
|
||||
data: formdata,
|
||||
success: function(data)
|
||||
{
|
||||
if (parseInt(data) > 1)
|
||||
{
|
||||
form.submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Bitte ziehen Sie mindestens einen Termin in den Kalender");
|
||||
}
|
||||
},
|
||||
error: function(data)
|
||||
{
|
||||
alert("Error: "+data);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -847,7 +877,8 @@ echo '
|
||||
}
|
||||
</script>
|
||||
<p>
|
||||
'.$p->t('coodle/ressourcenBeschreibung').'
|
||||
'.$p->t('coodle/ressourcenBeschreibung');
|
||||
echo '
|
||||
<br><br><a href="#" onclick="showExterne(); return false;">'.$p->t('coodle/externePersonhinzu').'</a>
|
||||
</div> <!-- RessourcenInput -->
|
||||
<div id="externePersonen" style="display: none">
|
||||
@@ -864,10 +895,10 @@ echo '
|
||||
</div>
|
||||
<div id="fertig">
|
||||
<h4>'.$p->t('coodle/umfrageStarten').'</h4>
|
||||
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
|
||||
<form id="umfrageStartenForm" action="'.$_SERVER['PHP_SELF'].'" method="POST">
|
||||
<input type="hidden" name="action" value="start" />
|
||||
<input type="hidden" name="coodle_id" value="'.$db->convert_html_chars($coodle_id).'" />
|
||||
<input type="submit" value="'.$p->t('coodle/umfrageStarten').'" />
|
||||
<input id="umfrageStartenSubmitButton" type="submit" value="'.$p->t('coodle/umfrageStarten').'"/>
|
||||
</form>
|
||||
<p>
|
||||
'.$p->t('coodle/startBeschreibung').'
|
||||
|
||||
@@ -31,6 +31,7 @@ require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/erhalter.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
@@ -58,6 +59,9 @@ isset($_GET['stsem']) ? $studiensemester = $_GET['stsem'] : die('Ein Studienseme
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lvid);
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->load($lv->studiengang_kz);
|
||||
|
||||
$berechtigung = new benutzerberechtigung();
|
||||
$berechtigung->getBerechtigungen($user);
|
||||
|
||||
@@ -96,17 +100,15 @@ if ($lehreinheit != '')
|
||||
|
||||
$gruppen_string = '';
|
||||
$gruppen_string_arr = array();
|
||||
$stg_typ = '';
|
||||
$stg_typ = $stg->typ;
|
||||
$stg_bezeichnung = $stg->bezeichnung;
|
||||
|
||||
//structure overall lehrveranstaltungs data
|
||||
if ($result = $db->db_query($qry)) {
|
||||
while ($row = $db->db_fetch_object($result)) {
|
||||
//lehrveranstaltung
|
||||
$lv_bezeichnung = $row->lv_bezeichnung;
|
||||
//studiengang
|
||||
$stg_bezeichnung = $row->stg_bez;
|
||||
//studiengangstyp
|
||||
$stg_typ = $row->stg_typ;
|
||||
|
||||
//collect all gruppenkürzel
|
||||
if ($row->gruppe_kurzbz == '')
|
||||
$gruppen_string = trim($row->kuerzel . '-' . $row->semester . $row->verband . $row->gruppe);
|
||||
@@ -237,8 +239,8 @@ if ($result = $db->db_query($qry)) {
|
||||
$row->foto_sperre = 'f';
|
||||
|
||||
//create foto (if not locked by student OR if fotolist is created by admin or assistenz)
|
||||
$foto_url = '';
|
||||
|
||||
$foto_url = '';
|
||||
|
||||
if ($row->foto_sperre == 'f' && $row->foto != '') {
|
||||
$foto_src = $row->foto;
|
||||
$foto_url = sys_get_temp_dir() . '/foto' . trim($row->matrikelnr) . '.jpg';
|
||||
|
||||
@@ -308,8 +308,12 @@ else
|
||||
// Nur Noten, die aufs Zeugnis gedruckt werden für Durchschnittsberechnung addieren
|
||||
if ($row->zeugnis == true)
|
||||
{
|
||||
$notenSummenArray[$row->lehrveranstaltung_id]['notenwert'] = (isset($notenarr[$row->note]['notenwert']) ? $notenarr[$row->note]['notenwert'] : '');
|
||||
$notenSummenArray[$row->lehrveranstaltung_id]['ects'] = $row->ects;
|
||||
// Noten ohne Wert werden entfernen
|
||||
if(isset($notenarr[$row->note]['notenwert']))
|
||||
{
|
||||
$notenSummenArray[$row->lehrveranstaltung_id]['notenwert'] = $notenarr[$row->note]['notenwert'];
|
||||
$notenSummenArray[$row->lehrveranstaltung_id]['ects'] = $row->ects;
|
||||
}
|
||||
}
|
||||
}
|
||||
$tblBody .= "</td>";
|
||||
@@ -379,13 +383,10 @@ else
|
||||
$anzahlLv = 0;
|
||||
foreach ($notenSummenArray AS $key => $value)
|
||||
{
|
||||
if ($value['notenwert'] != '')
|
||||
{
|
||||
$anzahlLv++;
|
||||
$notenSumme += $value['notenwert'];
|
||||
$ectsSumme += $value['ects'];
|
||||
$notenSummeGewichtet += $value['notenwert'] * $value['ects'];
|
||||
}
|
||||
$anzahlLv++;
|
||||
$notenSumme += $value['notenwert'];
|
||||
$ectsSumme += $value['ects'];
|
||||
$notenSummeGewichtet += $value['notenwert'] * $value['ects'];
|
||||
}
|
||||
|
||||
$tblBody .= "</tbody>";
|
||||
|
||||
@@ -352,7 +352,9 @@ function writePruefungsTable(e, data, anmeldung)
|
||||
var termin = d.von.split(" ");
|
||||
var time = termin[1].substring(0,5);
|
||||
termin = termin[0].split("-");
|
||||
termin = new Date(termin[0], termin[1]-1,termin[2]);
|
||||
var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]);
|
||||
minimumFrist.setMonth(minimumFrist.getMonth() - 2);
|
||||
termin = new Date(termin[0], termin[1]-1,termin[2]);
|
||||
var frist = termin;
|
||||
termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
|
||||
frist = frist.getTime();
|
||||
@@ -374,26 +376,29 @@ function writePruefungsTable(e, data, anmeldung)
|
||||
button = "<p><a href='#' title='<?php echo $p->t('pruefung/stornierenMoeglichBis'); ?> "+frist+"'><input style='width: 140px;' type='button' value='"+termin+" "+time+"' onclick='stornoAnmeldung(\""+anmeldung_id+"\");'></a></p>";
|
||||
|
||||
}
|
||||
else
|
||||
else if(new Date() > minimumFrist)
|
||||
{
|
||||
button = "<p><a href='#' title='<?php echo $p->t('pruefung/anmeldenMoeglichBis'); ?> "+frist+"'><input style='width: 140px; background-color: green;' type='button' value='"+termin+" "+time+"' onclick='openDialog(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung[0].bezeichnung.replace("'", "'")+"\", \""+d.von+"\", \""+d.bis+"\");'></a></p>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
button = "<p><input style='width: 180px;' type='button' value='<?php echo $p->t('pruefung/zurLvAnmeldung'); ?>' onclick='openAnmeldung(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+e.pruefung.studiensemester_kurzbz+"\");'></p>";
|
||||
}
|
||||
|
||||
row += button;
|
||||
|
||||
if(d.max === null)
|
||||
{
|
||||
teilnehmer += "<?php echo $p->t('pruefung/unbegrenzt'); ?><br />";
|
||||
}
|
||||
else
|
||||
{
|
||||
teilnehmer += "<p><span style='line-height: 24px'>"+(d.max - d.teilnehmer)+"/"+d.max+"</span></p>";
|
||||
}
|
||||
if(new Date() > minimumFrist)
|
||||
{
|
||||
if(d.max === null)
|
||||
{
|
||||
teilnehmer += "<?php echo $p->t('pruefung/unbegrenzt'); ?><br />";
|
||||
}
|
||||
else
|
||||
{
|
||||
teilnehmer += "<p><span style='line-height: 24px'>"+(d.max - d.teilnehmer)+"/"+d.max+"</span></p>";
|
||||
}
|
||||
}
|
||||
});
|
||||
row += "<td>"+teilnehmer+"</td>";
|
||||
return row;
|
||||
|
||||
@@ -178,7 +178,10 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null)
|
||||
$lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id);
|
||||
$oe = new organisationseinheit($lveranstaltung->oe_kurzbz);
|
||||
$prf->organisationseinheit = $oe->bezeichnung;
|
||||
array_push($pruefungen, $prf);
|
||||
|
||||
// nur hinzufügen wenn zumindest 1 Termin vorhanden ist
|
||||
if (!empty($prf->pruefung->termine))
|
||||
array_push($pruefungen, $prf);
|
||||
}
|
||||
}
|
||||
$anmeldung = new pruefungsanmeldung();
|
||||
@@ -265,7 +268,10 @@ function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null)
|
||||
$lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id);
|
||||
$oe = new organisationseinheit($lveranstaltung->oe_kurzbz);
|
||||
$prf->organisationseinheit = $oe->bezeichnung;
|
||||
array_push($pruefungen, $prf);
|
||||
|
||||
// nur hinzufügen wenn zumindest 1 Termin vorhanden ist
|
||||
if (!empty($prf->pruefung->termine))
|
||||
array_push($pruefungen, $prf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -805,7 +811,10 @@ function getAllPruefungen($aktStudiensemester = null, $uid = null)
|
||||
$lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id);
|
||||
$oe = new organisationseinheit($lveranstaltung->oe_kurzbz);
|
||||
$prf->organisationseinheit = $oe->bezeichnung;
|
||||
array_push($pruefungen, $prf);
|
||||
|
||||
// nur hinzufügen wenn zumindest 1 Termin vorhanden ist
|
||||
if (!empty($prf->pruefung->termine))
|
||||
array_push($pruefungen, $prf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1206,6 +1215,7 @@ function compareRaeume($a, $b)
|
||||
|
||||
function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
{
|
||||
$terminkollision = defined('CIS_PRUEFUNGSANMELDUNG_ERLAUBE_TERMINKOLLISION') ? CIS_PRUEFUNGSANMELDUNG_ERLAUBE_TERMINKOLLISION : false;
|
||||
$pruefungstermin = new pruefungstermin($terminId);
|
||||
$stunde = new stunde();
|
||||
$datum_von = explode(" ", $pruefungstermin->von);
|
||||
@@ -1218,7 +1228,7 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
|
||||
if($reservierung->isReserviert($ort_kurzbz, $datum_von[0], $h))
|
||||
$reserviert = true;
|
||||
}
|
||||
if(!$reserviert || $pruefungstermin->sammelklausur == TRUE)
|
||||
if($terminkollision || !$reserviert || $pruefungstermin->sammelklausur == TRUE)
|
||||
{
|
||||
$pruefung = new pruefungCis($pruefungstermin->pruefung_id);
|
||||
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
|
||||
|
||||
@@ -150,8 +150,8 @@ $studiensemester->getAll();
|
||||
{
|
||||
$("#accordion").accordion({
|
||||
header: "h2",
|
||||
autoHeight: false
|
||||
});
|
||||
heightStyle: "content"
|
||||
});
|
||||
$("#accordion").attr("style", "visibility: visible;");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -224,7 +224,8 @@ if (empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('le
|
||||
<td><?php echo $p->t('pruefung/pruefungIntervall'); ?>:</td>
|
||||
<td>
|
||||
<select id="pruefungsintervall">
|
||||
<option value="15">15</option>
|
||||
<option value="10">10</option>
|
||||
<option value="15">15</option>
|
||||
<option value="20">20</option>
|
||||
<option value="30">30</option>
|
||||
</select>
|
||||
|
||||
@@ -23,15 +23,15 @@ require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/reservierung.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/reservierung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
if (isset($_GET['id']))
|
||||
@@ -67,7 +67,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
|
||||
$reservierung = new reservierung();
|
||||
if($reservierung->load($id))
|
||||
{
|
||||
if(($reservierung->uid==$uid || $reservierung->insertvon==$uid) && $rechte->isBerechtigt('lehre/reservierung', null, 'suid'))
|
||||
if(($reservierung->uid==$uid || $reservierung->insertvon==$uid) && $rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
|
||||
{
|
||||
if($reservierung->delete($id))
|
||||
echo '<b>'.$p->t('lvplan/reservierungWurdeGeloescht').'</b><br>';
|
||||
@@ -79,17 +79,17 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
|
||||
echo '<b>'.$p->t('global/keineBerechtigung').'</b><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
echo '<b>'.$p->t('global/fehleraufgetreten').'!</b><br>';
|
||||
}
|
||||
|
||||
//Aktuelle Reservierungen abfragen.
|
||||
$datum = time();
|
||||
$datum = date("Y-m-d",$datum);
|
||||
|
||||
|
||||
//EIGENE
|
||||
$sql_query="SELECT * FROM campus.vw_reservierung
|
||||
WHERE datum>=".$db->db_add_param($datum)."
|
||||
$sql_query="SELECT * FROM campus.vw_reservierung
|
||||
WHERE datum>=".$db->db_add_param($datum)."
|
||||
AND (uid=".$db->db_add_param($uid)." OR insertvon=".$db->db_add_param($uid).")
|
||||
ORDER BY datum, titel, ort_kurzbz, stunde";
|
||||
|
||||
@@ -97,7 +97,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
|
||||
die($db->db_last_error());
|
||||
|
||||
$num_rows_res=$db->db_num_rows($erg_res);
|
||||
|
||||
|
||||
if ($num_rows_res>0)
|
||||
{
|
||||
echo $p->t('lvplan/eigeneReservierungen').':<br>';
|
||||
@@ -135,7 +135,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
|
||||
echo '<td>'.$db->convert_html_chars($pers_uid).'</td>';
|
||||
echo '<td>'.$db->convert_html_chars($beschreibung).'<a name="liste'.$i.'"> </a></td>';
|
||||
$z=$i-1;
|
||||
if (($pers_uid==$uid || $insertvon==$uid) && $rechte->isBerechtigt('lehre/reservierung', null, 'suid'))
|
||||
if (($pers_uid==$uid || $insertvon==$uid) && $rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
|
||||
echo '<td><A class="Item" href="stpl_reserve_list.php?id='.$id.'#liste'.$z.'">Delete</A></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
@@ -145,7 +145,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
|
||||
|
||||
echo '<br><br>';
|
||||
flush();
|
||||
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -362,7 +362,7 @@ if (isset($reservtodelete))
|
||||
|
||||
$reservierung = new reservierung();
|
||||
$reservdelcount = 0;
|
||||
$reservberechtigt = $rechte->isBerechtigt('lehre/reservierung', null, 'suid');
|
||||
$reservberechtigt = $rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid');
|
||||
|
||||
foreach ($reservtodelete as $delete_id)
|
||||
{
|
||||
|
||||
@@ -247,7 +247,14 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
echo '<td>'.$row->raumtypalternativ.'</td>';
|
||||
echo '<td>'.$row->stundenblockung.'</td>';
|
||||
echo '<td>'.$row->wochenrythmus.'</td>';
|
||||
echo '<td>'.$row->semesterstunden.'</td>';
|
||||
if(getSprache()=='German')
|
||||
{
|
||||
echo '<td>'.number_format($row->semesterstunden,2,$dec_point=",",$thousands_sep=".").'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>'.number_format($row->semesterstunden,2,$dec_point=".",$thousands_sep=",").'</td>';
|
||||
}
|
||||
echo '<td>'.$row->start_kw.'</td>';
|
||||
|
||||
$lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz);
|
||||
@@ -276,7 +283,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
@@ -286,7 +293,14 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
echo '<td> </td>';
|
||||
echo '<td> </td>';
|
||||
echo '<td align="right"><b>'.$p->t('lvaliste/summe').'</b></td>';
|
||||
echo '<th class="header">'.number_format($summe_std,2).'</th>';
|
||||
if(getSprache()=='German')
|
||||
{
|
||||
echo '<th>'.number_format($summe_std,2,$dec_point=",",$thousands_sep=".").'</th>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<th>'.number_format($summe_std,2,$dec_point=".",$thousands_sep=",").'</th>';
|
||||
}
|
||||
echo '<td> </td>';
|
||||
echo '</tr>';
|
||||
echo '</tfoot>';
|
||||
@@ -304,7 +318,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel,
|
||||
(SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id)
|
||||
WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester,
|
||||
tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung
|
||||
tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung, tbl_projektbetreuer.stunden
|
||||
FROM
|
||||
lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang, lehre.tbl_betreuerart
|
||||
WHERE
|
||||
@@ -318,6 +332,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->getAll(null,null);
|
||||
$summe_std = 0;
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -329,6 +344,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
echo '<thead><tr>';
|
||||
echo '<th>'.$p->t('lvaliste/studiengang').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/semester').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/stunden').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/lvBezeichnung').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/student').'</th>';
|
||||
echo '<th>'.$p->t('lvaliste/betreuungsart').'</th>';
|
||||
@@ -339,13 +355,46 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
echo '<tr>';
|
||||
echo '<td><a href="mailto:'.$row->email.'">'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</a></td>';
|
||||
echo '<td>'.$row->semester.'</td>';
|
||||
if(getSprache()=='German')
|
||||
{
|
||||
echo '<td>'.number_format($row->stunden,2,$dec_point =",", $thousands_sep ="."). '</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>'.number_format($row->stunden,2,$dec_point =".", $thousands_sep =","). '</td>';
|
||||
}
|
||||
echo '<td>'.$row->bezeichnung.'</td>';
|
||||
echo '<td>'.$row->student.'</td>';
|
||||
echo '<td>'.$row->beutreuerart_beschreibung.'</td>';
|
||||
echo '<td>'.$row->titel.'</td>';
|
||||
|
||||
echo '</tr>';
|
||||
$summe_std+=$row->stunden;
|
||||
}
|
||||
echo '</tbody>';
|
||||
echo '<tfoot>';
|
||||
echo '<tr>';
|
||||
if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
|
||||
{
|
||||
echo '<td> </td>';
|
||||
}
|
||||
if($lvinfo)
|
||||
|
||||
echo '<td align="right"><b>'.$p->t('lvaliste/summe').'</b></td>';
|
||||
|
||||
if(getSprache()=='German')
|
||||
{
|
||||
echo '<th>'.number_format($summe_std,2,$dec_point=",",$thousands_sep=".").'</th>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<th>'.number_format($summe_std,2,$dec_point=".",$thousands_sep=",").'</th>';
|
||||
}
|
||||
|
||||
|
||||
echo '<td> </td>';
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
}
|
||||
@@ -426,6 +475,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
echo '<tr>';
|
||||
echo '<td><a href="mailto:'.$row->email.'">'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</a></td>';
|
||||
echo '<td>'.$row->semester.'</td>';
|
||||
echo '<td>'.$row->stunden.'</td>';
|
||||
echo '<td>'.$row->fachbereich_kurzbz.'</td>';
|
||||
echo '<td>'.$row->bezeichnung.'</td>';
|
||||
echo '<td>'.$lektoren.'</td>';
|
||||
|
||||
@@ -235,7 +235,7 @@ $studiensemester_start = $prestudent->studiensemester_kurzbz;
|
||||
$ausbildungssemester_start = $prestudent->ausbildungssemester;
|
||||
$orgform_kurzbz = $prestudent->orgform_kurzbz;
|
||||
|
||||
$prestudent->getLastStatus($student->prestudent_id, 'Student');
|
||||
$prestudent->getLastStatus($student->prestudent_id, '', 'Student');
|
||||
$studienplan_id = $prestudent->studienplan_id;
|
||||
|
||||
$studienplan = new studienplan();
|
||||
|
||||
@@ -118,8 +118,29 @@ $fixangestellt = $ma->fixangestellt;
|
||||
$ss = new Studiensemester();
|
||||
$ss->getNextStudiensemester();
|
||||
$next_ss = $ss->studiensemester_kurzbz;
|
||||
$current_ss = $ss->getakt();
|
||||
|
||||
// Erklärung zu Pausen bei geteilten Arbeitszeiten speichern
|
||||
if (isset($_GET['selbstverwaltete-pause-akt']) && !empty($_GET['submit-akt']))
|
||||
{
|
||||
$selbstverwaltete_pause = ($_GET['selbstverwaltete-pause-akt'] == 'yes') ? true : false;
|
||||
|
||||
$zeitaufzeichnung_gd = new Zeitaufzeichnung_gd();
|
||||
$zeitaufzeichnung_gd->uid = $uid;
|
||||
$zeitaufzeichnung_gd->studiensemester_kurzbz = $current_ss;
|
||||
$zeitaufzeichnung_gd->selbstverwaltete_pause = $selbstverwaltete_pause;
|
||||
$za_gd = new Zeitaufzeichnung_gd();
|
||||
$za_gd->load($uid, $current_ss);
|
||||
if ($za_gd->uid)
|
||||
{
|
||||
echo 'Bereits eingetragen';
|
||||
}
|
||||
else if (!$zeitaufzeichnung_gd->save())
|
||||
{
|
||||
echo $zeitaufzeichnung_gd->errormsg;
|
||||
}
|
||||
|
||||
}
|
||||
if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit']))
|
||||
{
|
||||
$selbstverwaltete_pause = ($_GET['selbstverwaltete-pause'] == 'yes') ? true : false;
|
||||
@@ -191,10 +212,24 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit']))
|
||||
<?php
|
||||
echo $p->t('zeitwunsch/geteilteArbeitszeit');
|
||||
$gd = new zeitaufzeichnung_gd();
|
||||
$gd->load($uid, $current_ss);
|
||||
if ( ! $gd->uid )
|
||||
{
|
||||
echo '<br><br><h3>Zustimmung für '.$current_ss.': ';
|
||||
echo '<input type="radio" name="selbstverwaltete-pause-akt" value="yes">ja';
|
||||
echo '<input type="radio" name="selbstverwaltete-pause-akt" value="no">nein';
|
||||
echo '</h3><br><br><input type="submit" name="submit-akt" value="'.$p->t('global/speichern').'" style="float: right"><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$zustimmung = ($gd->selbstverwaltete_pause) ? ' erteilt' : 'abgelehnt';
|
||||
echo '<br><br><h3>Zustimmung für '.$current_ss.': '.$zustimmung.' am '.$datum_obj->formatDatum($gd->insertamum,'d.m.Y H:i:s').'</h3>';
|
||||
}
|
||||
$gd = new zeitaufzeichnung_gd();
|
||||
$gd->load($uid, $next_ss);
|
||||
if ( ! $gd->uid )
|
||||
{
|
||||
echo '<br><br><h3>Zustimmung für '.$next_ss.': ';
|
||||
echo '<h3>Zustimmung für '.$next_ss.': ';
|
||||
echo '<input type="radio" name="selbstverwaltete-pause" value="yes">ja';
|
||||
echo '<input type="radio" name="selbstverwaltete-pause" value="no">nein';
|
||||
echo '</h3><br><br><input type="submit" name="submit" value="'.$p->t('global/speichern').'" style="float: right"><br>';
|
||||
@@ -202,7 +237,7 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit']))
|
||||
else
|
||||
{
|
||||
$zustimmung = ($gd->selbstverwaltete_pause) ? ' erteilt' : 'abgelehnt';
|
||||
echo '<br><br><h3>Zustimmung für '.$next_ss.': '.$zustimmung.' am '.$datum_obj->formatDatum($gd->insertamum,'d.m.Y H:i:s').'</h3>';
|
||||
echo '<h3>Zustimmung für '.$next_ss.': '.$zustimmung.' am '.$datum_obj->formatDatum($gd->insertamum,'d.m.Y H:i:s').'</h3>';
|
||||
}
|
||||
//var_dump($gd);
|
||||
?>
|
||||
|
||||
@@ -38,7 +38,7 @@ else
|
||||
|
||||
function ip_increment($ip = "")
|
||||
{
|
||||
$ip = split("\.", $ip);
|
||||
$ip = explode(".", $ip);
|
||||
|
||||
if($ip[3] > 0 && $ip[3] < 254)
|
||||
{
|
||||
@@ -67,7 +67,13 @@ function ip_increment($ip = "")
|
||||
<tr>
|
||||
<td class="cmscontent" rowspan="3" valign="top">
|
||||
<?php
|
||||
|
||||
if($is_lector || check_lektor($txtUID))
|
||||
{
|
||||
echo 'Die Notebook Registrierung steht nur für Studierende zur Verfügung.<br>
|
||||
Wollen Sie als Mitarbeiter ein Notebook registrieren, wenden Sie sich bitte an den <a href="mailto:support@technikum-wien.at">Support</a>.';
|
||||
echo '</td></tr></table></div></body></html>';
|
||||
exit;
|
||||
}
|
||||
if (!$txtUID)
|
||||
$txtUID = $user;
|
||||
// wenn die übergebene UID nicht gleich dem
|
||||
@@ -128,7 +134,7 @@ function ip_increment($ip = "")
|
||||
{
|
||||
$VLAN = $mfiles->match[1];
|
||||
$fuser = $mfiles->match[2];
|
||||
$fuser = split(" ", $fuser);
|
||||
$fuser = explode(" ", $fuser);
|
||||
$fuser = $fuser[0];
|
||||
//hier könnte man noch eine email oder dgl. schicken
|
||||
if ($fuser != $txtUID)
|
||||
@@ -240,21 +246,21 @@ function ip_increment($ip = "")
|
||||
else if ($error == 3)
|
||||
echo '<h3>'.$p->t("notebookregister/MACadresseBereitsVerwendet").'.</h3>';
|
||||
|
||||
if(isset($mac_result) && $mac_result!='')
|
||||
if(isset($mac_result) && $mac_result!=='')
|
||||
{
|
||||
if($mac_result == 0)
|
||||
if($mac_result === 0)
|
||||
{
|
||||
echo '<h3>'.$p->t("notebookregister/MACadresseErfolgreichEingetragen").'.</h3>';
|
||||
}
|
||||
else if($mac_result == 1)
|
||||
else if($mac_result === 1)
|
||||
{
|
||||
echo '<h3>'.$p->t("notebookregister/MACadresseErfolgreichGeaendert").'.</h3>';
|
||||
}
|
||||
else if($mac_result == 2)
|
||||
else if($mac_result === 2)
|
||||
{
|
||||
echo '<h3>'.$p->t("notebookregister/MACadresseFehlerhaft").'.</h3>';
|
||||
}
|
||||
else if($mac_result == 3)
|
||||
else if($mac_result === 3)
|
||||
{
|
||||
echo '<h3>'.$p->t("notebookregister/MACadresseNichtFreigeschalten").'.</h3>';
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ require_once('../../../include/zeitaufzeichnung.class.php');
|
||||
require_once('../../../include/zeitsperre.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/projekt.class.php');
|
||||
require_once('../../../include/projektphase.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/organisationseinheit.class.php');
|
||||
require_once('../../../include/service.class.php');
|
||||
@@ -81,8 +82,8 @@ else {
|
||||
$datum = new datum();
|
||||
|
||||
$fieldheadings = array(
|
||||
'id' => $p->t("zeitaufzeichnung/id"), 'user' => $p->t("zeitaufzeichnung/user"), 'projekt' => $p->t("zeitaufzeichnung/projekt"),
|
||||
'oe1' => $p->t("zeitaufzeichnung/oe").'1', 'oe2' => $p->t("zeitaufzeichnung/oe").'2', 'aktivitaet' => $p->t("zeitaufzeichnung/aktivitaet"),
|
||||
'id' => $p->t("zeitaufzeichnung/id"), 'user' => $p->t("zeitaufzeichnung/user"), 'projekt' => $p->t("zeitaufzeichnung/projekt"), 'ap' => $p->t("zeitaufzeichnung/projektphase"),
|
||||
'oe1' => $p->t("zeitaufzeichnung/oe"), 'oe2' => $p->t("zeitaufzeichnung/oe").'2', 'aktivitaet' => $p->t("zeitaufzeichnung/aktivitaet"),
|
||||
'service' => $p->t("zeitaufzeichnung/service"), 'start' => $p->t("zeitaufzeichnung/start"), 'ende' => $p->t("zeitaufzeichnung/ende"),
|
||||
'dauer' => $p->t("zeitaufzeichnung/dauer"), 'kunde' => $p->t("zeitaufzeichnung/kunde"), 'beschreibung' => $p->t("global/beschreibung"), 'aktion' => $p->t("global/aktion"),
|
||||
'datum' => $p->t("global/datum")
|
||||
@@ -91,12 +92,12 @@ $fieldheadings = array(
|
||||
if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung'))
|
||||
{
|
||||
$za_simple = 0;
|
||||
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'FuE', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
}
|
||||
else
|
||||
{
|
||||
$za_simple = 1;
|
||||
$activities = array('Arbeit', 'Pause', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
$activities = array('Admin', 'FuE','Lehre', 'Pause', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
}
|
||||
|
||||
$activities_str = "'".implode("','", $activities)."'";
|
||||
@@ -110,13 +111,12 @@ else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GE
|
||||
else
|
||||
$gesperrt_bis = '2015-08-31';
|
||||
|
||||
//var_dump($gesperrt_bis);
|
||||
|
||||
$sperrdatum = date('c', strtotime($gesperrt_bis));
|
||||
|
||||
// Uses urlencode to avoid XSS issues
|
||||
$zeitaufzeichnung_id = urlencode(isset($_GET['zeitaufzeichnung_id'])?$_GET['zeitaufzeichnung_id']:'');
|
||||
$projekt_kurzbz = (isset($_POST['projekt'])?$_POST['projekt']:'');
|
||||
$projektphase_id = (isset($_POST['projektphase'])?$_POST['projektphase']:'');
|
||||
$oe_kurzbz_1 = (isset($_POST['oe_kurzbz_1'])?$_POST['oe_kurzbz_1']:'');
|
||||
$oe_kurzbz_2 = (isset($_POST['oe_kurzbz_2'])?$_POST['oe_kurzbz_2']:'');
|
||||
$aktivitaet_kurzbz = (isset($_POST['aktivitaet'])?$_POST['aktivitaet']:'');
|
||||
@@ -252,6 +252,13 @@ echo '
|
||||
}
|
||||
});
|
||||
|
||||
$("#projekt").change(
|
||||
function()
|
||||
{
|
||||
getProjektphasen($(this).val());
|
||||
}
|
||||
)
|
||||
|
||||
});
|
||||
|
||||
function setbisdatum()
|
||||
@@ -489,6 +496,49 @@ echo '
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function getProjektphasen(projekt_kurzbz)
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
type: "GET",
|
||||
url: "zeitaufzeichnung_projektphasen.php",
|
||||
dataType: "json",
|
||||
data:
|
||||
{
|
||||
"projekt_kurzbz":projekt_kurzbz
|
||||
},
|
||||
success: function(json)
|
||||
{
|
||||
//remove Projektphasen from html if any
|
||||
$("#projektphase").children("option").each(
|
||||
function()
|
||||
{
|
||||
if ($(this).prop("id") !== "projektphasekeineausw")
|
||||
$(this).remove();
|
||||
}
|
||||
);
|
||||
//append Projektphasen if any
|
||||
if (json.length > 0)
|
||||
{
|
||||
var projphasenhtml = "";
|
||||
for (var i = 0; i < json.length; i++)
|
||||
{
|
||||
projphasenhtml += "<option value = \'" + json[i].projektphase_id + "\'>" + json[i].bezeichnung + "<\/option>";
|
||||
}
|
||||
|
||||
$("#projektphase").append(projphasenhtml);
|
||||
$("#projektphaseformgroup").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#projektphaseformgroup").hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
@@ -506,6 +556,29 @@ if($kartennummer != '')
|
||||
$kunde_uid = $betriebsmittel->uid;
|
||||
}
|
||||
//Speichern der Daten
|
||||
|
||||
function checkVals ($oe_val, $project_val, $phase_val, $service_val)
|
||||
{
|
||||
$error = 0;
|
||||
if ($service_val && ( filter_var($service_val, FILTER_VALIDATE_INT) === false ))
|
||||
$error = 1;
|
||||
if ($phase_val && ( filter_var($phase_val, FILTER_VALIDATE_INT) === false ))
|
||||
$error = 1;
|
||||
if ($oe_val)
|
||||
{
|
||||
$oecheck = new organisationseinheit($oe_val);
|
||||
if ($oecheck->errormsg)
|
||||
$error = 1;
|
||||
}
|
||||
if ($project_val)
|
||||
{
|
||||
$procheck = new projekt($project_val);
|
||||
if ($procheck->errormsg)
|
||||
$error = 1;
|
||||
}
|
||||
return $error;
|
||||
}
|
||||
|
||||
if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
{
|
||||
$zeit = new zeitaufzeichnung();
|
||||
@@ -530,13 +603,35 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
{
|
||||
if($data[0] == $user)
|
||||
{
|
||||
if (!isset($data[5]))
|
||||
$data[5] = NULL;
|
||||
if (!isset($data[6]))
|
||||
$data[6] = NULL;
|
||||
if (!isset($data[7]))
|
||||
$data[7] = NULL;
|
||||
if (!isset($data[8]))
|
||||
$data[8] = NULL;
|
||||
if ($datum->formatDatum($data[2], $format='Y-m-d H:i:s') < $sperrdatum)
|
||||
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum ('.$data[2].')</b></span><br>';
|
||||
//elseif (isset($data[8]) && ( filter_var($data[8], FILTER_VALIDATE_INT) === false ))
|
||||
//{
|
||||
// echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Service ID ist keine Zahl ('.$data[8].')</b></span><br>';
|
||||
//}
|
||||
elseif (checkVals($data[5],$data[6],$data[7],$data[8]))
|
||||
{
|
||||
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Fehlerhafte Werte ('.$data[2].')</b></span><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($data[1] == 'LehreIntern')
|
||||
$data[1] = 'Lehre';
|
||||
$zeit->new = true;
|
||||
$zeit->beschreibung = NULL;
|
||||
$zeit->oe_kurzbz_1 = NULL;
|
||||
$zeit->projekt_kurzbz = NULL;
|
||||
$zeit->projektphase_id = NULL;
|
||||
$zeit->service_id = NULL;
|
||||
|
||||
$zeit->insertamum = date('Y-m-d H:i:s');
|
||||
$zeit->updateamum = date('Y-m-d H:i:s');
|
||||
$zeit->updatevon = $user;
|
||||
@@ -548,7 +643,13 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
if (isset($data[4]))
|
||||
$zeit->beschreibung = $data[4];
|
||||
if (isset($data[5]))
|
||||
$zeit->service_id = $data[5];
|
||||
$zeit->oe_kurzbz_1 = $data[5];
|
||||
if (isset($data[6]))
|
||||
$zeit->projekt_kurzbz = $data[6];
|
||||
if (isset($data[7]))
|
||||
$zeit->projektphase_id = $data[7];
|
||||
if (isset($data[8]))
|
||||
$zeit->service_id = $data[8];
|
||||
$tag = $datum->formatDatum($data[2], $format='Y-m-d');
|
||||
|
||||
if(!in_array($tag, $importtage_array))
|
||||
@@ -571,10 +672,10 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
$pause->aktivitaet_kurzbz = 'Pause';
|
||||
$pause->start = $ende_vorher;
|
||||
$pause->ende = $zeit->start;
|
||||
$zeit->beschreibung = '';
|
||||
$pause->beschreibung = '';
|
||||
if(!$pause->save())
|
||||
{
|
||||
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'</b></span>';
|
||||
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'</b></span><br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -591,7 +692,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
*/
|
||||
if(!$zeit->save())
|
||||
{
|
||||
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'</b>('.$zeit->start.')</span>';
|
||||
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'</b>('.$zeit->start.')</span><br>';
|
||||
}
|
||||
else
|
||||
$anzahl++;
|
||||
@@ -601,6 +702,10 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
|
||||
}
|
||||
}
|
||||
else if (strpos($data[0],'#') === false)
|
||||
{
|
||||
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Falsche UID nicht importiert </b>('.$data[0].')</span><br>';
|
||||
}
|
||||
}
|
||||
if($anzahl>0)
|
||||
{
|
||||
@@ -645,6 +750,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
$zeit->updateamum = date('Y-m-d H:i:s');
|
||||
$zeit->updatevon = $user;
|
||||
$zeit->projekt_kurzbz = $projekt_kurzbz;
|
||||
$zeit->projektphase_id = $projektphase_id;
|
||||
$zeit->service_id = $service_id;
|
||||
$zeit->kunde_uid = $kunde_uid;
|
||||
|
||||
@@ -667,6 +773,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
|
||||
$oe_kurzbz_1 = '';
|
||||
$oe_kurzbz_2 = '';
|
||||
$projekt_kurzbz = '';
|
||||
$projektphase_id = '';
|
||||
$service_id = '';
|
||||
$kunde_uid = '';
|
||||
}
|
||||
@@ -719,8 +826,20 @@ if(isset($_GET['type']) && $_GET['type']=='edit')
|
||||
$oe_kurzbz_1 = $zeit->oe_kurzbz_1;
|
||||
$oe_kurzbz_2 = $zeit->oe_kurzbz_2;
|
||||
$projekt_kurzbz = $zeit->projekt_kurzbz;
|
||||
$projektphase_id = $zeit->projektphase_id;
|
||||
$service_id = $zeit->service_id;
|
||||
$kunde_uid = $zeit->kunde_uid;
|
||||
|
||||
$projektphase = new projektphase();
|
||||
|
||||
$projektphasen = array();
|
||||
if($projektphase->getProjektphasen($projekt_kurzbz))
|
||||
{
|
||||
foreach ($projektphase->result as $row)
|
||||
{
|
||||
$projektphasen[] = $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -828,87 +947,6 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
//Projekte werden nicht angezeigt wenn es keine gibt
|
||||
if($anzprojekte > 0)
|
||||
{
|
||||
//Projekt
|
||||
echo '<tr>
|
||||
<td>'.$p->t("zeitaufzeichnung/projekt").'</td>
|
||||
<td colspan="4"><SELECT name="projekt" id="projekt">
|
||||
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
|
||||
|
||||
sort($projekt->result);
|
||||
foreach ($projekt->result as $row_projekt)
|
||||
{
|
||||
if ($projekt_kurzbz == $row_projekt->projekt_kurzbz || $filter == $row_projekt->projekt_kurzbz)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected = '';
|
||||
|
||||
echo '<option value="'.$db->convert_html_chars($row_projekt->projekt_kurzbz).'" '.$selected.'>'.$db->convert_html_chars($row_projekt->titel).'</option>';
|
||||
}
|
||||
echo '</SELECT><!--<input type="button" value="'.$p->t("zeitaufzeichnung/uebersicht").'" onclick="loaduebersicht();">--></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
if($za_simple == 0)
|
||||
{
|
||||
//OE_KURZBZ_1
|
||||
echo '<tr><td nowrap>'.$p->t("zeitaufzeichnung/organisationseinheiten").'</td>
|
||||
<td colspan="3"><SELECT style="width:200px;" name="oe_kurzbz_1">';
|
||||
$oe = new organisationseinheit();
|
||||
$oe->getFrequent($user,'180','3',true);
|
||||
$trennlinie = true;
|
||||
|
||||
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
|
||||
|
||||
foreach ($oe->result as $row)
|
||||
{
|
||||
if($row->oe_kurzbz == $oe_kurzbz_1)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected = '';
|
||||
if($row->aktiv)
|
||||
$class='';
|
||||
else
|
||||
$class='class="inaktiv"';
|
||||
|
||||
if ($row->anzahl =='0' && $trennlinie==true)
|
||||
{
|
||||
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
|
||||
$trennlinie = false;
|
||||
}
|
||||
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).')</option>';
|
||||
}
|
||||
echo '</SELECT> ';
|
||||
|
||||
//OE_KURZBZ_2
|
||||
echo '<SELECT style="width:200px;" name="oe_kurzbz_2">';
|
||||
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
|
||||
|
||||
$trennlinie = true;
|
||||
|
||||
foreach ($oe->result as $row)
|
||||
{
|
||||
if($oe_kurzbz_2 == $row->oe_kurzbz)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected = '';
|
||||
|
||||
if($row->aktiv)
|
||||
$class='';
|
||||
else
|
||||
$class='class="inaktiv"';
|
||||
|
||||
if ($row->anzahl =='0' && $trennlinie==true)
|
||||
{
|
||||
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
|
||||
$trennlinie = false;
|
||||
}
|
||||
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).')</option>';
|
||||
}
|
||||
echo '</SELECT></td></tr>';
|
||||
}
|
||||
|
||||
//Aktivitaet
|
||||
echo '<tr>';
|
||||
echo '<td>'.$p->t("zeitaufzeichnung/aktivitaet").'</td><td colspan="4">';
|
||||
@@ -936,49 +974,167 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
}
|
||||
echo '</td></tr>';
|
||||
|
||||
|
||||
if($za_simple >= 0)
|
||||
{
|
||||
$oestyle = '';
|
||||
if($za_simple == 0)
|
||||
$oestyle = 'style="width:200px;"';
|
||||
|
||||
//OE_KURZBZ_1
|
||||
echo '<tr><td nowrap>'.$p->t("zeitaufzeichnung/organisationseinheiten").'</td>
|
||||
<td colspan="3"><SELECT '.$oestyle.' name="oe_kurzbz_1">';
|
||||
$oe = new organisationseinheit();
|
||||
$oe->getFrequent($user,'180','3',true);
|
||||
$trennlinie = true;
|
||||
|
||||
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
|
||||
|
||||
foreach ($oe->result as $row)
|
||||
{
|
||||
if($row->oe_kurzbz == $oe_kurzbz_1)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected = '';
|
||||
if($row->aktiv)
|
||||
$class='';
|
||||
else
|
||||
$class='class="inaktiv"';
|
||||
|
||||
if ($row->anzahl =='0' && $trennlinie==true)
|
||||
{
|
||||
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
|
||||
$trennlinie = false;
|
||||
}
|
||||
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).') ['.$row->oe_kurzbz.']</option>';
|
||||
}
|
||||
echo '</SELECT> ';
|
||||
if($za_simple == 0)
|
||||
{
|
||||
//OE_KURZBZ_2
|
||||
echo '<SELECT style="width:200px;" name="oe_kurzbz_2">';
|
||||
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
|
||||
|
||||
$trennlinie = true;
|
||||
|
||||
foreach ($oe->result as $row)
|
||||
{
|
||||
if($oe_kurzbz_2 == $row->oe_kurzbz)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected = '';
|
||||
|
||||
if($row->aktiv)
|
||||
$class='';
|
||||
else
|
||||
$class='class="inaktiv"';
|
||||
|
||||
if ($row->anzahl =='0' && $trennlinie==true)
|
||||
{
|
||||
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
|
||||
$trennlinie = false;
|
||||
}
|
||||
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).')</option>';
|
||||
}
|
||||
echo '</SELECT>';
|
||||
}
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
//Projekte werden nicht angezeigt wenn es keine gibt
|
||||
if($anzprojekte > 0)
|
||||
{
|
||||
//Projekt
|
||||
echo '<tr>
|
||||
<td>'.$p->t("zeitaufzeichnung/projekt").'</td>
|
||||
<td colspan="4"><SELECT name="projekt" id="projekt">
|
||||
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
|
||||
|
||||
sort($projekt->result);
|
||||
$projektfound = false;
|
||||
foreach ($projekt->result as $row_projekt)
|
||||
{
|
||||
if ($projekt_kurzbz == $row_projekt->projekt_kurzbz || $filter == $row_projekt->projekt_kurzbz)
|
||||
{
|
||||
$projektfound = true;
|
||||
$selected = 'selected';
|
||||
}
|
||||
else
|
||||
$selected = '';
|
||||
|
||||
echo '<option value="'.$db->convert_html_chars($row_projekt->projekt_kurzbz).'" '.$selected.'>'.$db->convert_html_chars($row_projekt->titel).'</option>';
|
||||
}
|
||||
echo '</SELECT><!--<input type="button" value="'.$p->t("zeitaufzeichnung/uebersicht").'" onclick="loaduebersicht();">-->';
|
||||
|
||||
//Projektphase
|
||||
$showprojphases = isset($projektphasen) && is_array($projektphasen) && count($projektphasen) > 0 && $projektfound;
|
||||
$hiddentext = $showprojphases ? "" : " style='display:none'";
|
||||
|
||||
echo
|
||||
'<span id="projektphaseformgroup"'.$hiddentext.'> '.
|
||||
$p->t("zeitaufzeichnung/projektphase").'
|
||||
<SELECT name="projektphase" id="projektphase">
|
||||
<OPTION value="" id="projektphasekeineausw">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
|
||||
|
||||
if ($showprojphases)
|
||||
{
|
||||
foreach ($projektphasen as $projektphase)
|
||||
{
|
||||
if ($projektphase_id == $projektphase->projektphase_id/* || $filter == $row_projekt->projekt_kurzbz*/)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected = '';
|
||||
|
||||
echo '<option value="'.$db->convert_html_chars($projektphase->projektphase_id).'" '.$selected.'>'.$db->convert_html_chars($projektphase->bezeichnung).'</option>';
|
||||
}
|
||||
echo '</SELECT></span>';
|
||||
}
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
if ($za_simple == 0)
|
||||
{
|
||||
// Service
|
||||
echo '<tr>
|
||||
<td>'.$p->t('zeitaufzeichnung/service').'</td>
|
||||
<td colspan="4"><SELECT name="service_id">
|
||||
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
|
||||
$trennlinie = true;
|
||||
$service = new service();
|
||||
$service->getFrequentServices($user, '180','3');
|
||||
foreach($service->result as $row)
|
||||
{
|
||||
if($row->service_id==$service_id)
|
||||
$selected='selected';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
if ($row->anzahl =='0' && $trennlinie==true)
|
||||
// Service
|
||||
echo '<tr>
|
||||
<td>'.$p->t('zeitaufzeichnung/service').'</td>
|
||||
<td colspan="4"><SELECT name="service_id">
|
||||
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
|
||||
$trennlinie = true;
|
||||
$service = new service();
|
||||
$service->getFrequentServices($user, '180','3');
|
||||
foreach($service->result as $row)
|
||||
{
|
||||
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
|
||||
$trennlinie = false;
|
||||
if($row->service_id==$service_id)
|
||||
$selected='selected';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
if ($row->anzahl =='0' && $trennlinie==true)
|
||||
{
|
||||
echo '<OPTION value="" disabled="disabled">------------------------</OPTION>';
|
||||
$trennlinie = false;
|
||||
}
|
||||
echo '<OPTION title="'.$db->convert_html_chars($row->beschreibung).'" value="'.$db->convert_html_chars($row->service_id).'" '.$selected.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->oe_kurzbz.')').'</OPTION>';
|
||||
}
|
||||
echo '<OPTION title="'.$db->convert_html_chars($row->beschreibung).'" value="'.$db->convert_html_chars($row->service_id).'" '.$selected.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->oe_kurzbz.')').'</OPTION>';
|
||||
}
|
||||
echo '</SELECT></td>
|
||||
echo '</SELECT></td>
|
||||
</tr>';
|
||||
|
||||
// person für Kundenvoransicht laden
|
||||
$kunde_name = '';
|
||||
if($kunde_uid != '')
|
||||
{
|
||||
$user_kunde = new benutzer();
|
||||
|
||||
if($user_kunde->load($kunde_uid))
|
||||
$kunde_name=$user_kunde->vorname.' '.$user_kunde->nachname;
|
||||
}
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$p->t("zeitaufzeichnung/kunde").'</td>
|
||||
<td colspan="3"><input type="text" id="kunde_name" value="'.$kunde_name.'" placeholder="'.$p->t("zeitaufzeichnung/nameEingeben").'"><input type ="hidden" id="kunde_uid" name="kunde_uid" value="'.$kunde_uid.'"> '.$p->t("zeitaufzeichnung/oderKartennummerOptional").'
|
||||
<input type="text" id="kartennummer" name="kartennummer" placeholder="'.$p->t("zeitaufzeichnung/kartennummer").'"></td>
|
||||
</tr>';
|
||||
|
||||
// person für Kundenvoransicht laden
|
||||
$kunde_name = '';
|
||||
if($kunde_uid != '')
|
||||
{
|
||||
$user_kunde = new benutzer();
|
||||
|
||||
if($user_kunde->load($kunde_uid))
|
||||
$kunde_name=$user_kunde->vorname.' '.$user_kunde->nachname;
|
||||
}
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$p->t("zeitaufzeichnung/kunde").'</td>
|
||||
<td colspan="3"><input type="text" id="kunde_name" value="'.$kunde_name.'" placeholder="'.$p->t("zeitaufzeichnung/nameEingeben").'"><input type ="hidden" id="kunde_uid" name="kunde_uid" value="'.$kunde_uid.'"> '.$p->t("zeitaufzeichnung/oderKartennummerOptional").'
|
||||
<input type="text" id="kartennummer" name="kartennummer" placeholder="'.$p->t("zeitaufzeichnung/kartennummer").'"></td>
|
||||
</tr>';
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
}
|
||||
|
||||
//Start/Ende
|
||||
@@ -1101,7 +1257,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
{
|
||||
//Uebersichtstabelle
|
||||
$woche=date('W');
|
||||
$colspan=($za_simple)?10:13;
|
||||
$colspan=($za_simple)?12:14;
|
||||
echo '
|
||||
<table id="t1" class="" style="width:100%">
|
||||
|
||||
@@ -1184,7 +1340,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
|
||||
$tagessaldo = $tagessaldo-$pausesumme;
|
||||
$tagessaldo = date('H:i', ($tagessaldo));
|
||||
$colspan = ($za_simple)?4:7;
|
||||
$colspan = ($za_simple)?6:8;
|
||||
echo '<tr id="tag_row_'.$datum->formatDatum($tag,'d_m_Y').'"><td '.$style.' colspan="'.$colspan.'")>';
|
||||
|
||||
// Zusaetzlicher span fuer Addon Informationen
|
||||
@@ -1259,7 +1415,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
|
||||
<!--</table>-->';
|
||||
|
||||
$colspan=($za_simple)?10:13;
|
||||
$colspan=($za_simple)?12:14;
|
||||
echo '
|
||||
<!--<table id="t'.$datumwoche.'" class="tablesorter">-->
|
||||
<tr><th colspan="'.$colspan.'"> </th></tr>
|
||||
@@ -1281,7 +1437,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
// Diestreisen NEU
|
||||
if (array_key_exists($datumtag, $dr_arr))
|
||||
{
|
||||
$colspan=($za_simple)?4:7;
|
||||
$colspan=($za_simple)?6:8;
|
||||
echo '<tr style="background-color: #aabb99"><td colspan="'.$colspan.'">'.$p->t('zeitaufzeichnung/dienstreise');
|
||||
if (array_key_exists('start', $dr_arr[$datumtag]) && !array_key_exists('ende', $dr_arr[$datumtag]))
|
||||
echo ' '.$p->t('global/beginn');
|
||||
@@ -1335,14 +1491,17 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$summe = $row->summe;
|
||||
$service = new service();
|
||||
$service->load($row->service_id);
|
||||
$projektphase = new projektphase($row->projektphase_id);
|
||||
$ap = $projektphase->bezeichnung;
|
||||
echo '<tr>
|
||||
<td '.$style.'>'.$db->convert_html_chars($row->zeitaufzeichnung_id).'</td>
|
||||
<td '.$style.'>'.$db->convert_html_chars($row->uid).'</td>
|
||||
<td '.$style.'>'.$db->convert_html_chars($row->projekt_kurzbz).'</td>';
|
||||
echo '<td '.$style.' > '.$db->convert_html_chars($ap).'</td>';
|
||||
echo '<td '.$style.' > '.$db->convert_html_chars($row->oe_kurzbz_1).'</td>';
|
||||
if(!$za_simple)
|
||||
{
|
||||
echo '<td '.$style.' > '.$db->convert_html_chars($row->oe_kurzbz_1).'</td>
|
||||
<td '.$style.' > '.$db->convert_html_chars($row->oe_kurzbz_2).'</td>';
|
||||
echo '<td '.$style.' > '.$db->convert_html_chars($row->oe_kurzbz_2).'</td>';
|
||||
}
|
||||
echo '<td '.$style.'>'.$db->convert_html_chars($row->aktivitaet_kurzbz).'</td>';
|
||||
if(!$za_simple)
|
||||
@@ -1417,11 +1576,12 @@ function printTableHeadings($fieldheadings, $za_simple = false){
|
||||
echo '<tr>
|
||||
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['id'].'</th>
|
||||
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['user'].'</th>
|
||||
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['projekt'].'</th>';
|
||||
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['projekt'].'</th>
|
||||
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['ap'].'</th>
|
||||
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['oe1'].'</th>';
|
||||
if (!$za_simple)
|
||||
{
|
||||
echo '<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['oe1'].'</th>
|
||||
<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['oe2'].'</th>';
|
||||
echo '<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['oe2'].'</th>';
|
||||
}
|
||||
echo '<th style="background-color:#DCE4EF" align="center">'.$fieldheadings['aktivitaet'].'</th>';
|
||||
if (!$za_simple)
|
||||
@@ -1477,8 +1637,8 @@ function getDataForCSV($rawdata, $fieldheadings, $za_simple = false)
|
||||
$datum = new datum();
|
||||
$csvData = array();
|
||||
//headers schreiben
|
||||
$csvData[] = ($za_simple) ? array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['aktivitaet'], $fieldheadings['beschreibung'])
|
||||
: array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['oe1'], $fieldheadings['oe2'], $fieldheadings['aktivitaet'], $fieldheadings['service'], $fieldheadings['kunde'], $fieldheadings['beschreibung']);
|
||||
$csvData[] = ($za_simple) ? array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['ap'], $fieldheadings['oe1'], $fieldheadings['aktivitaet'], $fieldheadings['beschreibung'])
|
||||
: array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['ap'], $fieldheadings['oe1'], $fieldheadings['oe2'], $fieldheadings['aktivitaet'], $fieldheadings['service'], $fieldheadings['kunde'], $fieldheadings['beschreibung']);
|
||||
foreach ($rawdata as $zeitauf)
|
||||
{
|
||||
//Newline characters bei Beschreibung ersetzen
|
||||
@@ -1491,13 +1651,13 @@ function getDataForCSV($rawdata, $fieldheadings, $za_simple = false)
|
||||
if($za_simple)
|
||||
{
|
||||
$csvData[] = array($zeitauf->uid, $hauptdatum, $datum->formatDatum($zeitauf->start, 'H:i'),
|
||||
$bisdatum, $zeitauf->projekt_kurzbz, $zeitauf->aktivitaet_kurzbz, $beschreibung);
|
||||
$bisdatum, $zeitauf->projekt_kurzbz, $zeitauf->projektphase_id, $zeitauf->oe_kurzbz_1, $zeitauf->aktivitaet_kurzbz, $beschreibung);
|
||||
}
|
||||
else
|
||||
{
|
||||
$servicebez = ($service->load($zeitauf->service_id))?$service->bezeichnung:"";
|
||||
$csvData[] = array($zeitauf->uid, $hauptdatum, $datum->formatDatum($zeitauf->start, 'H:i'), $bisdatum,
|
||||
$zeitauf->projekt_kurzbz, $zeitauf->oe_kurzbz_1, $zeitauf->oe_kurzbz_2, $zeitauf->aktivitaet_kurzbz, $servicebez, $zeitauf->kunde_uid, $beschreibung);
|
||||
$zeitauf->projekt_kurzbz, $zeitauf->projektphase_id, $zeitauf->oe_kurzbz_1, $zeitauf->oe_kurzbz_2, $zeitauf->aktivitaet_kurzbz, $servicebez, $zeitauf->kunde_uid, $beschreibung);
|
||||
}
|
||||
}
|
||||
return $csvData;
|
||||
|
||||
@@ -32,6 +32,7 @@ require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/mitarbeiter.class.php');
|
||||
require_once('../../../include/zeitaufzeichnung.class.php');
|
||||
require_once('../../../include/projekt.class.php');
|
||||
require_once('../../../include/projektphase.class.php');
|
||||
|
||||
if (!isset($_GET['projexpmonat']))
|
||||
die("Parameter monat fehlt");
|
||||
@@ -61,17 +62,19 @@ $daysinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
|
||||
|
||||
$date = new datum();
|
||||
$ztauf = new zeitaufzeichnung();
|
||||
$projektphaseclass = new projektphase();
|
||||
|
||||
$activitiesToIgnore = array('DienstreiseMT', 'Ersatzruhe');//aktivitaetstypen which shouldn't be added to worktime
|
||||
$ztauf->getListeUserFromTo($uid, $year.'-'.$month.'-01', $year.'-'.$month.'-'.$daysinmonth, $activitiesToIgnore);
|
||||
|
||||
//objects for one projectline of list (corresponds to one day)
|
||||
$projectlines = [];
|
||||
$projektlines = array();
|
||||
$dayStart = $dayEnd = '';
|
||||
$projectnames = $tosubtract = $allpauseranges = [];
|
||||
$projektnames = $projektphasenames = $tosubtract = $allpauseranges = array();
|
||||
$activitiesToSubtract = ['Pause', 'LehreExtern', 'Arztbesuch', 'Behoerde'];//aktivitaetstypen which should be subtracted fromworktime
|
||||
$ztaufdata = $ztauf->result;
|
||||
$monthsums = [0 => 0.00];
|
||||
$totalmonthsum = 0.00;
|
||||
$projektmonthsums = array();
|
||||
|
||||
//sort list by startdate ascending (if not already done in zeitaufzeichnung class)
|
||||
usort($ztaufdata, function ($ztaufa, $ztaufb)
|
||||
@@ -85,12 +88,13 @@ usort($ztaufdata, function ($ztaufa, $ztaufb)
|
||||
for ($i = 0; $i < count($ztaufdata); $i++)
|
||||
{
|
||||
$ztaufrow = $ztaufdata[$i];
|
||||
|
||||
//make sure dates are in correct format
|
||||
$ztaufrow->start = $date->formatDatum($ztaufrow->start, $format = 'Y-m-d H:i:s');
|
||||
$ztaufrow->ende = $date->formatDatum($ztaufrow->ende, $format = 'Y-m-d H:i:s');
|
||||
$day = intval($date->formatDatum($ztaufrow->ende, 'd'));
|
||||
//first entry for a day
|
||||
$isFirstEntry = !isset($projectlines[$day]);
|
||||
$isFirstEntry = !isset($projektlines[$day]);
|
||||
|
||||
//last entry for a day (next entry is different day)
|
||||
$isLastEntry = !array_key_exists($i + 1, $ztaufdata) || intval($date->formatDatum($ztaufdata[$i + 1]->ende, 'd')) != $day;
|
||||
@@ -137,18 +141,19 @@ for ($i = 0; $i < count($ztaufdata); $i++)
|
||||
|
||||
if ($isFirstEntry)
|
||||
{
|
||||
$projectlines[$day] = new stdClass();
|
||||
$projectlines[$day]->arbeitszeit = '';
|
||||
$projectlines[$day]->projekte = [];
|
||||
$projektlines[$day] = new stdClass();
|
||||
$projektlines[$day]->arbeitszeit = '';
|
||||
$projektlines[$day]->projekte = [];
|
||||
}
|
||||
|
||||
if (isset($ztaufrow->projekt_kurzbz))
|
||||
{
|
||||
//Project already in projectline - add to worktime and description
|
||||
if (array_key_exists($ztaufrow->projekt_kurzbz, $projectlines[$day]->projekte))
|
||||
if (array_key_exists($ztaufrow->projekt_kurzbz, $projektlines[$day]->projekte))
|
||||
{
|
||||
$laststart =& $projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->laststart;
|
||||
$lastende =& $projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->lastende;
|
||||
$currproj =& $projektlines[$day]->projekte[$ztaufrow->projekt_kurzbz];
|
||||
$laststart =& $currproj->laststart;
|
||||
$lastende =& $currproj->lastende;
|
||||
|
||||
$toadd = 0.00;
|
||||
//case 1: there is no overlap, just add project time difference
|
||||
@@ -157,56 +162,107 @@ for ($i = 0; $i < count($ztaufdata); $i++)
|
||||
$toadd = $date->convertTimeStringToHours($ztaufrow->diff);
|
||||
$laststart = $ztaufrow->start;
|
||||
$lastende = $ztaufrow->ende;
|
||||
$newprojecttime = new stdClass();
|
||||
$newprojecttime->start = $ztaufrow->start;
|
||||
$newprojecttime->ende = $ztaufrow->ende;
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->alleZeiten[] = $newprojecttime;
|
||||
$newprojekttime = new stdClass();
|
||||
$newprojekttime->start = $ztaufrow->start;
|
||||
$newprojekttime->ende = $ztaufrow->ende;
|
||||
$currproj->alleZeiten[] = $newprojekttime;
|
||||
if (isset($ztaufrow->projektphase_id))
|
||||
$currproj->projektphasen[$ztaufrow->projektphase_id]->alleZeiten[] = $newprojekttime;
|
||||
}
|
||||
//case 2: overlap - add only part of the time
|
||||
elseif ($ztaufrow->start < $lastende && $ztaufrow->ende > $lastende)
|
||||
{
|
||||
$toadd = ($date->mktime_fromtimestamp($ztaufrow->ende) - $date->mktime_fromtimestamp($lastende)) / 3600;
|
||||
$lastende = $ztaufrow->ende;
|
||||
$alleZeiten =& $projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->alleZeiten;
|
||||
|
||||
$alleZeiten =& $currproj->alleZeiten;
|
||||
$index = count($alleZeiten);
|
||||
$alleZeiten[$index - 1]->ende = $ztaufrow->ende;
|
||||
|
||||
//check if overlap in projektphase, change ende accordingly
|
||||
if (isset($ztaufrow->projektphase_id))
|
||||
{
|
||||
$projektphaseAlleZeiten =& $currproj->projektphasen[$ztaufrow->projektphase_id]->alleZeiten;
|
||||
$projektphaselastendeidx = count($projektphaseAlleZeiten);
|
||||
$projektphaselastende =& $projektphaseAlleZeiten[$projektphaselastendeidx - 1];
|
||||
if ($ztaufrow->start < $projektphaselastende && $ztaufrow->ende > $projektphaselastende)
|
||||
$projektphaselastende->ende = $ztaufrow->ende;
|
||||
}
|
||||
}
|
||||
$currproj->stunden +=$toadd;
|
||||
//add to projektphase
|
||||
if (isset($ztaufrow->projektphase_id))
|
||||
{
|
||||
$currproj->projektphasen[$ztaufrow->projektphase_id]->stunden += $toadd;
|
||||
}
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->stunden += $toadd;
|
||||
|
||||
//concatenate descriptions "working packages" for each project
|
||||
if (!empty($ztaufrow->beschreibung))
|
||||
{
|
||||
$packagecounter = ++$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->arbeitspakete;
|
||||
$packagecounter = ++$currproj->arbeitspakete;
|
||||
if ($packagecounter == 1)
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->beschreibung = $ztaufrow->beschreibung;
|
||||
$currproj->beschreibung = $ztaufrow->beschreibung;
|
||||
else
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->beschreibung .= " | ".str_replace(array("\r\n", "\r", "\n"), " ", $ztaufrow->beschreibung);
|
||||
$currproj->beschreibung .= " | ".str_replace(array("\r\n", "\r", "\n"), " ", $ztaufrow->beschreibung);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//add new project to projectline
|
||||
$newproject = new stdClass();
|
||||
$newproject->laststart = $ztaufrow->start;
|
||||
$newproject->lastende = $ztaufrow->ende;
|
||||
$newprojecttime = new stdClass();
|
||||
$newprojecttime->start = $ztaufrow->start;
|
||||
$newprojecttime->ende = $ztaufrow->ende;
|
||||
$newproject->alleZeiten = [];
|
||||
$newproject->alleZeiten[] = $newprojecttime;
|
||||
$newproject->stunden = $date->convertTimeStringToHours($ztaufrow->diff);
|
||||
$newproject->arbeitspakete = 0;//counter for tracking number of descriptions (work packages)
|
||||
$newproject->beschreibung = '';
|
||||
$stunden = $date->convertTimeStringToHours($ztaufrow->diff);
|
||||
|
||||
$newprojekt = new stdClass();
|
||||
$newprojekt->laststart = $ztaufrow->start;
|
||||
$newprojekt->lastende = $ztaufrow->ende;
|
||||
$newprojekttime = new stdClass();
|
||||
$newprojekttime->start = $ztaufrow->start;
|
||||
$newprojekttime->ende = $ztaufrow->ende;
|
||||
$newprojekt->alleZeiten = [];
|
||||
$newprojekt->alleZeiten[] = $newprojekttime;
|
||||
$newprojekt->stunden = $stunden;
|
||||
$newprojekt->arbeitspakete = 0;//counter for tracking number of descriptions (work packages)
|
||||
$newprojekt->beschreibung = '';
|
||||
if (!empty($ztaufrow->beschreibung))
|
||||
{
|
||||
$newproject->beschreibung = str_replace(array("\r\n", "\r", "\n"), " ", $ztaufrow->beschreibung);
|
||||
$newproject->arbeitspakete++;
|
||||
$newprojekt->beschreibung = str_replace(array("\r\n", "\r", "\n"), " ", $ztaufrow->beschreibung);
|
||||
$newprojekt->arbeitspakete++;
|
||||
}
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz] = $newproject;
|
||||
|
||||
//add new project to array with unique project names
|
||||
if (!in_array($ztaufrow->projekt_kurzbz, $projectnames))
|
||||
$projectnames[] = $ztaufrow->projekt_kurzbz;
|
||||
//add projektphasen of project
|
||||
$projektphasen = array();
|
||||
|
||||
if ($projektphaseclass->getProjektphasen($ztaufrow->projekt_kurzbz))
|
||||
{
|
||||
$projektphasenames[$ztaufrow->projekt_kurzbz] = array();
|
||||
|
||||
foreach ($projektphaseclass->result as $ppitem)
|
||||
{
|
||||
$phasetoadd = new stdClass();
|
||||
$phasetoadd->bezeichnung = $ppitem->bezeichnung;
|
||||
$phasetoadd->stunden = 0;
|
||||
$phasetoadd->alleZeiten = array();
|
||||
|
||||
if ($ppitem->projektphase_id == $ztaufrow->projektphase_id)
|
||||
{
|
||||
$phasetoadd->stunden += $stunden;
|
||||
$phasetoadd->alleZeiten[] = $newprojekttime;
|
||||
}
|
||||
|
||||
$projektphasen[$ppitem->projektphase_id] = $phasetoadd;
|
||||
|
||||
//add new projektphase to array with unique projekt phase names
|
||||
if (!in_array($ppitem->bezeichnung, $projektphasenames[$ztaufrow->projekt_kurzbz]))
|
||||
$projektphasenames[$ztaufrow->projekt_kurzbz][] = $ppitem->bezeichnung;
|
||||
}
|
||||
}
|
||||
|
||||
$newprojekt->projektphasen = $projektphasen;
|
||||
|
||||
$projektlines[$day]->projekte[$ztaufrow->projekt_kurzbz] = $newprojekt;
|
||||
|
||||
//add new projekt to array with unique projekt names
|
||||
if (!in_array($ztaufrow->projekt_kurzbz, $projektnames))
|
||||
$projektnames[] = $ztaufrow->projekt_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -215,7 +271,7 @@ for ($i = 0; $i < count($ztaufdata); $i++)
|
||||
$worktime_unix = $date->mktime_fromtimestamp($dayEnd) - $date->mktime_fromtimestamp($dayStart);
|
||||
$worktimehours = $worktime_unix / 3600;
|
||||
|
||||
$projectlines[$day]->arbeitszeit = $worktimehours;
|
||||
$projektlines[$day]->arbeitszeit = $worktimehours;
|
||||
$pauseSubtracted = 0.00;
|
||||
$lehreExternExists = false;
|
||||
|
||||
@@ -224,42 +280,71 @@ for ($i = 0; $i < count($ztaufdata); $i++)
|
||||
{
|
||||
if ($subtraction->typ == $activitiesToSubtract[0])
|
||||
{
|
||||
$projectlines[$day]->arbeitszeit -= $subtraction->diff;
|
||||
$projektlines[$day]->arbeitszeit -= $subtraction->diff;
|
||||
$pauseSubtracted += $subtraction->diff;
|
||||
}
|
||||
elseif ($subtraction->typ == $activitiesToSubtract[1] && $subtraction->start >= $dayStart && $subtraction->ende <= $dayEnd)
|
||||
{
|
||||
$projectlines[$day]->arbeitszeit -= $subtraction->diff;
|
||||
$projektlines[$day]->arbeitszeit -= $subtraction->diff;
|
||||
$lehreExternExists = true;
|
||||
}
|
||||
elseif ($subtraction->typ == $activitiesToSubtract[2] || $subtraction->typ == $activitiesToSubtract[3])
|
||||
{
|
||||
$projectlines[$day]->arbeitszeit -= $subtraction->diff;
|
||||
$projektlines[$day]->arbeitszeit -= $subtraction->diff;
|
||||
}
|
||||
}
|
||||
|
||||
//subtract pauses from project worktimes
|
||||
//subtract pauses from projekt worktimes
|
||||
foreach ($allpauseranges as $pauserange)
|
||||
{
|
||||
foreach ($projectlines[$day]->projekte as $name => $project)
|
||||
foreach ($projektlines[$day]->projekte as $name => $projekt)
|
||||
{
|
||||
foreach ($projectlines[$day]->projekte[$name]->alleZeiten as $zeit)
|
||||
$proj =& $projektlines[$day]->projekte[$name];
|
||||
foreach ($proj->alleZeiten as $zeit)
|
||||
{
|
||||
//pause between project start and end
|
||||
$subtraction = 0.00;
|
||||
|
||||
//pause between projekt start and end
|
||||
if ($pauserange->start >= $zeit->start && $pauserange->ende <= $zeit->ende)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($pauserange->start)) / 3600;
|
||||
break;
|
||||
$subtraction = $date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($pauserange->start);
|
||||
}
|
||||
//pause and project time overlap at project time end
|
||||
//pause and projekt time overlap at projekt time end
|
||||
elseif ($pauserange->start < $zeit->ende && $pauserange->start > $zeit->start)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($zeit->ende) - $date->mktime_fromtimestamp($pauserange->start)) / 3600;
|
||||
$subtraction = $date->mktime_fromtimestamp($zeit->ende) - $date->mktime_fromtimestamp($pauserange->start);
|
||||
//$proj->stunden -= ($date->mktime_fromtimestamp($zeit->ende) - $date->mktime_fromtimestamp($pauserange->start)) / 3600;
|
||||
}
|
||||
//pause and project time overlap at project time start
|
||||
//pause and projekt time overlap at projekt time start
|
||||
elseif ($pauserange->ende > $zeit->start && $pauserange->ende < $zeit->ende)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($zeit->start)) / 3600;
|
||||
$subtraction = $date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($zeit->start);
|
||||
}
|
||||
$proj->stunden -= $subtraction / 3600;
|
||||
}
|
||||
|
||||
//subtract from projektphasen
|
||||
foreach ($proj->projektphasen as $phase_id => $phase)
|
||||
{
|
||||
foreach ($phase->alleZeiten as $zeit)
|
||||
{
|
||||
$subtraction = 0.00;
|
||||
//pause between projektphase start and end
|
||||
if ($pauserange->start >= $zeit->start && $pauserange->ende <= $zeit->ende)
|
||||
{
|
||||
$subtraction = ($date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($pauserange->start));
|
||||
}
|
||||
//pause and projekt time overlap at projektphase time end
|
||||
elseif ($pauserange->start < $zeit->ende && $pauserange->start > $zeit->start)
|
||||
{
|
||||
$subtraction = $date->mktime_fromtimestamp($zeit->ende) - $date->mktime_fromtimestamp($pauserange->start);
|
||||
}
|
||||
//pause and projekt time overlap at projektphase time start
|
||||
elseif ($pauserange->ende > $zeit->start && $pauserange->ende < $zeit->ende)
|
||||
{
|
||||
$subtraction = $date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($zeit->start);
|
||||
}
|
||||
$proj->projektphasen[$phase_id]->stunden -= $subtraction / 3600;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -268,29 +353,47 @@ for ($i = 0; $i < count($ztaufdata); $i++)
|
||||
//worktime with no break greater 6 -> compulsory break of half an hour
|
||||
if ($pauseSubtracted < 0.5 && !$lehreExternExists)
|
||||
{
|
||||
if ($projectlines[$day]->arbeitszeit >= 6.5)
|
||||
$projectlines[$day]->arbeitszeit -= 0.5;
|
||||
if ($projektlines[$day]->arbeitszeit >= 6.5)
|
||||
$projektlines[$day]->arbeitszeit -= 0.5;
|
||||
|
||||
//ensure that no worktime gets smaller than 6 hours because of compulsory break
|
||||
elseif ($projectlines[$day]->arbeitszeit > 6)
|
||||
$projectlines[$day]->arbeitszeit -= $projectlines[$day]->arbeitszeit - 6;
|
||||
elseif ($projektlines[$day]->arbeitszeit > 6)
|
||||
$projektlines[$day]->arbeitszeit -= $projektlines[$day]->arbeitszeit - 6;
|
||||
}
|
||||
|
||||
$projectlines[$day]->arbeitszeit = round($projectlines[$day]->arbeitszeit, 2);
|
||||
$projektlines[$day]->arbeitszeit = round($projektlines[$day]->arbeitszeit, 2);
|
||||
|
||||
foreach ($projectlines[$day]->projekte as $name => $project)
|
||||
//calculate sums
|
||||
foreach ($projektlines[$day]->projekte as $name => $projekt)
|
||||
{
|
||||
$projecthours =& $projectlines[$day]->projekte[$name]->stunden;
|
||||
$projecthours = round($projecthours, 2);
|
||||
if (array_key_exists($name, $monthsums))
|
||||
$monthsums[$name] += $projecthours;
|
||||
$projekthours =& $projektlines[$day]->projekte[$name]->stunden;
|
||||
$projekthours = round($projekthours, 2);
|
||||
|
||||
if (isset($projektmonthsums[$name]->sum))
|
||||
{
|
||||
$projektmonthsums[$name]->sum += $projekthours;
|
||||
foreach ($projekt->projektphasen as $projektphase)
|
||||
{
|
||||
$projektmonthsums[$name]->projektphasen[$projektphase->bezeichnung] += round($projektphase->stunden, 2, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
$monthsums[$name] = $projecthours;
|
||||
{
|
||||
$monthsum = new stdClass();
|
||||
$monthsum->sum = $projekthours;
|
||||
$monthsum->projektphasen = array();
|
||||
|
||||
foreach ($projekt->projektphasen as $projektphase)
|
||||
{
|
||||
$monthsum->projektphasen[$projektphase->bezeichnung] = round($projektphase->stunden, 2, 0);
|
||||
}
|
||||
$projektmonthsums[$name] = $monthsum;
|
||||
}
|
||||
}
|
||||
|
||||
$dayStart = $dayEnd = '';
|
||||
$tosubtract = $allpauseranges = [];
|
||||
$monthsums[0] += $projectlines[$day]->arbeitszeit;
|
||||
$totalmonthsum += $projektlines[$day]->arbeitszeit;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,10 +404,6 @@ $workbook->setVersion(8);
|
||||
// sending HTTP headers
|
||||
$workbook->send('Projektliste_'.$month.'_'.$year.'.xls');
|
||||
|
||||
// Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet($p->t('zeitaufzeichnung/projektliste'));
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
|
||||
// Define formats
|
||||
$format_heading_left =& $workbook->addFormat();
|
||||
$format_heading_left->setBold();
|
||||
@@ -365,6 +464,12 @@ $format_cell_rightline->setBorder(1);
|
||||
$format_cell_rightline->setVAlign('vcenter');
|
||||
$format_cell_rightline->setRight(2);
|
||||
|
||||
$format_cell_leftrightline =& $workbook->addFormat();
|
||||
$format_cell_leftrightline->setBottom(1);
|
||||
$format_cell_leftrightline->setVAlign('vcenter');
|
||||
$format_cell_leftrightline->setLeft(2);
|
||||
$format_cell_leftrightline->setRight(2);
|
||||
|
||||
$format_cell_centered =& $workbook->addFormat();
|
||||
$format_cell_centered->setBorder(1);
|
||||
$format_cell_centered->setAlign('center');
|
||||
@@ -372,7 +477,6 @@ $format_cell_centered->setVAlign('vcenter');
|
||||
|
||||
$format_cell_centered_leftline =& $workbook->addFormat();
|
||||
$format_cell_centered_leftline->setRight(1);
|
||||
$format_cell_centered_leftline->setLeft(1);
|
||||
$format_cell_centered_leftline->setBottom(1);
|
||||
$format_cell_centered_leftline->setAlign('center');
|
||||
$format_cell_centered_leftline->setVAlign('vcenter');
|
||||
@@ -384,6 +488,20 @@ $format_cell_centered_rightline->setAlign('center');
|
||||
$format_cell_centered_rightline->setVAlign('vcenter');
|
||||
$format_cell_centered_rightline->setRight(2);
|
||||
|
||||
$format_cell_centered_leftrightline =& $workbook->addFormat();
|
||||
$format_cell_centered_leftrightline->setBottom(1);
|
||||
$format_cell_centered_leftrightline->setAlign('center');
|
||||
$format_cell_centered_leftrightline->setVAlign('vcenter');
|
||||
$format_cell_centered_leftrightline->setLeft(2);
|
||||
$format_cell_centered_leftrightline->setRight(2);
|
||||
|
||||
$format_cell_centered_topbottomline =& $workbook->addFormat();
|
||||
$format_cell_centered_topbottomline->setBorder(1);
|
||||
$format_cell_centered_topbottomline->setAlign('center');
|
||||
$format_cell_centered_topbottomline->setVAlign('vcenter');
|
||||
$format_cell_centered_topbottomline->setBottom(2);
|
||||
$format_cell_centered_topbottomline->setTop(2);
|
||||
|
||||
$format_cell_centered_topbottomleftline =& $workbook->addFormat();
|
||||
$format_cell_centered_topbottomleftline->setBorder(1);
|
||||
$format_cell_centered_topbottomleftline->setAlign('center');
|
||||
@@ -406,178 +524,243 @@ $format_cell_centered_alllines->setAlign('center');
|
||||
$format_cell_centered_alllines->setVAlign('vcenter');
|
||||
|
||||
//define column widths
|
||||
$nrProjects = count($projectnames);
|
||||
$nrProjects = count($projektnames);
|
||||
$totalwidth = 150;
|
||||
$daywidth = 4;
|
||||
$totalworktimewidth = 13;
|
||||
$worktimewidth = 8;
|
||||
$worksheet->setColumn(0, 1, $daywidth);
|
||||
$worksheet->setColumn(2, 2, $totalworktimewidth);
|
||||
$worktimewidth = 14;
|
||||
$timecolumnswidth = 2 * $daywidth + $totalworktimewidth + $worktimewidth;
|
||||
|
||||
//calculate max width for project descriptions
|
||||
$maxwidthprojects = $totalworktimewidth * (12 - $nrProjects);
|
||||
$projectcolumnwidths = array_fill_keys($projectnames, $worktimewidth);
|
||||
|
||||
//set project column width depending on project description widths
|
||||
foreach ($projectlines as $line)
|
||||
if ($nrProjects < 1)//no projekts - merge all cells and write notice
|
||||
{
|
||||
foreach ($line->projekte as $key => $project)
|
||||
$projektnames[] = "Keine Projekte vorhanden";
|
||||
}
|
||||
|
||||
foreach ($projektnames as $projektname)
|
||||
{
|
||||
//Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet($projektname);
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
|
||||
//general options
|
||||
$worksheet->setLandscape();
|
||||
$worksheet->hideGridlines();
|
||||
$worksheet->hideScreenGridlines();
|
||||
$worksheet->setmargins(0.4);
|
||||
|
||||
//fixed width columns
|
||||
$worksheet->setColumn(0, 1, $daywidth);
|
||||
$worksheet->setColumn(2, 2, $totalworktimewidth);
|
||||
|
||||
//calculate number of columns of projekt with phases
|
||||
$nrPhases = isset($projektphasenames[$projektname]) ? count($projektphasenames[$projektname]) : 0;
|
||||
|
||||
//get taetigkeiten column width -
|
||||
//minimum is wordlength, maximum restwidth after subraction of projektphase minimum width
|
||||
$mintaetigkeitenwidth = strlen($p->t('zeitaufzeichnung/taetigkeit'));
|
||||
$maxtaetigkeitenlimit = $totalwidth - $timecolumnswidth - $nrPhases * $worktimewidth;
|
||||
|
||||
if (isset($projektlines->projekte[$projektname]))
|
||||
{
|
||||
if ($projectcolumnwidths[$key] < strlen($project->beschreibung))
|
||||
$projectcolumnwidths[$key] = strlen($project->beschreibung);
|
||||
}
|
||||
}
|
||||
|
||||
//distribute width remainder evenly among projects
|
||||
if ($nrProjects != 0)
|
||||
$remwidth = ($maxwidthprojects - array_sum($projectcolumnwidths)) / $nrProjects;
|
||||
|
||||
foreach ($projectcolumnwidths as $projectname => $width)
|
||||
$projectcolumnwidths[$projectname] += $remwidth;
|
||||
|
||||
//calculating spaces for centering global header texts
|
||||
$numberspaces = ($maxwidthprojects - 10 - strlen($username));
|
||||
$spacesstringFirst = '';
|
||||
|
||||
while ($numberspaces > 0)
|
||||
{
|
||||
$spacesstringFirst .= ' ';
|
||||
$numberspaces--;
|
||||
}
|
||||
|
||||
$numberspaces = ($maxwidthprojects - 14 - strlen($persnr));
|
||||
$spacesstringSecond = '';
|
||||
while ($numberspaces > 0)
|
||||
{
|
||||
$spacesstringSecond .= ' ';
|
||||
$numberspaces--;
|
||||
}
|
||||
|
||||
$spalte = $zeile = 0;
|
||||
|
||||
//set language options
|
||||
$decpoint = $sprache_index === '2' ? '.' : ',';
|
||||
$thousandsep = $sprache_index === '2' ? ',' : '.';
|
||||
|
||||
//write global header
|
||||
$lastspalte = ($nrProjects > 0) ? 2 + count($projectnames) * 2 : 14;
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 2);
|
||||
$worksheet->write($zeile, $spalte, $monthtext.' '.$year, $format_heading_left);
|
||||
$worksheet->write($zeile + 1, $spalte, $monthtext.' '.$year, $format_heading_left);
|
||||
for ($i = 1; $i < 3; $i++)
|
||||
{
|
||||
$worksheet->write($zeile, $spalte + $i, '', $format_heading_topline);
|
||||
$worksheet->write($zeile + 1, $spalte + $i, '', $format_heading_bottomline);
|
||||
}
|
||||
$worksheet->setMerge($zeile, $spalte + 3, $zeile, $lastspalte);
|
||||
$worksheet->setMerge($zeile + 1, $spalte + 3, $zeile + 1, $lastspalte);
|
||||
$worksheet->write($zeile, $spalte + 3, $p->t('zeitaufzeichnung/projektlistegedruckt').$spacesstringFirst.$username, $format_heading_right);
|
||||
for ($i = 4; $i < $lastspalte; $i++)
|
||||
{
|
||||
$worksheet->write($zeile, $i, '', $format_heading_topline);
|
||||
$worksheet->write($zeile + 1, $i, '', $format_heading_bottomline);
|
||||
}
|
||||
$worksheet->write($zeile, $lastspalte, '', $format_heading_right);
|
||||
$worksheet->write($zeile + 1, $spalte + 3, date('d.m.Y H:i').$spacesstringSecond.$p->t('zeitaufzeichnung/personalnr').$persnr, $format_heading_right_bottomline);
|
||||
$worksheet->write($zeile + 1, $lastspalte, '', $format_heading_right_bottomline);
|
||||
$zeile += 3;
|
||||
|
||||
//general options
|
||||
$worksheet->setLandscape();
|
||||
$worksheet->hideGridlines();
|
||||
$worksheet->hideScreenGridlines();
|
||||
|
||||
//write table header
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/tag'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte, '', $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte + 1, $p->t('zeitaufzeichnung/tag'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, ++$spalte, '', $format_bold_centered_alllines);
|
||||
$worksheet->setMerge($zeile, ++$spalte, $zeile + 1, $spalte);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/arbeitszeit'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte, '', $format_bold_centered_alllines);
|
||||
$spalte++;
|
||||
|
||||
foreach ($projectnames as $project)
|
||||
{
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, $project, $format_bold_centered_toprightline);
|
||||
$worksheet->write($zeile, $spalte + 1, '', $format_bold_centered_toprightline);
|
||||
$worksheet->write($zeile + 1, $spalte, $p->t('zeitaufzeichnung/stunden'), $format_bold_centered_bottomline);
|
||||
$worksheet->write($zeile + 1, $spalte + 1, $p->t('zeitaufzeichnung/taetigkeit'), $format_bold_centered_bottomrightline);
|
||||
$spalte += 2;
|
||||
}
|
||||
$zeile += 2;
|
||||
|
||||
//write table body
|
||||
for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++)
|
||||
{
|
||||
//write day and weekday
|
||||
$spalte = 0;
|
||||
$monthstr = ($month < 10) ? '0'.$month : $month;
|
||||
$daystr = ($daysnmbr < 10) ? '0'.$daysnmbr : $daysnmbr;
|
||||
$datestring = $year.'-'.$monthstr.'-'.$daystr;
|
||||
$weekday = substr($tagbez[$sprache_index][$date->formatDatum($datestring, 'N')], 0, 2);
|
||||
$worksheet->write($zeile, $spalte++, $weekday, $format_cell_centered_leftline);
|
||||
$worksheet->write($zeile, $spalte++, $daysnmbr, $format_cell_centered_rightline);
|
||||
|
||||
if (array_key_exists($daysnmbr, $projectlines))
|
||||
{
|
||||
//write worktime
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projectlines[$daysnmbr]->arbeitszeit, 2, $decpoint, $thousandsep), $format_cell_centered_rightline);
|
||||
$spaltetemp = $spalte;
|
||||
//write projects
|
||||
foreach ($projectnames as $project)
|
||||
foreach ($projektlines->projekte[$projektname] as $projekt)
|
||||
{
|
||||
if (array_key_exists($project, $projectlines[$daysnmbr]->projekte))
|
||||
$projektbeschreibunglength = strlen($projekt->beschreibung);
|
||||
if ($projektbeschreibunglength >= $maxtaetigkeitenlimit)
|
||||
{
|
||||
$worksheet->setColumn($spalte, $spalte, $worktimewidth);
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projectlines[$daysnmbr]->projekte[$project]->stunden, 2, $decpoint, $thousandsep), $format_cell_centered_leftline);
|
||||
$worksheet->setColumn($spalte, $spalte, $projectcolumnwidths[$project]);
|
||||
$worksheet->write($zeile, $spalte++, $projectlines[$daysnmbr]->projekte[$project]->beschreibung, $format_cell_rightline);
|
||||
}
|
||||
else
|
||||
{
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered_leftline);
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_rightline);
|
||||
$mintaetigkeitenwidth = $maxtaetigkeitenlimit;
|
||||
break;
|
||||
}
|
||||
elseif ($projektbeschreibunglength > $mintaetigkeitenwidth)
|
||||
$mintaetigkeitenwidth = $projektbeschreibunglength;
|
||||
}
|
||||
}
|
||||
|
||||
//get projektphase width, width depending on bezeichnung
|
||||
$phasewidth = 0;
|
||||
$phasewidthlimit = $nrPhases > 0
|
||||
? ($totalwidth - $timecolumnswidth - $mintaetigkeitenwidth) / $nrPhases
|
||||
: $totalwidth - 4 * $daywidth - $worktimewidth - $mintaetigkeitenwidth;
|
||||
|
||||
if (isset($projektphasenames[$projektname]))
|
||||
{
|
||||
foreach ($projektphasenames[$projektname] as $projektphasename)
|
||||
{
|
||||
$projektphasewidth = strlen($projektphasename);
|
||||
if ($projektphasewidth >= $phasewidthlimit)
|
||||
{
|
||||
$phasewidth = $phasewidthlimit;
|
||||
break;
|
||||
}
|
||||
elseif ($projektphasewidth > $phasewidth)
|
||||
$phasewidth = $projektphasewidth;
|
||||
}
|
||||
}
|
||||
|
||||
//width remainder used for taetigkeit
|
||||
$taetigkeitenwidth = $totalwidth - $timecolumnswidth - $phasewidth * $nrPhases;
|
||||
|
||||
$lastspalte = 4 + $nrPhases;
|
||||
|
||||
//calculating spaces for centering global header texts
|
||||
$usernamelength = strlen($username) * 1.77;
|
||||
$numberspacesfirstrow = $totalwidth - $daywidth * 2 - $worktimewidth - $usernamelength;
|
||||
$numberspacessecondrow = $numberspacesfirstrow + $usernamelength - strlen($p->t('zeitaufzeichnung/personalnr').$persnr) - 4;
|
||||
|
||||
$spacesstringfirstrow = str_repeat(' ', $numberspacesfirstrow);
|
||||
$spacesstringsecondrow = str_repeat(' ', $numberspacessecondrow);
|
||||
|
||||
$spalte = $zeile = 0;
|
||||
|
||||
//set language options
|
||||
$decpoint = $sprache_index === '2' ? '.' : ',';
|
||||
$thousandsep = $sprache_index === '2' ? ',' : '.';
|
||||
|
||||
//write global header
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 2);
|
||||
$worksheet->write($zeile, $spalte, $monthtext.' '.$year, $format_heading_left);
|
||||
$worksheet->write($zeile + 1, $spalte, $monthtext.' '.$year, $format_heading_left);
|
||||
for ($i = 1; $i < 3; $i++)
|
||||
{
|
||||
$worksheet->write($zeile, $spalte + $i, '', $format_heading_topline);
|
||||
$worksheet->write($zeile + 1, $spalte + $i, '', $format_heading_bottomline);
|
||||
}
|
||||
$worksheet->setMerge($zeile, $spalte + 3, $zeile, $lastspalte);
|
||||
$worksheet->setMerge($zeile + 1, $spalte + 3, $zeile + 1, $lastspalte);
|
||||
$worksheet->write($zeile, $spalte + 3, $p->t('zeitaufzeichnung/projektlistegedruckt').$spacesstringfirstrow.$username, $format_heading_right);
|
||||
for ($i = 4; $i < $lastspalte; $i++)
|
||||
{
|
||||
$worksheet->write($zeile, $i, '', $format_heading_topline);
|
||||
$worksheet->write($zeile + 1, $i, '', $format_heading_bottomline);
|
||||
}
|
||||
$worksheet->write($zeile, $lastspalte, '', $format_heading_right);
|
||||
$worksheet->write($zeile + 1, $spalte + 3, date('d.m.Y H:i').$spacesstringsecondrow.$p->t('zeitaufzeichnung/personalnr').$persnr, $format_heading_right_bottomline);
|
||||
$worksheet->write($zeile + 1, $lastspalte, '', $format_heading_right_bottomline);
|
||||
$zeile += 3;
|
||||
|
||||
$spalte = 0;
|
||||
|
||||
//write table header
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/tag'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte, '', $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte + 1, $p->t('zeitaufzeichnung/tag'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, ++$spalte, '', $format_bold_centered_alllines);
|
||||
$worksheet->setMerge($zeile, ++$spalte, $zeile + 1, $spalte);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/arbeitszeit'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte, '', $format_bold_centered_alllines);
|
||||
$spalte++;
|
||||
|
||||
if (isset($projektphasenames[$projektname]))
|
||||
{
|
||||
$phasenames = $projektphasenames[$projektname];
|
||||
$phasenameslength = count($phasenames);
|
||||
}
|
||||
else
|
||||
{
|
||||
//write empty cells until end of table
|
||||
$worksheet->writeString($zeile, $spalte, number_format(0, 2, $decpoint, $thousandsep), $format_cell_centered_leftline);
|
||||
$toskip = count($projectnames) * 2;
|
||||
for ($i = 0; $i <= $toskip; $i++)
|
||||
{
|
||||
if ($i % 2 == 0)
|
||||
$worksheet->write($zeile, $spalte, '', $format_cell_centered_rightline);
|
||||
else
|
||||
$worksheet->write($zeile, $spalte, '', $format_cell_centered);
|
||||
$spalte++;
|
||||
}
|
||||
$phasenames = array();
|
||||
$phasenameslength = 0;
|
||||
}
|
||||
$zeile++;
|
||||
$worksheet->write($zeile, $spalte + $phasenameslength + 1, '', $format_bold_centered_toprightline);
|
||||
$worksheet->write($zeile + 1, $spalte, $p->t('zeitaufzeichnung/projektstunden'), $format_bold_centered_bottomline);
|
||||
|
||||
for($i = 0; $i < $phasenameslength; $i++)
|
||||
$worksheet->write($zeile, $spalte + 1 + $i, '', $format_bold_centered_toprightline);
|
||||
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1 + $phasenameslength);
|
||||
$worksheet->write($zeile, $spalte, $projektname, $format_bold_centered_toprightline);
|
||||
|
||||
for ($i = 0; $i < $phasenameslength; $i++)
|
||||
$worksheet->write($zeile + 1, $spalte + 1 + $i, $phasenames[$i], $format_bold_centered_bottomline);
|
||||
|
||||
$worksheet->setColumn($spalte + $phasenameslength + 1, $spalte + $phasenameslength + 1, $taetigkeitenwidth);
|
||||
$worksheet->write($zeile + 1, $spalte + $phasenameslength + 1, $p->t('zeitaufzeichnung/taetigkeit'), $format_bold_centered_bottomrightline);
|
||||
$spalte = $spalte + 2 + $phasenameslength;
|
||||
$zeile += 2;
|
||||
|
||||
//write table body
|
||||
for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++)
|
||||
{
|
||||
//write day and weekday
|
||||
$spalte = 0;
|
||||
$monthstr = ($month < 10) ? '0'.$month : $month;
|
||||
$daystr = ($daysnmbr < 10) ? '0'.$daysnmbr : $daysnmbr;
|
||||
$datestring = $year.'-'.$monthstr.'-'.$daystr;
|
||||
$weekday = substr($tagbez[$sprache_index][$date->formatDatum($datestring, 'N')], 0, 2);
|
||||
$worksheet->write($zeile, $spalte++, $weekday, $format_cell_centered_leftline);
|
||||
$worksheet->write($zeile, $spalte++, $daysnmbr, $format_cell_centered_rightline);
|
||||
|
||||
if (array_key_exists($daysnmbr, $projektlines))
|
||||
{
|
||||
//write worktime
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projektlines[$daysnmbr]->arbeitszeit, 2, $decpoint, $thousandsep), $format_cell_centered_rightline);
|
||||
$spaltetemp = $spalte;
|
||||
//write projekt
|
||||
if (array_key_exists($projektname, $projektlines[$daysnmbr]->projekte))
|
||||
{
|
||||
$projekt = $projektlines[$daysnmbr]->projekte[$projektname];
|
||||
|
||||
$worksheet->setColumn($spalte, $spalte, $worktimewidth);
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projekt->stunden, 2, $decpoint, $thousandsep), $format_cell_centered_leftrightline);
|
||||
|
||||
foreach ($projekt->projektphasen as $projektphase)
|
||||
{
|
||||
$worksheet->setColumn($spalte, $spalte, $phasewidth);
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projektphase->stunden, 2, $decpoint, $thousandsep), $format_cell_centered);
|
||||
}
|
||||
|
||||
$worksheet->setColumn($spalte, $spalte, $phasewidth);
|
||||
$worksheet->write($zeile, $spalte++, $projekt->beschreibung, $format_cell_leftrightline);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$worksheet->writeString($zeile, $spalte++, number_format(0, 2, $decpoint, $thousandsep), $format_cell_centered_leftrightline);
|
||||
}
|
||||
|
||||
if (!array_key_exists($daysnmbr, $projektlines) || !array_key_exists($projektname, $projektlines[$daysnmbr]->projekte))
|
||||
{
|
||||
if (isset($projektphasenames[$projektname]))
|
||||
{
|
||||
//write empty cells until end of table
|
||||
$worksheet->write($zeile, $spalte, '', $format_cell_centered_leftrightline);
|
||||
$toskip = count($projektphasenames[$projektname]);
|
||||
for ($i = 0; $i <= $toskip; $i++)
|
||||
{
|
||||
if ($i == 0)
|
||||
$format = $format_cell_centered_leftrightline;
|
||||
else
|
||||
$format = $format_cell_centered;
|
||||
|
||||
$worksheet->write($zeile, $spalte++, '', $format);
|
||||
}
|
||||
$worksheet->write($zeile, $spalte, '', $format_cell_centered_leftrightline);
|
||||
}
|
||||
}
|
||||
$zeile++;
|
||||
}
|
||||
|
||||
//write monthly sums
|
||||
$spalte = 0;
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/summe'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte + 1, '', $format_bold_centered_alllines);
|
||||
$spalte += 2;
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($totalmonthsum, 2, $decpoint, $thousandsep), $format_cell_centered_alllines);
|
||||
|
||||
if (isset($projektmonthsums[$projektname]))
|
||||
{
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projektmonthsums[$projektname]->sum, 2, $decpoint, $thousandsep), $format_cell_centered_alllines);
|
||||
|
||||
foreach ($projektmonthsums[$projektname]->projektphasen as $projektphase)
|
||||
{
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projektphase, 2, $decpoint, $thousandsep), $format_cell_centered_topbottomline);
|
||||
}
|
||||
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered_alllines);
|
||||
}
|
||||
$zeile += 2;
|
||||
|
||||
$worksheet->fitToPages(1, 1);
|
||||
}
|
||||
|
||||
if ($nrProjects < 1)
|
||||
//no projects - merge all cells and write notice
|
||||
{
|
||||
$worksheet->setMerge(3, 3, 4 + $daysinmonth, $lastspalte);
|
||||
$worksheet->write(3, 3, $p->t('zeitaufzeichnung/keineprojekte'), $format_bold_centered_alllines);
|
||||
$worksheet->write(3, $lastspalte, '', $format_bold_centered_alllines);
|
||||
}
|
||||
|
||||
//write monthly sums
|
||||
$spalte = 0;
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/summe'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte + 1, '', $format_bold_centered_alllines);
|
||||
$spalte += 2;
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($monthsums[0], 2, $decpoint, $thousandsep), $format_cell_centered_alllines);
|
||||
foreach ($projectnames as $project)
|
||||
{
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($monthsums[$project], 2, $decpoint, $thousandsep), $format_cell_centered_topbottomleftline);
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered_topbottomrightline);
|
||||
}
|
||||
$worksheet->fitToPages(1, 1);
|
||||
$workbook->close();
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
/*require_once('../../../include/functions.inc.php');*/
|
||||
require_once('../../../include/basis_db.class.php');
|
||||
require_once('../../../include/projektphase.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
//$uid=get_uid();
|
||||
if(isset($_GET['projekt_kurzbz'])) // TODO maybe check that phasen only shown if projekt is projekt of logged in user
|
||||
{
|
||||
$projekt_kurzbz = $_GET['projekt_kurzbz'];
|
||||
$projektphase = new projektphase();
|
||||
|
||||
if($projektphase->getProjektphasen($projekt_kurzbz))
|
||||
{
|
||||
$result_obj = array();
|
||||
foreach($projektphase->result as $row)
|
||||
{
|
||||
$item['projektphase_id']=$row->projektphase_id;
|
||||
$item['bezeichnung']=$row->bezeichnung;
|
||||
$result_obj[]=$item;
|
||||
}
|
||||
echo json_encode($result_obj);
|
||||
}
|
||||
exit;
|
||||
}
|
||||
+665
-533
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
/* Copyright (C) 2012 FH Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*/
|
||||
/**
|
||||
* Dieses Script liefert die iCal Informationen für die vorreservierten Coodle Termine
|
||||
*
|
||||
* Aufruf: http://www.example.com/cis/public/ical_coodle.php/[uid]
|
||||
*/
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/coodle.class.php');
|
||||
require_once('../../include/ical.class.php');
|
||||
|
||||
$uid = mb_substr($_SERVER['PATH_INFO'],1);
|
||||
|
||||
$bn = new benutzer();
|
||||
if(!$bn->load($uid))
|
||||
die('User invalid');
|
||||
|
||||
header("Content-Type: text/calendar; charset=UTF-8");
|
||||
|
||||
echo "BEGIN:VCALENDAR\n";
|
||||
echo "VERSION:2.0\n";
|
||||
echo "PRODID:-//FH TECHNIKUM WIEN//EN\n";
|
||||
//echo "METHOD:PUBLISH\n";
|
||||
//echo 'ORGANIZER;CN=',$bn->vorname,' ',$bn->nachname,':mailto:',$uid,'@',DOMAIN,"\n";
|
||||
//echo 'DTSTAMP;TZID=Europe/Vienna:',date('Ymd', mktime(date('H'),date('i'),date('s'),date('m'),date('d')-5,date('Y'))),'T',date('Hms'),"\n";
|
||||
echo 'DTSTART;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')-5,date('Y'))),"T000000\n";
|
||||
echo 'DTEND;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')+30,date('Y'))),"T000000\n";
|
||||
echo "BEGIN:VTIMEZONE
|
||||
TZID:Europe/Vienna
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
||||
DTSTART:19810329T020000
|
||||
TZNAME:GMT+02:00
|
||||
TZOFFSETTO:+0200
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||
DTSTART:19961027T030000
|
||||
TZNAME:GMT+01:00
|
||||
TZOFFSETTO:+0100
|
||||
END:STANDARD
|
||||
END:VTIMEZONE\n";
|
||||
//echo 'URL:',APP_ROOT,'cis/public/ical_coodle.php/',$uid,"\n";
|
||||
echo "BEGIN:VEVENT";
|
||||
// Alle Umfragen holen an denen der User beteiligt ist
|
||||
$umfragen = new coodle();
|
||||
$umfragen->getCoodleFromUser($uid);
|
||||
$i = 0;
|
||||
foreach($umfragen->result as $umfrage)
|
||||
{
|
||||
if($umfrage->coodle_status_kurzbz=='laufend')
|
||||
{
|
||||
// Bei laufenden Umfragen werden alle angekreuzten Vorschlaege zur FreeBusy hinzugefuegt
|
||||
$ressource = new coodle();
|
||||
if($ressource_id = $ressource->RessourceExists($umfrage->coodle_id, $uid))
|
||||
{
|
||||
// Terminvorschlaege laden die angekreuzt wurden
|
||||
$termine = new coodle();
|
||||
$termine->getRessourceTermin($umfrage->coodle_id, $ressource_id);
|
||||
foreach($termine->result as $termin)
|
||||
{
|
||||
//Start und Ende berechnen
|
||||
$date = new DateTime($termin->datum.' '.$termin->uhrzeit);
|
||||
$dtstart = $date->format('Ymd\THis');
|
||||
$interval =new DateInterval('PT'.$umfrage->dauer.'M');
|
||||
$date->add($interval);
|
||||
$uhrzeit_ende = $date->format('H:i:s');
|
||||
$dtende = $date->format('Ymd\THis');
|
||||
|
||||
if ($i > 0)
|
||||
{
|
||||
echo "\nBEGIN:VEVENT";
|
||||
}
|
||||
echo "\nUID:Coodle_Terminoption".$dtstart."_".$dtende."";
|
||||
echo "\nSUMMARY:Coodle Terminoption";
|
||||
echo "\nDTSTART;TZID=Europe/Vienna:$dtstart";
|
||||
echo "\nDTEND;TZID=Europe/Vienna:$dtende";
|
||||
echo "\nTRANSP:OPAQUE";
|
||||
echo "\nEND:VEVENT";
|
||||
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Bei abgeschlossene Umfragen wird ein iCal File mitgeschickt,
|
||||
// deshalb müssen diese Termine nicht berücksichtigt werden
|
||||
/*elseif($umfrage->coodle_status_kurzbz=='abgeschlossen')
|
||||
{
|
||||
// Bei abgeschlossenen Umfragen wird nur mehr der ausgewaehlte Termin zur FreeBusy hinzugefuegt
|
||||
$termin = new coodle();
|
||||
$coodle_termin_id=$termin->getTerminAuswahl($umfrage->coodle_id);
|
||||
if($termin->loadTermin($coodle_termin_id))
|
||||
{
|
||||
//Start und Ende berechnen
|
||||
$date = new DateTime($termin->datum.' '.$termin->uhrzeit);
|
||||
$dtstart = $date->format('Ymd\THis');
|
||||
$interval =new DateInterval('PT'.$umfrage->dauer.'M');
|
||||
$date->add($interval);
|
||||
$uhrzeit_ende = $date->format('H:i:s');
|
||||
$dtende = $date->format('Ymd\THis');
|
||||
|
||||
echo "\nBEGIN:VEVENT";
|
||||
echo "\nSUMMARY:Coodle Terminzusage";
|
||||
echo "\nDTSTART;TZID=Europe/Vienna: $dtstart";
|
||||
echo "\nDTEND;TZID=Europe/Vienna: $dtende";
|
||||
echo "\nTRANSP:OPAQUE";
|
||||
echo "\nEND:VEVENT";
|
||||
}
|
||||
}*/
|
||||
// stornierte Umfragen werden nicht beruecksichtigt
|
||||
}
|
||||
|
||||
echo "\nEND:VCALENDAR";
|
||||
?>
|
||||
+74
-106
@@ -42,51 +42,20 @@ if (!$db = new basis_db())
|
||||
|
||||
$PHP_SELF=$_SERVER["PHP_SELF"];
|
||||
|
||||
function getSpracheUser()
|
||||
{
|
||||
if(isset($_SESSION['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_SESSION['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isset($_COOKIE['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_COOKIE['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$sprache_user=DEFAULT_LANGUAGE;
|
||||
}
|
||||
setSpracheUser($sprache_user);
|
||||
}
|
||||
return $sprache_user;
|
||||
}
|
||||
|
||||
function setSpracheUser($sprache)
|
||||
{
|
||||
$_SESSION['sprache_user']=$sprache;
|
||||
setcookie('sprache_user',$sprache,time()+60*60*24*30,'/');
|
||||
}
|
||||
|
||||
if(isset($_GET['sprache_user']))
|
||||
{
|
||||
$sprache_user = new sprache();
|
||||
if($sprache_user->load($_GET['sprache_user']))
|
||||
{
|
||||
setSpracheUser($_GET['sprache_user']);
|
||||
}
|
||||
else
|
||||
setSpracheUser(DEFAULT_LANGUAGE);
|
||||
}
|
||||
|
||||
$sprache_user = getSpracheUser();
|
||||
$p = new phrasen($sprache_user);
|
||||
|
||||
$sprache = getSprache();
|
||||
|
||||
// Start session
|
||||
session_start();
|
||||
|
||||
// If language is changed by language select menu, reset language variables
|
||||
if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
|
||||
{
|
||||
$_SESSION['sprache_user'] = $_GET['sprache_user'];
|
||||
$sprache_user = $_GET['sprache_user'];
|
||||
}
|
||||
|
||||
// Set language variable, which impacts the question language
|
||||
$sprache_user = (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) ? $_SESSION['sprache_user'] : DEFAULT_LANGUAGE;
|
||||
$p = new phrasen($sprache_user);
|
||||
|
||||
if(isset($_GET['gebiet_id']))
|
||||
$gebiet_id = $_GET['gebiet_id'];
|
||||
else
|
||||
@@ -191,7 +160,7 @@ $gebiet = new gebiet($gebiet_id);
|
||||
|
||||
if($gebiet->level_start!='')
|
||||
$levelgebiet=true;
|
||||
else
|
||||
else
|
||||
$levelgebiet=false;
|
||||
|
||||
list($stunde, $minute, $sekunde) = explode(':',$gebiet->zeit);
|
||||
@@ -209,20 +178,20 @@ if(isset($_GET['start']) && !$gestartet)
|
||||
$frage = new frage();
|
||||
if(!$frage->generateFragenpool($_SESSION['pruefling_id'], $gebiet_id))
|
||||
die($p->t('testtool/fehlerBeimGenerierenDesFragenpools').':'.$frage->errormsg);
|
||||
|
||||
|
||||
//Erste Frage des Pools holen
|
||||
if(!$frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id']))
|
||||
die($p->t('testtool/esWurdeKeineFrageGefunden'));
|
||||
|
||||
|
||||
//Beginnzeit Speichern
|
||||
$prueflingfrage = new frage();
|
||||
if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id))
|
||||
die($p->t('testtool/fehler').':'.$prueflingfrage->errormsg);
|
||||
|
||||
|
||||
$prueflingfrage->begintime = date('Y-m-d H:i:s');
|
||||
if(!$prueflingfrage->save_prueflingfrage(false))
|
||||
die($p->t('testtool/fehlerBeimStartvorgang'));
|
||||
|
||||
|
||||
echo '<script language="Javascript">parent.menu.location.reload();</script>';
|
||||
}
|
||||
|
||||
@@ -232,46 +201,46 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id']))
|
||||
// vor dem Speichern der Antworten, alle Antworten zu der Frage loeschen
|
||||
// und die Antworten neu anlegen
|
||||
// Unterscheidung ob mehrere oder nur eine Antwort uebergeben wird
|
||||
|
||||
|
||||
if($levelgebiet && !isset($_POST['vorschlag_id']))
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/beiDiesemGebietMuessenSieJedeFrageBeantworten').'</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
$error=false;
|
||||
|
||||
|
||||
$db->db_query('BEGIN;');
|
||||
|
||||
|
||||
// alle vorhandenen Antworten zu dieser Frage loeschen
|
||||
$qry = "DELETE FROM testtool.tbl_antwort WHERE antwort_id in(
|
||||
SELECT antwort_id FROM testtool.tbl_antwort JOIN testtool.tbl_vorschlag USING(vorschlag_id)
|
||||
WHERE frage_id=".$db->db_add_param($_GET['frage_id'])." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id']).")";
|
||||
|
||||
|
||||
$db->db_query($qry);
|
||||
|
||||
// Antwort nur Speichern wenn eine Antwort gewaehlt wurde
|
||||
|
||||
// Antwort nur Speichern wenn eine Antwort gewaehlt wurde
|
||||
if(isset($_POST['vorschlag_id']) && $_POST['vorschlag_id']!='')
|
||||
{
|
||||
$vorschlaege = array();
|
||||
//Falls nur eine einzelne Antwort kommt, diese auch in ein Array packen
|
||||
if(!is_array($_POST['vorschlag_id']))
|
||||
$vorschlaege[0]=$_POST['vorschlag_id'];
|
||||
else
|
||||
else
|
||||
$vorschlaege = $_POST['vorschlag_id'];
|
||||
|
||||
|
||||
//alle Antworten Speichern
|
||||
foreach ($vorschlaege as $vorschlag_id)
|
||||
foreach ($vorschlaege as $vorschlag_id)
|
||||
{
|
||||
if($vorschlag_id!='')
|
||||
{
|
||||
$antwort = new antwort();
|
||||
|
||||
|
||||
$antwort->new = true;
|
||||
$antwort->vorschlag_id = $vorschlag_id;
|
||||
$antwort->pruefling_id = $_SESSION['pruefling_id'];
|
||||
|
||||
|
||||
if(!$antwort->save())
|
||||
{
|
||||
$errormsg = $antwort->errormsg;
|
||||
@@ -279,7 +248,7 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id']))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
//Endzeit der Frage eintragen
|
||||
@@ -290,7 +259,7 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id']))
|
||||
$error = true;
|
||||
}
|
||||
$prueflingfrage->endtime = date('Y-m-d H:i:s');
|
||||
|
||||
|
||||
if(!$prueflingfrage->save_prueflingfrage(false))
|
||||
{
|
||||
$errormsg = $prueflingfrage->errormsg;
|
||||
@@ -298,32 +267,32 @@ if(isset($_POST['submitantwort']) && isset($_GET['frage_id']))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($error)
|
||||
{
|
||||
$db->db_query('ROLLBACK;');
|
||||
die($p->t('testtool/fehler').':'.$errormsg);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$db->db_query('COMMIT;');
|
||||
}
|
||||
|
||||
|
||||
$frage = new frage();
|
||||
|
||||
|
||||
if($levelgebiet)
|
||||
{
|
||||
//bei gelevelten Fragen die naechste Frage holen
|
||||
$frage->generateFragenpool($_SESSION['pruefling_id'], $gebiet_id);
|
||||
}
|
||||
|
||||
|
||||
$frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id);
|
||||
}
|
||||
}
|
||||
|
||||
//Schauen ob dieses Gebiet schon gestartet wurde
|
||||
$qry = "SELECT begintime
|
||||
FROM
|
||||
FROM
|
||||
testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)." AND gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)."
|
||||
ORDER BY begintime ASC LIMIT 1";
|
||||
@@ -352,7 +321,7 @@ else
|
||||
$info='';
|
||||
|
||||
//Name und Studiengang anzeigen
|
||||
$qry_pruefling = "SELECT vorname, nachname, stg_bez, tbl_studiengangstyp.bezeichnung FROM testtool.vw_pruefling
|
||||
$qry_pruefling = "SELECT vorname, nachname, stg_bez, tbl_studiengangstyp.bezeichnung FROM testtool.vw_pruefling
|
||||
JOIN public.tbl_studiengang USING (studiengang_kz)
|
||||
JOIN public.tbl_studiengangstyp USING (typ)
|
||||
WHERE pruefling_id=".$db->db_add_param($_SESSION['pruefling_id']);
|
||||
@@ -373,7 +342,7 @@ if($levelgebiet)
|
||||
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)."
|
||||
AND gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if($result_aktuell = $db->db_query($qry))
|
||||
{
|
||||
if($row_aktuell = $db->db_fetch_object($result_aktuell))
|
||||
@@ -433,8 +402,8 @@ if($demo)
|
||||
else
|
||||
{
|
||||
//Wenn es sich um eine Testfrage handelt, dann wird die verbleibende Zeit angezeigt
|
||||
$qry = "SELECT '$gebiet->zeit'-(now()-min(begintime)) as time
|
||||
FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
$qry = "SELECT '$gebiet->zeit'-(now()-min(begintime)) as time
|
||||
FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER);
|
||||
$result = $db->db_query($qry);
|
||||
$row = $db->db_fetch_object($result);
|
||||
@@ -450,7 +419,7 @@ else
|
||||
|
||||
echo $p->t('testtool/bearbeitungszeit').': <span id="counter"></span>';
|
||||
echo "<script>count_down($zeit)</script>";
|
||||
|
||||
|
||||
if($zeit<0)
|
||||
die('</td></tr></table><center><b>'.$p->t('testtool/dieZeitIstAbgelaufen').'</b></center></body></html>');
|
||||
}
|
||||
@@ -470,17 +439,17 @@ else
|
||||
{
|
||||
// wenn keine Frage uebergeben wurde und die maximale Fragenanzahl erreicht wurde
|
||||
// dann ist das Gebiet fertig
|
||||
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)." AND tbl_pruefling_frage.endtime is not null";
|
||||
$result = $db->db_query($qry);
|
||||
$row = $db->db_fetch_object($result);
|
||||
|
||||
|
||||
if($row->anzahl>=$gebiet->maxfragen)
|
||||
{
|
||||
die("<script>document.location.href='gebietfertig.php';</script>");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$frage_id = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], null, $demo, $levelgebiet);
|
||||
$frage->load($frage_id);
|
||||
}
|
||||
@@ -489,7 +458,7 @@ else
|
||||
if($frage->frage_id!='')
|
||||
{
|
||||
$frage_id = $frage->frage_id;
|
||||
$frage->getFrageSprache($frage_id, $_SESSION['sprache']);
|
||||
$frage->getFrageSprache($frage_id, $_SESSION['sprache_user']);
|
||||
|
||||
if(!$demo)
|
||||
{
|
||||
@@ -502,7 +471,7 @@ if($frage->frage_id!='')
|
||||
$prueflingfrage = new frage();
|
||||
if(!$prueflingfrage->getPrueflingfrage($_SESSION['pruefling_id'], $frage_id))
|
||||
die($p->t('testtool/dieseFrageIstNichtFuerSieBestimmt'));
|
||||
|
||||
|
||||
if($prueflingfrage->begintime=='')
|
||||
{
|
||||
$prueflingfrage->begintime = date('Y-m-d H:i:s');
|
||||
@@ -515,8 +484,8 @@ if($frage->frage_id!='')
|
||||
//Kopfzeile mit Weiter Button und Sprung direkt zu einer Frage
|
||||
if(!$demo && !$levelgebiet)
|
||||
{
|
||||
$qry = "SELECT tbl_pruefling_frage.nummer, tbl_pruefling_frage.frage_id
|
||||
FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
$qry = "SELECT tbl_pruefling_frage.nummer, tbl_pruefling_frage.frage_id
|
||||
FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id'], FHC_INTEGER)." AND demo=false ORDER BY nummer";
|
||||
|
||||
echo "
|
||||
@@ -546,9 +515,9 @@ if($frage->frage_id!='')
|
||||
{
|
||||
if($demo)
|
||||
$value='';
|
||||
else
|
||||
else
|
||||
$value=$p->t('testtool/blaettern').' >>';
|
||||
|
||||
|
||||
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$nextfrage' class='Item'>$value</a>";
|
||||
}
|
||||
else
|
||||
@@ -574,8 +543,8 @@ if($frage->frage_id!='')
|
||||
{
|
||||
echo '
|
||||
<div class="row text-center">
|
||||
<img class="testtoolfrage" src="bild.php?src=frage&frage_id='. $frage->frage_id.'&sprache='. $_SESSION["sprache"].'"></img><br/><br/><br/>
|
||||
</div>
|
||||
<img class="testtoolfrage" src="bild.php?src=frage&frage_id='. $frage->frage_id.'&sprache='. $_SESSION["sprache_user"].'"></img><br/><br/><br/>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
$timestamp = time();
|
||||
@@ -583,13 +552,13 @@ if($frage->frage_id!='')
|
||||
//Sound einbinden
|
||||
if($frage->audio!='')
|
||||
{
|
||||
echo '
|
||||
echo '
|
||||
<div class="row text-center">
|
||||
<audio src="sound.php?src=frage&frage_id='.$frage->frage_id.'&sprache='.$_SESSION['sprache'].'&'.$timestamp.'" controls="controls" type="audio/ogg">
|
||||
<audio src="sound.php?src=frage&frage_id='.$frage->frage_id.'&sprache='.$_SESSION['sprache_user'].'&'.$timestamp.'" controls="controls" type="audio/ogg">
|
||||
<div>
|
||||
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
|
||||
</div>
|
||||
</audio>
|
||||
</audio>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
@@ -597,15 +566,15 @@ if($frage->frage_id!='')
|
||||
$display_well = $frage->nummer == 0 ? '' : 'well'; // don't style frage 0 because this is always the introduction to gebiet
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-xs-offset-1 col-xs-10 col-sm-offset-2 col-sm-8">
|
||||
<div class="col-xs-offset-1 col-xs-10 col-sm-offset-2 col-sm-8">
|
||||
<div class="'. $display_well. ' text-center">'. $frage->text. '</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
|
||||
//Vorschlaege laden
|
||||
$vs = new vorschlag();
|
||||
$vs->getVorschlag($frage->frage_id, $_SESSION['sprache'], $gebiet->zufallvorschlag);
|
||||
$vs->getVorschlag($frage->frage_id, $_SESSION['sprache_user'], $gebiet->zufallvorschlag);
|
||||
$letzte = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo);
|
||||
echo "<form action=\"$PHP_SELF?gebiet_id=$gebiet_id&frage_id=$frage->frage_id\" method=\"POST\" ".(!$letzte && !$levelgebiet?"onsubmit=\"letzteFrage()\"":"").">";
|
||||
echo '
|
||||
@@ -617,22 +586,22 @@ if($frage->frage_id!='')
|
||||
$beantwortet = false;
|
||||
$cnt = 0; // counter für foreach-Schleife
|
||||
$len = count($vs->result);
|
||||
|
||||
|
||||
//Antworten laden falls bereits vorhanden
|
||||
$antwort = new antwort();
|
||||
$antwort->getAntwort($_SESSION['pruefling_id'],$frage->frage_id);
|
||||
|
||||
|
||||
//Vorschlaege anzeigen
|
||||
foreach ($vs->result as $vorschlag)
|
||||
{
|
||||
echo "<td valign='top' style='padding: 25px;'>";
|
||||
|
||||
|
||||
//Bei multipleresponse checkboxen anzeigen ansonsten radiobuttons
|
||||
if($gebiet->multipleresponse)
|
||||
$type='checkbox';
|
||||
else
|
||||
else
|
||||
$type='radio';
|
||||
|
||||
|
||||
//Antworten markieren wenn die Frage bereits beantwortet wurde
|
||||
$checked=false;
|
||||
reset($antwort->result);
|
||||
@@ -644,15 +613,15 @@ if($frage->frage_id!='')
|
||||
$beantwortet = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo '<input type="'.$type.'" class="button_style" name="vorschlag_id[]" value="'.$vorschlag->vorschlag_id.'" '.$checked.'/>';
|
||||
|
||||
|
||||
echo '<br/>';
|
||||
if($vorschlag->bild!='')
|
||||
echo "<img class='testtoolvorschlag' src='bild.php?src=vorschlag&vorschlag_id=$vorschlag->vorschlag_id&sprache=".$_SESSION['sprache']."' /><br/>";
|
||||
echo "<img class='testtoolvorschlag' src='bild.php?src=vorschlag&vorschlag_id=$vorschlag->vorschlag_id&sprache=".$_SESSION['sprache_user']."' /><br/>";
|
||||
if($vorschlag->audio!='')
|
||||
{
|
||||
echo ' <audio src="sound.php?src=vorschlag&vorschlag_id='.$vorschlag->vorschlag_id.'&sprache='.$_SESSION['sprache'].'" controls="controls">
|
||||
echo ' <audio src="sound.php?src=vorschlag&vorschlag_id='.$vorschlag->vorschlag_id.'&sprache='.$_SESSION['sprache_user'].'" controls="controls">
|
||||
<div>
|
||||
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
|
||||
</div>
|
||||
@@ -672,7 +641,7 @@ if($frage->frage_id!='')
|
||||
$cnt++;
|
||||
}
|
||||
|
||||
//wenn singleresponse und keine Levels und vorschlaege vorhanden sind, dann gibt es auch die
|
||||
//wenn singleresponse und keine Levels und vorschlaege vorhanden sind, dann gibt es auch die
|
||||
//moeglichkeit fuer keine Antwort
|
||||
if(!$gebiet->multipleresponse && !$levelgebiet && count($vs->result)>0)
|
||||
{
|
||||
@@ -699,8 +668,8 @@ if($frage->frage_id!='')
|
||||
//Naechste Frage holen und Weiter-Button anzeigen
|
||||
//$frage = new frage();
|
||||
//$nextfrage = $frage->getNextFrage($gebiet_id, $_SESSION['pruefling_id'], $frage_id, $demo);
|
||||
|
||||
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage
|
||||
|
||||
$qry = "SELECT count(*) as anzahl FROM testtool.tbl_frage
|
||||
WHERE tbl_frage.gebiet_id=".$db->db_add_param($gebiet_id, FHC_INTEGER)."
|
||||
AND demo ";
|
||||
if($row = $db->db_fetch_object($db->db_query($qry)))
|
||||
@@ -713,10 +682,11 @@ if($frage->frage_id!='')
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '
|
||||
echo '
|
||||
</div> <!--/.row-->
|
||||
';
|
||||
echo "</form>";
|
||||
echo '</div></div>';
|
||||
echo '<br/><br/><br/><br/><br/>';
|
||||
}
|
||||
else
|
||||
@@ -725,7 +695,5 @@ else
|
||||
echo "<br/><br/><center><b>".$p->t("testtool/startDrueckenUmZuBeginnen")."</b></center>";
|
||||
}
|
||||
?>
|
||||
</div><!--/.col-->
|
||||
</div><!--/.row-->
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> ,
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
|
||||
* Manfred Kindl <manfred.kindl@technikum-wien.at>
|
||||
* Cristina Hainberger <hainberg@technikum-wien.at>
|
||||
*/
|
||||
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
@@ -29,45 +30,18 @@ require_once '../../include/phrasen.class.php';
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
function getSpracheUser()
|
||||
// Start session
|
||||
session_start();
|
||||
|
||||
// If language is changed by language select menu, reset language variables
|
||||
if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
|
||||
{
|
||||
if(isset($_SESSION['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_SESSION['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isset($_COOKIE['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_COOKIE['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$sprache_user=DEFAULT_LANGUAGE;
|
||||
}
|
||||
setSpracheUser($sprache_user);
|
||||
}
|
||||
return $sprache_user;
|
||||
$_SESSION['sprache_user'] = $_GET['sprache_user'];
|
||||
$sprache_user = $_GET['sprache_user'];
|
||||
}
|
||||
|
||||
function setSpracheUser($sprache)
|
||||
{
|
||||
$_SESSION['sprache_user']=$sprache;
|
||||
setcookie('sprache_user',$sprache,time()+60*60*24*30,'/');
|
||||
}
|
||||
|
||||
if(isset($_GET['sprache_user']))
|
||||
{
|
||||
$sprache_user = new sprache();
|
||||
if($sprache_user->load($_GET['sprache_user']))
|
||||
{
|
||||
setSpracheUser($_GET['sprache_user']);
|
||||
}
|
||||
else
|
||||
setSpracheUser(DEFAULT_LANGUAGE);
|
||||
}
|
||||
|
||||
$sprache_user = getSpracheUser();
|
||||
// Set language variable
|
||||
$sprache_user = (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) ? $_SESSION['sprache_user'] : DEFAULT_LANGUAGE;
|
||||
$p = new phrasen($sprache_user);
|
||||
|
||||
?>
|
||||
|
||||
+131
-147
@@ -38,69 +38,37 @@ require_once '../../include/datum.class.php';
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
//if(isset($_GET['lang']))
|
||||
// setSprache($_GET['lang']);
|
||||
// Start session
|
||||
session_start();
|
||||
|
||||
$date = new datum();
|
||||
|
||||
function getSpracheUser()
|
||||
// Logout (triggered by logout button in menu.php)
|
||||
if (isset($_GET['logout']) && $_GET['logout'] == true)
|
||||
{
|
||||
if(isset($_SESSION['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_SESSION['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isset($_COOKIE['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_COOKIE['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$sprache_user=DEFAULT_LANGUAGE;
|
||||
}
|
||||
setSpracheUser($sprache_user);
|
||||
}
|
||||
return $sprache_user;
|
||||
}
|
||||
// Unset global vars
|
||||
unset($_GET['logout']);
|
||||
unset($_GET['sprache_user']);
|
||||
$_POST = [];
|
||||
$_SESSION = [];
|
||||
|
||||
function setSpracheUser($sprache)
|
||||
{
|
||||
$_SESSION['sprache_user']=$sprache;
|
||||
setcookie('sprache_user',$sprache,time()+60*60*24*30,'/');
|
||||
}
|
||||
// Destroy session
|
||||
session_destroy();
|
||||
|
||||
if(isset($_GET['sprache_user']))
|
||||
{
|
||||
$sprache_user = new sprache();
|
||||
if($sprache_user->load($_GET['sprache_user']))
|
||||
{
|
||||
setSpracheUser($_GET['sprache_user']);
|
||||
}
|
||||
else
|
||||
setSpracheUser(DEFAULT_LANGUAGE);
|
||||
echo '
|
||||
<script language="Javascript">
|
||||
location = location.pathname; // clean the login.php-url from querystring
|
||||
parent.menu.location = parent.menu.location.pathname; // clean the menu.php-url from querystring
|
||||
parent.topbar.location = parent.topbar.location.pathname; // clean the topbar.php-url from querystring
|
||||
</script>
|
||||
';
|
||||
}
|
||||
|
||||
$sprache_user = getSpracheUser();
|
||||
$p = new phrasen($sprache_user);
|
||||
|
||||
$gebdatum='';
|
||||
$date = new datum();
|
||||
|
||||
session_start();
|
||||
$reload=false;
|
||||
$reload_parent=false;
|
||||
$reload_menu=false;
|
||||
|
||||
$sg_var = new studiengang();
|
||||
|
||||
if (isset($_GET['logout']))
|
||||
{
|
||||
if(isset($_SESSION['prestudent_id']))
|
||||
{
|
||||
$reload = true;
|
||||
session_destroy();
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST['gebdatum']) && $_POST['gebdatum']!='')
|
||||
{
|
||||
$gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d');
|
||||
@@ -178,7 +146,6 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
$_SESSION['vorname']=$ps->vorname;
|
||||
$_SESSION['gebdatum']=$ps->gebdatum;
|
||||
$stg_obj = new studiengang($studiengang);
|
||||
$_SESSION['sprache']=$stg_obj->sprache;
|
||||
|
||||
$_SESSION['semester']=$semester;
|
||||
$stg_obj->getStudiengangTyp($stg_obj->typ);
|
||||
@@ -215,7 +182,6 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Sprachvorgaben zu STG mit höchster Prio ermitteln
|
||||
|
||||
// * 1. Sprache über Ablauf Vorgaben ermitteln
|
||||
@@ -246,11 +212,11 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
// * 4. Sprache setzen. Falls keine Sprache vorhanden -> DEFAULT language verwenden
|
||||
if (empty($rt_sprache))
|
||||
{
|
||||
$_SESSION['sprache'] = DEFAULT_LANGUAGE;
|
||||
$_SESSION['sprache_user'] = DEFAULT_LANGUAGE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$_SESSION['sprache'] = $rt_sprache;
|
||||
$_SESSION['sprache_user'] = $rt_sprache;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -269,8 +235,38 @@ if (isset($_POST['prestudent']) && isset($gebdatum))
|
||||
}
|
||||
}
|
||||
|
||||
// Set language of user.
|
||||
// NOTE: don't move the code in order to check first the right studies' reihungstest language
|
||||
// (in case it was overruled by other STG with higher priority)
|
||||
|
||||
// Start with default language on first login (before any prestudent has been selected)
|
||||
$sprache_user = DEFAULT_LANGUAGE;
|
||||
if (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user']))
|
||||
{
|
||||
// If session var already exists, overwrite language var
|
||||
// (session var changes e.g. when user selects other language with language-select-menu)
|
||||
$sprache_user = $_SESSION['sprache_user'];
|
||||
}
|
||||
elseif (isset($_SESSION['prestudent_id']))
|
||||
{
|
||||
// If session var does not exist but prestudent is known, set the session var
|
||||
$_SESSION['sprache_user'] = DEFAULT_LANGUAGE;
|
||||
}
|
||||
|
||||
// If language is changed by language select menu, reset language variables
|
||||
if(isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
|
||||
{
|
||||
$sprache_user = $_GET['sprache_user'];
|
||||
$_SESSION['sprache_user'] = $_GET['sprache_user'];
|
||||
}
|
||||
|
||||
// NOTE: leave phrasen here, as the final users language is not defined until here
|
||||
$p = new phrasen($sprache_user);
|
||||
|
||||
if (isset($_SESSION['prestudent_id']))
|
||||
$prestudent_id=$_SESSION['prestudent_id'];
|
||||
{
|
||||
$prestudent_id=$_SESSION['prestudent_id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
//$prestudent_id=null;
|
||||
@@ -279,10 +275,6 @@ else
|
||||
$ps->getPrestudentRT($datum);
|
||||
}
|
||||
|
||||
if(isset($_GET['type']) && $_GET['type']=='sprachechange' && isset($_GET['sprache']))
|
||||
{
|
||||
setSprache($_GET['sprache']);
|
||||
}
|
||||
|
||||
if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))
|
||||
{
|
||||
@@ -303,7 +295,7 @@ if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))
|
||||
if($pruefling->save())
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
$reload_parent=true;
|
||||
$reload_menu=true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -327,19 +319,19 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
$_SESSION['semester']=$pruefling->semester;
|
||||
$reload_parent=true;
|
||||
$reload_menu=true;
|
||||
}
|
||||
}
|
||||
?><!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css" type="text/css"/>
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/jquery.css" type="text/css"/>
|
||||
<script type="text/javascript" src="../../include/js/jquery1.9.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css"/>
|
||||
<script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<link rel="stylesheet" href="../../vendor/components/jqueryui/themes/base/jquery-ui.min.css" type="text/css"/>
|
||||
<script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
@@ -371,24 +363,19 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
if($reload_parent)
|
||||
if($reload_menu)
|
||||
echo '<script language="Javascript">parent.menu.location.reload();</script>';
|
||||
|
||||
if($reload)
|
||||
echo "<script language=\"Javascript\">parent.location.reload();</script>";
|
||||
?>
|
||||
</head>
|
||||
|
||||
<body scroll="no">
|
||||
<div class="row">
|
||||
<div class="col-xs-10 col-sm-9 col-lg-6">
|
||||
|
||||
<?php
|
||||
|
||||
//REIHUNGSTEST STARTSEITE (nach Login)
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
|
||||
$prestudent = new prestudent($prestudent_id);
|
||||
$stg_obj = new studiengang($prestudent->studiengang_kz);
|
||||
$pruefling = new pruefling();
|
||||
@@ -399,7 +386,7 @@ if (isset($prestudent_id))
|
||||
$ps = new Prestudent();
|
||||
|
||||
// * prinzipiell STG der session übernehmem
|
||||
$firstPrio_studiengang_kz = $prestudent->studiengang_kz;;
|
||||
$firstPrio_studiengang_kz = $prestudent->studiengang_kz;
|
||||
|
||||
// * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller
|
||||
// Bachelor-STG ermitteln, an denen die Person noch interessiert ist
|
||||
@@ -419,15 +406,28 @@ if (isset($prestudent_id))
|
||||
// Sprachwahl zu STG mit höchster Prio ermitteln
|
||||
$ablauf = new Ablauf();
|
||||
$sprachwahl = false;
|
||||
if ($ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz) && is_bool($ablauf->result[0]->sprachwahl))
|
||||
if (isset($ablauf->result[0])
|
||||
&& $ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz)
|
||||
&& is_bool($ablauf->result[0]->sprachwahl))
|
||||
{
|
||||
$sprachwahl = $ablauf->result[0]->sprachwahl;
|
||||
}
|
||||
|
||||
// If language can be switched, display language select menu on the top
|
||||
if ($sprachwahl)
|
||||
{
|
||||
$_SESSION['sprache_auswahl'] = true;
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
parent.topbar.location.reload();
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
//Prestudent Informationen
|
||||
echo '<div class="col-xs-10 col-sm-9 col-lg-6">';
|
||||
echo '
|
||||
<h1 style="margin-top: -20px;">'. $p->t('testtool/begruessungstext'). '</h1><br/>
|
||||
<p>'. $p->t('testtool/anmeldedaten'). '</p><br/>
|
||||
<p>'. $p->t('testtool/anmeldedaten'). '</p><br/>
|
||||
';
|
||||
|
||||
echo '
|
||||
@@ -449,15 +449,15 @@ if (isset($prestudent_id))
|
||||
echo '<br>';
|
||||
echo '
|
||||
<p>'. $p->t('testtool/fuerFolgendeStgAngemeldet'). '</p><br>
|
||||
|
||||
<table class="table table-bordered">
|
||||
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 50%;">'. $p->t('global/studiengang'). '</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
|
||||
// * wenn Prestudent an 1 - n Bachelor-Studiengängen interessiert ist, dann STG anführen
|
||||
@@ -521,8 +521,8 @@ if (isset($prestudent_id))
|
||||
echo '<td>'. $ps_master->status_mehrsprachig[$sprache_user]. '</td>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</tbody>
|
||||
echo '
|
||||
</tbody>
|
||||
</table>
|
||||
';
|
||||
|
||||
@@ -538,53 +538,6 @@ if (isset($prestudent_id))
|
||||
//echo '<tr><td></td><td><input type="submit" name="save" value="Semester ändern"></td>';
|
||||
echo '</table>';
|
||||
echo '</FORM>';
|
||||
|
||||
//Wenn die Sprachwahl fuer den priorisierten Studiengang aktiviert ist, dann die Sprachen anzeigen
|
||||
if($sprachwahl==true)
|
||||
{
|
||||
//Liste der Sprachen, die in den Gebieten vorkommen koennen
|
||||
$qry = "SELECT distinct sprache
|
||||
FROM
|
||||
testtool.tbl_pruefling
|
||||
JOIN testtool.tbl_ablauf USING(studiengang_kz)
|
||||
JOIN testtool.tbl_frage USING(gebiet_id)
|
||||
JOIN testtool.tbl_frage_sprache USING(frage_id)
|
||||
WHERE
|
||||
tbl_pruefling.pruefling_id=".$db->db_add_param($pruefling->pruefling_id)."
|
||||
ORDER BY sprache DESC";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
echo '
|
||||
<p>'. $p->t('testtool/spracheDerTestfragen').':</p><br>
|
||||
<div class="btn-group btn-group-justified" role="group">
|
||||
';
|
||||
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$selected = ($_SESSION['sprache'] == $row->sprache) ? 'active' : '';
|
||||
$row_sprache = $row->sprache;
|
||||
if ($sprache_user == 'German')
|
||||
{
|
||||
if($row->sprache == 'English')
|
||||
{
|
||||
$row_sprache = 'Englisch';
|
||||
}
|
||||
elseif ($row->sprache == 'German')
|
||||
{
|
||||
$row_sprache = 'Deutsch';
|
||||
}
|
||||
}
|
||||
echo "
|
||||
<div class='btn-group' role='group'>
|
||||
<a role='button' class='btn btn-default $selected' href='". $_SERVER['PHP_SELF']. "?type=sprachechange&sprache=". $row->sprache. "'>$row_sprache</a>
|
||||
</div>
|
||||
";
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '<br><br>';
|
||||
echo '
|
||||
<div class="well well-lg text-center">
|
||||
@@ -594,22 +547,45 @@ if (isset($prestudent_id))
|
||||
if($pruefling->pruefling_id!='')
|
||||
{
|
||||
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
|
||||
//echo '<script language="Javascript">parent.menu.location.reload()</script>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('testtool/keinPrueflingseintragVorhanden').'</span>';
|
||||
}
|
||||
echo ' </div><!--/.col-->';
|
||||
}
|
||||
else
|
||||
else // LOGIN Site (vor Login)
|
||||
{
|
||||
//LOGIN FORM (Startseite vor Login)
|
||||
$prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:'');
|
||||
echo '<div class="col-xs-11">';
|
||||
|
||||
echo '<form method="post">
|
||||
<SELECT name="prestudent">';
|
||||
echo '<OPTION value="'.$prestudent_id_dummy_student.'">'.$p->t('testtool/nameAuswaehlen').'</OPTION>\n';
|
||||
// Welcome text
|
||||
echo '
|
||||
<div class="row" style="margin-bottom: 10%; margin-top: 3%;">
|
||||
<div class="col-xs-6 text-center" style="border-right: 1px solid lightgrey;">
|
||||
<h1 style="white-space: normal">Herzlich Willkommen zum Reihungstest</h1><br><br>
|
||||
Bitte warten Sie mit dem Login auf die Anweisung der Aufsichtsperson.<br><br>
|
||||
Wir wünschen Ihnen einen erfolgreichen Start ins Studium.
|
||||
</div>
|
||||
<div class="col-xs-6 text-center">
|
||||
<h1 style="white-space: normal">Welcome to the placement test</h1> <br><br>
|
||||
Please wait for the tutor\'s instructions before you log in.<br><br>
|
||||
We wish you a good start to your studies.
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
|
||||
// Begin form
|
||||
echo '<div class="row text-center">';
|
||||
echo '<form method="post" class="form-inline">';
|
||||
|
||||
// Name select menu
|
||||
echo '<div class="form-group">';
|
||||
echo '<label for="select-prestudent" class="col-sm-2 control-label">Name</label>';
|
||||
echo '<div class="col-sm-10">';
|
||||
echo '<SELECT name="prestudent" id="select-prestudent" class="form-control">';
|
||||
echo '<OPTION value="'.$prestudent_id_dummy_student.'">Bitte wählen / Please select...</OPTION>\n';
|
||||
foreach($ps->result as $prestd)
|
||||
{
|
||||
$stg = new studiengang();
|
||||
@@ -618,7 +594,8 @@ else
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected='';
|
||||
echo '<OPTION value="'.$prestd->prestudent_id.'" '.$selected.'>'.$prestd->nachname.' '.$prestd->vorname.' ('.(strtoupper($stg->typ.$stg->kurzbz)).')</OPTION>\n';
|
||||
echo '
|
||||
<OPTION value="'.$prestd->prestudent_id.'" '.$selected.'>'.$prestd->nachname.' '.$prestd->vorname.' ('.(strtoupper($stg->typ.$stg->kurzbz)).')</OPTION>\n';
|
||||
}
|
||||
// An der FHTW gibt es 3 Testuser für den Camus International
|
||||
if (CAMPUS_NAME == 'FH Technikum Wien')
|
||||
@@ -628,19 +605,26 @@ else
|
||||
echo '<OPTION value="30889">Testuser Campus International 03</OPTION>\n';
|
||||
}
|
||||
echo '</SELECT>';
|
||||
echo ' '.$p->t('global/geburtsdatum').': ';
|
||||
echo '<input type="text" id="datepicker" size="12" name="gebdatum" value="'.$date->formatDatum($gebdatum,'d.m.Y').'">';
|
||||
echo '<INPUT type="submit" value="'.$p->t('testtool/login').'" />';
|
||||
echo '</form>';
|
||||
echo '</div>'; // end col-xs
|
||||
echo '</div>'; // end form-group
|
||||
|
||||
echo '<br /><br /><br />
|
||||
<center>
|
||||
<span style="font-size: 1.2em; font-style: italic;">'.$p->t('testtool/willkommenstextTitel').'</span><br><br>
|
||||
<span style="font-size: 1.2em; font-style: italic;">'.$p->t('testtool/willkommenstext').'</span>
|
||||
</center>';
|
||||
// Datepicker input
|
||||
echo '<div class="form-group"> ';
|
||||
echo '<label for="datepicker" class="col-sm-offset-1 col-sm-4 control-label">Geburtsdatum | Date of Birth</label>';
|
||||
echo '<div class="col-sm-3">';
|
||||
echo '<input type="text" id="datepicker" class="form-control" name="gebdatum" value="'.$date->formatDatum($gebdatum,'d.m.Y').'">';
|
||||
echo '</div>'; // end col-xs
|
||||
echo '</div>'; // end form-group
|
||||
|
||||
// Login button
|
||||
echo '<button type="submit" class="btn btn-default" value="'.$p->t('testtool/login').'" />'.$p->t('testtool/login').'</button>';
|
||||
|
||||
echo '</form>'; // end form
|
||||
|
||||
echo '</div>'; // end row
|
||||
echo '</div>'; // end col-xs-11
|
||||
}
|
||||
?>
|
||||
</div><!--/.col-->
|
||||
</div><!--/.row-->
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+32
-64
@@ -19,6 +19,7 @@
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
|
||||
* Manfred Kindl <manfred.kindl@technikum-wien.at>
|
||||
* Cristina Hainberger <hainberg@technikum-wien.at>
|
||||
*/
|
||||
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
@@ -27,56 +28,25 @@ require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/sprache.class.php');
|
||||
require_once '../../include/phrasen.class.php';
|
||||
require_once '../../include/studiengang.class.php';
|
||||
require_once('../../include/gebiet.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
require_once('../../include/gebiet.class.php');
|
||||
|
||||
function getSpracheUser()
|
||||
{
|
||||
if(isset($_SESSION['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_SESSION['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isset($_COOKIE['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_COOKIE['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$sprache_user=DEFAULT_LANGUAGE;
|
||||
}
|
||||
setSpracheUser($sprache_user);
|
||||
}
|
||||
return $sprache_user;
|
||||
}
|
||||
|
||||
function setSpracheUser($sprache)
|
||||
{
|
||||
$_SESSION['sprache_user']=$sprache;
|
||||
setcookie('sprache_user',$sprache,time()+60*60*24*30,'/');
|
||||
}
|
||||
|
||||
if(isset($_GET['sprache_user']))
|
||||
{
|
||||
$sprache_user = new sprache();
|
||||
if($sprache_user->load($_GET['sprache_user']))
|
||||
{
|
||||
setSpracheUser($_GET['sprache_user']);
|
||||
}
|
||||
else
|
||||
setSpracheUser(DEFAULT_LANGUAGE);
|
||||
}
|
||||
|
||||
$sprache_user = getSpracheUser();
|
||||
$p = new phrasen($sprache_user);
|
||||
$sprache = getSprache();
|
||||
|
||||
// Start session
|
||||
session_start();
|
||||
|
||||
// If language is changed by language select menu, reset language and session variables
|
||||
if(isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
|
||||
{
|
||||
$sprache_user = $_GET['sprache_user'];
|
||||
$_SESSION['sprache_user'] = $_GET['sprache_user'];
|
||||
}
|
||||
|
||||
// Set language variable, which impacts the navigation menu
|
||||
$sprache_user = (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) ? $_SESSION['sprache_user'] : DEFAULT_LANGUAGE;
|
||||
$p = new phrasen($sprache_user);
|
||||
|
||||
?><!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
@@ -89,6 +59,9 @@ session_start();
|
||||
|
||||
<body scroll="no">
|
||||
<?php
|
||||
$gebiet_hasMathML = false; // true, wenn irgendein Gebiet eine/n Frage/Vorschlag im MathML-Format enthält
|
||||
$invalid_gebiete = false;
|
||||
|
||||
if (isset($_SESSION['pruefling_id']))
|
||||
{
|
||||
//content_id fuer Einfuehrung auslesen
|
||||
@@ -110,7 +83,7 @@ if (isset($_SESSION['pruefling_id']))
|
||||
{
|
||||
echo '
|
||||
<tr id="tr-einleitung"><td class="ItemTesttool" style="margin-left: 20px;" nowrap>
|
||||
<a class="ItemTesttool navButton" href="../../cms/content.php?content_id='.$content_id->content_id.'&sprache='.$sprache.'" target="content">'.$p->t('testtool/einleitung').'</a>
|
||||
<a class="ItemTesttool navButton" href="../../cms/content.php?content_id='.$content_id->content_id.'&sprache='.$sprache_user.'" target="content">'.$p->t('testtool/einleitung').'</a>
|
||||
</td></tr>
|
||||
';
|
||||
}
|
||||
@@ -183,13 +156,13 @@ if (isset($_SESSION['pruefling_id']))
|
||||
|
||||
/* Filter out all Abgewiesene */
|
||||
AND NOT EXISTS (
|
||||
SELECT
|
||||
1
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
tbl_prestudentstatus
|
||||
WHERE
|
||||
status_kurzbz = 'Abgewiesener'
|
||||
AND
|
||||
WHERE
|
||||
status_kurzbz = 'Abgewiesener'
|
||||
AND
|
||||
prestudent_id = ps_status.prestudent_id
|
||||
)
|
||||
|
||||
@@ -220,7 +193,7 @@ if (isset($_SESSION['pruefling_id']))
|
||||
)
|
||||
|
||||
|
||||
SELECT DISTINCT ON
|
||||
SELECT DISTINCT ON
|
||||
(gebiet_id, semester)
|
||||
semester,
|
||||
gebiet_id,
|
||||
@@ -231,7 +204,7 @@ if (isset($_SESSION['pruefling_id']))
|
||||
FROM (
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
FROM (
|
||||
(SELECT
|
||||
prestudent_data.semester AS ps_sem,
|
||||
gebiet_id,
|
||||
@@ -252,9 +225,9 @@ if (isset($_SESSION['pruefling_id']))
|
||||
OR
|
||||
(prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
|
||||
)
|
||||
|
||||
|
||||
UNION
|
||||
|
||||
|
||||
(
|
||||
SELECT
|
||||
prestudent_data.semester AS ps_sem,
|
||||
@@ -278,15 +251,12 @@ if (isset($_SESSION['pruefling_id']))
|
||||
)
|
||||
) temp
|
||||
) temp2
|
||||
|
||||
|
||||
GROUP BY
|
||||
semester,
|
||||
gebiet_id,
|
||||
bezeichnung,
|
||||
bezeichnung_mehrsprachig_1,
|
||||
bezeichnung_mehrsprachig_2,
|
||||
bezeichnung_mehrsprachig_3,
|
||||
bezeichnung_mehrsprachig_4
|
||||
". $bezeichnung_mehrsprachig_sel ."
|
||||
|
||||
ORDER BY
|
||||
semester,
|
||||
@@ -296,8 +266,6 @@ if (isset($_SESSION['pruefling_id']))
|
||||
$result = $db->db_query($qry);
|
||||
$lastsemester = '';
|
||||
$quereinsteiger_stg = '';
|
||||
$gebiet_hasMathML = false; // true, wenn irgendein Gebiet eine/n Frage/Vorschlag im MathML-Format enthält
|
||||
$invalid_gebiete = false;
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
//Jedes Semester in einer eigenen Tabelle anzeigen
|
||||
@@ -404,7 +372,7 @@ if (isset($_SESSION['pruefling_id']))
|
||||
|
||||
// Link zum Logout
|
||||
echo '<tr><td class="ItemTesttool" style="margin-left: 20px;" nowrap>
|
||||
<a class="ItemTesttool navButton" href="login.php?logout" target="content">Logout</a>
|
||||
<a class="ItemTesttool navButton" href="login.php?logout=true" target="content">Logout</a>
|
||||
</td></tr>';
|
||||
|
||||
echo '</td></tr></table>';
|
||||
@@ -425,7 +393,7 @@ else
|
||||
// show message to use Mozilla Firefox
|
||||
if ((ua.indexOf("Firefox") > -1) == false)
|
||||
{
|
||||
let hasMathML = "<?php echo $gebiet_hasMathML; ?>";
|
||||
let hasMathML = "<?php echo (isset($gebiet_hasMathML)?$gebiet_hasMathML:''); ?>";
|
||||
let userLang = "<?php echo $sprache_user; ?>";
|
||||
if (hasMathML == true)
|
||||
{
|
||||
@@ -442,7 +410,7 @@ else
|
||||
|
||||
// Error massage if check_gebiet function returns false
|
||||
$(function() {
|
||||
var invalid_gebiete = "<?php echo $invalid_gebiete; ?>";
|
||||
var invalid_gebiete = "<?php echo (isset($invalid_gebiete)?$invalid_gebiete:''); ?>";
|
||||
if(invalid_gebiete == true)
|
||||
{
|
||||
$('#tr-einleitung').append('' +
|
||||
|
||||
+27
-51
@@ -16,57 +16,33 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Manfred Kindl <manfred.kindl@technikum-wien.at>.
|
||||
* Cristina Hainberger <hainberg@technikum-wien.at>
|
||||
*/
|
||||
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/sprache.class.php');
|
||||
require_once '../../include/phrasen.class.php';
|
||||
require_once('../../include/gebiet.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
require_once('../../include/gebiet.class.php');
|
||||
|
||||
function getSpracheUser()
|
||||
|
||||
// Start session
|
||||
session_start();
|
||||
|
||||
// If language is changed by language select menu, reset session- and language variable
|
||||
if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
|
||||
{
|
||||
if(isset($_SESSION['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_SESSION['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isset($_COOKIE['sprache_user']))
|
||||
{
|
||||
$sprache_user=$_COOKIE['sprache_user'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$sprache_user=DEFAULT_LANGUAGE;
|
||||
}
|
||||
setSpracheUser($sprache_user);
|
||||
}
|
||||
return $sprache_user;
|
||||
$_SESSION['sprache_user'] = $_GET['sprache_user'];
|
||||
$sprache_user = $_GET['sprache_user'];
|
||||
}
|
||||
|
||||
function setSpracheUser($sprache)
|
||||
{
|
||||
$_SESSION['sprache_user']=$sprache;
|
||||
setcookie('sprache_user',$sprache,time()+60*60*24*30,'/');
|
||||
}
|
||||
// Set language variable, which impacts the language displayed in the language select menu
|
||||
$sprache_user = (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) ? $_SESSION['sprache_user'] : DEFAULT_LANGUAGE;
|
||||
|
||||
if(isset($_GET['sprache_user']))
|
||||
{
|
||||
$sprache_user = new sprache();
|
||||
if($sprache_user->load($_GET['sprache_user']))
|
||||
{
|
||||
setSpracheUser($_GET['sprache_user']);
|
||||
}
|
||||
else
|
||||
setSpracheUser(DEFAULT_LANGUAGE);
|
||||
}
|
||||
|
||||
$sprache_user = getSpracheUser();
|
||||
// The language select menu is only displayed if RT-Ablauf of STG allows to switch language
|
||||
$display = (isset($_SESSION['sprache_auswahl']) && $_SESSION['sprache_auswahl'] == true) ? '' : 'hidden';
|
||||
|
||||
$p = new phrasen($sprache_user);
|
||||
?>
|
||||
@@ -85,16 +61,15 @@ $p = new phrasen($sprache_user);
|
||||
<script type="text/javascript">
|
||||
function changeSprache(sprache)
|
||||
{
|
||||
var content = '';
|
||||
content = parent.content.location.pathname+parent.content.location.search;
|
||||
|
||||
window.location.href="topbar.php?sprache_user="+sprache;
|
||||
parent.menu.location.href="menu.php?sprache_user="+sprache;
|
||||
// Add or replace param 'sprache_user' to the contents URL
|
||||
var content_url = new URL(parent.content.location); // url of contents' frame page (login.php or frage.php)
|
||||
var content_params = new URLSearchParams(content_url.search.slice(1)); // retrieve the querystring params
|
||||
content_params.set('sprache_user', sprache); // add or replace sprache_user
|
||||
|
||||
if (parent.content.location.search=='')
|
||||
parent.content.location.href=content+"?sprache_user="+sprache;
|
||||
else
|
||||
parent.content.location.href=content+"&sprache_user="+sprache;
|
||||
// Pass GET-param sprache_user to topbar.php, menu.php and content (login.php or frage.php) and refresh the frames.
|
||||
location.href = location.pathname + '?sprache_user=' + sprache; // refreshes topbar.php
|
||||
parent.menu.location.href = parent.menu.location.pathname + '?sprache_user=' + sprache; // refreshes menu.php
|
||||
parent.content.location.href = parent.content.location.pathname + '?' + content_params; // refreshes login.php or frage.php
|
||||
}
|
||||
</script>
|
||||
<body>
|
||||
@@ -104,15 +79,17 @@ echo ' <table style="background-image: url(../../skin/images/header_testtool.png
|
||||
<td valign="top" align="left">
|
||||
<a href="index.html" target="_top"><img class="header_logo" style="min-height:65%; left: 16px; top: 10%;" src="../../skin/styles/'.DEFAULT_STYLE.'/logo_250x130.png" alt="logo"></a>
|
||||
</td>
|
||||
<td valign="middle">
|
||||
|
||||
<!--The language select menu is hidden by default.
|
||||
Only displayed if RT-Ablauf of STG allows to switch language.-->
|
||||
<td id="select_sprache" '. $display. '>
|
||||
<div class="form-group form-inline pull-right">
|
||||
<!-- <label for="select-sprache">Sprache Menü: </label>-->
|
||||
<select id="select-sprache" class="form-control" style="width: 170px; margin-right: 50px;" onchange="if (typeof(this.value) != \'undefined\') changeSprache(this.value)">';
|
||||
$sprache = new sprache();
|
||||
$sprache->getAll(true);
|
||||
foreach($sprache->result as $row)
|
||||
{
|
||||
echo ' <option value="'. $row->sprache. '" '.($row->sprache==$sprache_user?'selected':'').'>'.($row->bezeichnung_arr[getSprache()]).' </option>';
|
||||
echo ' <option value="'. $row->sprache. '" '.($row->sprache == $sprache_user ? 'selected' : '').'>'.($row->bezeichnung_arr[$sprache_user]).' </option>';
|
||||
}
|
||||
echo '
|
||||
</select>
|
||||
@@ -140,4 +117,3 @@ echo ' <table style="background-image: url(../../skin/images/header_testtool.png
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ if($doc->isLocked($id))
|
||||
if (CAMPUS_NAME == 'FH Technikum Wien')
|
||||
{
|
||||
$dokumente_arr[] .= 'ZgvBaPre';
|
||||
$dokumente_arr[] .= 'ZgvMaPre';
|
||||
$dokumente_arr[] .= 'InvitLet';
|
||||
}
|
||||
if ($person_id!=$akte_person || !in_array($akte_dokument_kurzbz, $dokumente_arr))
|
||||
|
||||
+2
-2
@@ -168,7 +168,7 @@
|
||||
"name": "nicolaskruchten/pivottable",
|
||||
"version": "2.15.0",
|
||||
"dist": {
|
||||
"url": "https://github.com/nicolaskruchten/pivottable/archive/v2.15.0.zip",
|
||||
"url": "https://github.com/nicolaskruchten/pivottable/archive/v2.21.0.zip",
|
||||
"type": "zip"
|
||||
}
|
||||
}
|
||||
@@ -258,7 +258,7 @@
|
||||
|
||||
"nategood/httpful": "^0.2.20",
|
||||
"netcarver/textile": "^3.5",
|
||||
"nicolaskruchten/pivottable": "^2.15.0",
|
||||
"nicolaskruchten/pivottable": "^2.21.0",
|
||||
|
||||
"phpseclib/phpseclib": "^2.0",
|
||||
|
||||
|
||||
Generated
+100
-75
@@ -4,8 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "ddbbad487c655512e6983408339cb85f",
|
||||
"content-hash": "b5902c71fe21cd14397101dba5a3080c",
|
||||
"content-hash": "ad1bf16a24075268ce1cf2a033f9e7fb",
|
||||
"packages": [
|
||||
{
|
||||
"name": "BlackrockDigital/startbootstrap-sb-admin-2",
|
||||
@@ -47,7 +46,7 @@
|
||||
],
|
||||
"description": "Defacto way to enable use of HTML5 sectioning elements in legacy Internet Explorer.",
|
||||
"homepage": "http://paulirish.com/2011/the-history-of-the-html5-shiv/",
|
||||
"time": "2015-07-20 20:04:00"
|
||||
"time": "2015-07-20T20:04:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "alvaro-prieto/colResizable",
|
||||
@@ -87,7 +86,7 @@
|
||||
},
|
||||
"type": "library",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"time": "2016-09-02 11:31:54"
|
||||
"time": "2016-09-02T11:31:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "codeigniter/framework",
|
||||
@@ -120,7 +119,7 @@
|
||||
],
|
||||
"description": "The CodeIgniter framework",
|
||||
"homepage": "https://codeigniter.com",
|
||||
"time": "2019-01-16 15:49:35"
|
||||
"time": "2019-01-16T15:49:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/angular.js",
|
||||
@@ -424,7 +423,7 @@
|
||||
],
|
||||
"description": "Shim repository for Angular.js",
|
||||
"homepage": "http://angularjs.org",
|
||||
"time": "2015-06-07 20:10:38"
|
||||
"time": "2015-06-07T20:10:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/font-awesome",
|
||||
@@ -459,7 +458,7 @@
|
||||
"OFL-1.1"
|
||||
],
|
||||
"description": "The iconic font designed for use with Twitter Bootstrap.",
|
||||
"time": "2016-10-25 10:56:23"
|
||||
"time": "2016-10-25T10:56:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/jquery",
|
||||
@@ -501,7 +500,7 @@
|
||||
],
|
||||
"description": "jQuery JavaScript Library",
|
||||
"homepage": "http://jquery.com",
|
||||
"time": "2018-03-04 13:23:48"
|
||||
"time": "2018-03-04T13:23:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/jqueryui",
|
||||
@@ -586,7 +585,7 @@
|
||||
}
|
||||
],
|
||||
"description": "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.",
|
||||
"time": "2016-09-16 05:47:55"
|
||||
"time": "2016-09-16T05:47:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "easyrdf/easyrdf",
|
||||
@@ -648,7 +647,7 @@
|
||||
"rdfa",
|
||||
"sparql"
|
||||
],
|
||||
"time": "2015-02-27 09:45:49"
|
||||
"time": "2015-02-27T09:45:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fgelinas/timepicker",
|
||||
@@ -658,6 +657,12 @@
|
||||
"url": "https://github.com/fgelinas/timepicker",
|
||||
"reference": "9aebe413b784696639220bc36b7c1e8a30fda129"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://fgelinas.com/code/timepicker/releases/jquery-ui-timepicker-0.3.3.zip",
|
||||
"reference": null,
|
||||
"shasum": null
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
@@ -708,7 +713,7 @@
|
||||
"faker",
|
||||
"fixtures"
|
||||
],
|
||||
"time": "2018-07-12 10:23:15"
|
||||
"time": "2018-07-12T10:23:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "joeldbirch/superfish",
|
||||
@@ -850,7 +855,7 @@
|
||||
"json",
|
||||
"schema"
|
||||
],
|
||||
"time": "2014-08-25 02:48:14"
|
||||
"time": "2014-08-25T02:48:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "kevinlebrun/colors.php",
|
||||
@@ -901,7 +906,7 @@
|
||||
"console",
|
||||
"shell"
|
||||
],
|
||||
"time": "2018-05-30 08:34:23"
|
||||
"time": "2018-05-30T08:34:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "kingsquare/json-schema-form",
|
||||
@@ -935,17 +940,11 @@
|
||||
}
|
||||
],
|
||||
"description": "A framework-agnostic PHP Implementation for generating simple forms based on json-schema",
|
||||
"time": "2014-07-10 12:27:19"
|
||||
"time": "2014-07-10T12:27:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ludo/jquery-treetable",
|
||||
"version": "3.2.0",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/ludo/jquery-treetable/archive/3.2.0.zip",
|
||||
"reference": null,
|
||||
"shasum": null
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
@@ -997,7 +996,7 @@
|
||||
"keywords": [
|
||||
"markdown"
|
||||
],
|
||||
"time": "2015-03-01 12:03:08"
|
||||
"time": "2015-03-01T12:03:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ml/iri",
|
||||
@@ -1044,7 +1043,7 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2014-01-21 13:43:39"
|
||||
"time": "2014-01-21T13:43:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ml/json-ld",
|
||||
@@ -1093,7 +1092,7 @@
|
||||
"JSON-LD",
|
||||
"jsonld"
|
||||
],
|
||||
"time": "2018-11-18 20:26:18"
|
||||
"time": "2018-11-18T20:26:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mottie/tablesorter",
|
||||
@@ -1144,7 +1143,7 @@
|
||||
"sorting",
|
||||
"table"
|
||||
],
|
||||
"time": "2018-11-20 21:54:28"
|
||||
"time": "2018-11-20T21:54:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nategood/httpful",
|
||||
@@ -1194,7 +1193,7 @@
|
||||
"rest",
|
||||
"restful"
|
||||
],
|
||||
"time": "2015-10-26 16:11:30"
|
||||
"time": "2015-10-26T16:11:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "netcarver/textile",
|
||||
@@ -1247,18 +1246,50 @@
|
||||
"plaintext",
|
||||
"textile"
|
||||
],
|
||||
"time": "2019-01-26 17:03:58"
|
||||
"time": "2019-01-26T17:03:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nicolaskruchten/pivottable",
|
||||
"version": "2.15.0",
|
||||
"version": "v2.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nicolaskruchten/pivottable.git",
|
||||
"reference": "a9cabee5382be0aaf0984ac906d9fa2e0376d2c1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/nicolaskruchten/pivottable/archive/v2.15.0.zip",
|
||||
"reference": null,
|
||||
"shasum": null
|
||||
"url": "https://api.github.com/repos/nicolaskruchten/pivottable/zipball/a9cabee5382be0aaf0984ac906d9fa2e0376d2c1",
|
||||
"reference": "a9cabee5382be0aaf0984ac906d9fa2e0376d2c1",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library"
|
||||
"require": {
|
||||
"components/jquery": ">=1.9"
|
||||
},
|
||||
"type": "library",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Kruchten",
|
||||
"email": "nicolas@kruchten.com"
|
||||
}
|
||||
],
|
||||
"description": "Javascript Pivot Table (aka Pivot Grid, Pivot Chart, Cross-Tab) implementation with drag'n'drop.",
|
||||
"homepage": "https://pivottable.js.org/",
|
||||
"keywords": [
|
||||
"crosstab",
|
||||
"grid",
|
||||
"jquery",
|
||||
"jquery-plugin",
|
||||
"pivot",
|
||||
"pivotchart",
|
||||
"pivotgrid",
|
||||
"pivottable",
|
||||
"table"
|
||||
],
|
||||
"time": "2018-11-04T18:21:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpseclib/phpseclib",
|
||||
@@ -1305,28 +1336,28 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jim Wigginton",
|
||||
"email": "terrafrost@php.net",
|
||||
"role": "Lead Developer"
|
||||
"role": "Lead Developer",
|
||||
"email": "terrafrost@php.net"
|
||||
},
|
||||
{
|
||||
"name": "Patrick Monnerat",
|
||||
"email": "pm@datasphere.ch",
|
||||
"role": "Developer"
|
||||
"role": "Developer",
|
||||
"email": "pm@datasphere.ch"
|
||||
},
|
||||
{
|
||||
"name": "Andreas Fischer",
|
||||
"email": "bantu@phpbb.com",
|
||||
"role": "Developer"
|
||||
"role": "Developer",
|
||||
"email": "bantu@phpbb.com"
|
||||
},
|
||||
{
|
||||
"name": "Hans-Jürgen Petrich",
|
||||
"email": "petrich@tronic-media.com",
|
||||
"role": "Developer"
|
||||
"role": "Developer",
|
||||
"email": "petrich@tronic-media.com"
|
||||
},
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "graham@alt-three.com",
|
||||
"role": "Developer"
|
||||
"role": "Developer",
|
||||
"email": "graham@alt-three.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
|
||||
@@ -1350,7 +1381,7 @@
|
||||
"x.509",
|
||||
"x509"
|
||||
],
|
||||
"time": "2019-03-10 16:53:45"
|
||||
"time": "2019-03-10T16:53:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
@@ -1397,7 +1428,7 @@
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2018-11-20 15:27:04"
|
||||
"time": "2018-11-20T15:27:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rdlowrey/auryn",
|
||||
@@ -1458,17 +1489,11 @@
|
||||
"dic",
|
||||
"ioc"
|
||||
],
|
||||
"time": "2017-05-15 06:26:46"
|
||||
"time": "2017-05-15T06:26:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rmariuzzo/jquery-checkboxes",
|
||||
"version": "1.0.7",
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/rmariuzzo/checkboxes.js/archive/v1.0.7.zip",
|
||||
"reference": null,
|
||||
"shasum": null
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
@@ -1520,7 +1545,7 @@
|
||||
"php",
|
||||
"template"
|
||||
],
|
||||
"time": "2016-02-01 16:31:13"
|
||||
"time": "2016-02-01T16:31:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/combustor",
|
||||
@@ -1585,7 +1610,7 @@
|
||||
"generator",
|
||||
"php"
|
||||
],
|
||||
"time": "2016-02-14 10:36:58"
|
||||
"time": "2016-02-14T10:36:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/describe",
|
||||
@@ -1638,7 +1663,7 @@
|
||||
"describe",
|
||||
"php"
|
||||
],
|
||||
"time": "2016-03-24 18:17:47"
|
||||
"time": "2016-03-24T18:17:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/refinery",
|
||||
@@ -1703,7 +1728,7 @@
|
||||
"php",
|
||||
"refinery"
|
||||
],
|
||||
"time": "2016-03-04 16:55:32"
|
||||
"time": "2016-03-04T16:55:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/spark-plug",
|
||||
@@ -1762,7 +1787,7 @@
|
||||
"php",
|
||||
"spark-plug"
|
||||
],
|
||||
"time": "2015-10-23 08:27:10"
|
||||
"time": "2015-10-23T08:27:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "scottjehl/Respond",
|
||||
@@ -1834,7 +1859,7 @@
|
||||
],
|
||||
"description": "Symfony Console Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-11-20 15:55:20"
|
||||
"time": "2018-11-20T15:55:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
@@ -1891,7 +1916,7 @@
|
||||
],
|
||||
"description": "Symfony Debug Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-07-30 07:22:48"
|
||||
"time": "2016-07-30T07:22:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@@ -1949,7 +1974,7 @@
|
||||
"polyfill",
|
||||
"portable"
|
||||
],
|
||||
"time": "2019-02-06 07:57:58"
|
||||
"time": "2019-02-06T07:57:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
@@ -2008,7 +2033,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2019-02-06 07:57:58"
|
||||
"time": "2019-02-06T07:57:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
@@ -2058,7 +2083,7 @@
|
||||
],
|
||||
"description": "Symfony Yaml Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-11-11 11:18:13"
|
||||
"time": "2018-11-11T11:18:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tapmodo/Jcrop",
|
||||
@@ -2115,7 +2140,7 @@
|
||||
"tinymce",
|
||||
"wysiwyg"
|
||||
],
|
||||
"time": "2019-03-20 13:56:58"
|
||||
"time": "2019-03-20T13:56:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tomazdragar/SimpleCropper",
|
||||
@@ -2176,7 +2201,7 @@
|
||||
"responsive",
|
||||
"web"
|
||||
],
|
||||
"time": "2019-02-13 15:55:38"
|
||||
"time": "2019-02-13T15:55:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
@@ -2222,19 +2247,19 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"role": "Lead Developer",
|
||||
"email": "fabien@symfony.com",
|
||||
"homepage": "http://fabien.potencier.org",
|
||||
"role": "Lead Developer"
|
||||
"homepage": "http://fabien.potencier.org"
|
||||
},
|
||||
{
|
||||
"name": "Armin Ronacher",
|
||||
"email": "armin.ronacher@active-4.com",
|
||||
"role": "Project Founder"
|
||||
"role": "Project Founder",
|
||||
"email": "armin.ronacher@active-4.com"
|
||||
},
|
||||
{
|
||||
"name": "Twig Team",
|
||||
"homepage": "https://twig.symfony.com/contributors",
|
||||
"role": "Contributors"
|
||||
"role": "Contributors",
|
||||
"homepage": "https://twig.symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Twig, the flexible, fast, and secure template language for PHP",
|
||||
@@ -2242,7 +2267,7 @@
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"time": "2019-05-14 11:59:08"
|
||||
"time": "2019-05-14T11:59:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/base",
|
||||
@@ -2306,7 +2331,7 @@
|
||||
],
|
||||
"description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2017-11-28 11:30:00"
|
||||
"time": "2017-11-28T11:30:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/database",
|
||||
@@ -2383,7 +2408,7 @@
|
||||
],
|
||||
"description": "A lightweight database layer on top of PHP's PDO that allows you to utilize a database without having to take care of differences in SQL dialects.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2017-11-28 10:55:26"
|
||||
"time": "2017-11-28T10:55:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/document",
|
||||
@@ -2434,7 +2459,7 @@
|
||||
],
|
||||
"description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2013-12-19 11:40:00"
|
||||
"time": "2013-12-19T11:40:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/workflow",
|
||||
@@ -2500,7 +2525,7 @@
|
||||
],
|
||||
"description": "The purpose of the Workflow component is to provide the core functionality of an activity-based workflow system including the definition and execution of workflow specifications.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2014-09-27 19:26:10"
|
||||
"time": "2014-09-27T19:26:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/workflow-database-tiein",
|
||||
@@ -2567,7 +2592,7 @@
|
||||
],
|
||||
"description": "Contains the database backend for the Workflow component.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2014-09-27 19:26:10"
|
||||
"time": "2014-09-27T19:26:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/workflow-event-log-tiein",
|
||||
@@ -2627,7 +2652,7 @@
|
||||
],
|
||||
"description": "Contains the EventLog listener for the Workflow component.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2007-12-17 09:04:44"
|
||||
"time": "2007-12-17T09:04:44+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
||||
@@ -216,6 +216,8 @@ define('CIS_DOKUMENTE_SELFSERVICE', true);
|
||||
//**** INFOSCREEN ****
|
||||
//Gibt an, ob der Lageplan im Infoterminal angezeigt werden soll.
|
||||
define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN',true);
|
||||
//Gibt an, ob News im Infoterminal angezeigt werden soll.
|
||||
define('CIS_INFOSCREEN_NEWS_ANZEIGEN',false);
|
||||
|
||||
//User, welcher für das Anlegen von Anrechnungen bei der Prüfungsanmeldung verwendet wird
|
||||
define('CIS_PRUEFUNGSANMELDUNG_USER','p.pruefungsanmeldung');
|
||||
@@ -234,6 +236,9 @@ define('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG', true);
|
||||
//Gibt an, ob der Bereich zur Anmeldung zu Pruefungen des gesamten Studiengangs angezeigt werden soll
|
||||
define('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG', true);
|
||||
|
||||
//Gibt an, ob mehrere Pruefungen zur selben Zeit im selben Raum stattfinden duerfen
|
||||
define('CIS_PRUEFUNGSANMELDUNG_ERLAUBE_TERMINKOLLISION', true);
|
||||
|
||||
//Gibt an, wie viele Semester aus der Vergangenheit unter Meine LV angezeigt werden
|
||||
define('CIS_MEINELV_ANZAHL_SEMESTER_PAST', 3);
|
||||
|
||||
|
||||
@@ -9,6 +9,9 @@ define('DEFAULT_LEHREINHEIT_LEHRFORM','UE');
|
||||
// Defaul Trennzeichen fuer E-Mail Empfaenger wenn nicht ueber Variablen ueberschrieben
|
||||
define('DEFAULT_EMAILADRESSENTRENNZEICHEN',',');
|
||||
|
||||
// Gibt an ob neue Mitarbeiter per default fixangestellt sind oder nicht
|
||||
define('DEFAULT_MITARBEITER_FIXANGESTELLT', true);
|
||||
|
||||
//Anzeigeoptionen für Lehrveranstaltungen im CIS
|
||||
define('CIS_LEHRVERANSTALTUNG_NEWSGROUPS_ANZEIGEN',true);
|
||||
define('CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN',true);
|
||||
@@ -196,6 +199,9 @@ define('SET_UID_AS_PERSONENKENNZEICHEN',false);
|
||||
// Legt fest ob fuer Studierende eine Alias EMail Adresse generiert wird (true|false)
|
||||
define('GENERATE_ALIAS_STUDENT',true);
|
||||
|
||||
// gibt an ob beim Anlegen von Mitarbeitern ein Alias generiert wird.
|
||||
define('GENERATE_ALIAS_MITARBEITERIN',true);
|
||||
|
||||
// Wie viele Tage nach Semesterstart soll bei der Neuanlage von Studierenden noch das aktuelle Semester vorgeschlagen werden.
|
||||
define('VILESCI_PERSON_NEU_STUDIENSEMESTER_UEBERGANGSFRIST',30);
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ var studentDDObserver=
|
||||
uid = tree.view.getCellText(v,col);
|
||||
if(uid=='')
|
||||
{
|
||||
alert('Es koennen nur Personen mit UID (Studenten/Mitarbeiter) verschoben werden');
|
||||
alert('Es koennen nur Personen mit UID (Studierende/Mitarbeitende) verschoben werden');
|
||||
return false;
|
||||
}
|
||||
paramList += ';'+uid;
|
||||
@@ -295,7 +295,7 @@ var LektorFunktionDDObserver=
|
||||
|
||||
if(stg=='')
|
||||
{
|
||||
alert('Mitarbeiter kann nur auf einen Studiengang gezogen werden');
|
||||
alert('MitarbeiterIn kann nur auf einen Studiengang gezogen werden');
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
+15
-15
@@ -147,7 +147,7 @@ function LektorFunktionDel()
|
||||
idx = tree.currentIndex;
|
||||
else
|
||||
{
|
||||
alert('Bitte zuerst einen Mitarbeiter markieren');
|
||||
alert('Bitte zuerst eine/n MitarbeiterIn markieren');
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ function LektorFunktionMail()
|
||||
}
|
||||
}
|
||||
if(anzfault!=0)
|
||||
alert(anzfault+' Mitarbeiter konnten nicht hinzugefuegt werden weil keine UID eingetragen ist!');
|
||||
alert(anzfault+' MitarbeiterInnen konnten nicht hinzugefuegt werden weil keine UID eingetragen ist!');
|
||||
if(mailempfaenger!='')
|
||||
window.location.href=mailempfaenger;
|
||||
}
|
||||
@@ -891,7 +891,7 @@ function StatistikPrintLVPlanung()
|
||||
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert('Bitte zuerst einen Mitarbeiter auswaehlen');
|
||||
alert('Bitte zuerst eine/n MitarbeiterIn auswaehlen');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -905,7 +905,7 @@ function StatistikPrintLVPlanung()
|
||||
if(typeof(url)!='undefined')
|
||||
window.open(url,'LV-Planung');
|
||||
else
|
||||
alert('Bitte waehlen sie ein(en) Verband, Institut oder Lektor aus');
|
||||
alert('Bitte waehlen sie ein(e/en) Verband, Institut oder LektorIn aus');
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -956,7 +956,7 @@ function StatistikPrintLVPlanungExcel()
|
||||
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert('Bitte zuerst einen Mitarbeiter auswaehlen');
|
||||
alert('Bitte zuerst eine/n MitarbeiterIn auswaehlen');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -970,7 +970,7 @@ function StatistikPrintLVPlanungExcel()
|
||||
if(typeof(url)!='undefined')
|
||||
window.open(url,'LV-Planung');
|
||||
else
|
||||
alert('Bitte waehlen sie ein(en) Verband, Institut oder Lektor aus');
|
||||
alert('Bitte waehlen sie einen Verband, Institut oder LektorIn aus');
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -1134,14 +1134,14 @@ function StatistikPrintStudienverlaufStudent()
|
||||
//Wenn nichts markiert wurde -> alle exportieren
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
alert("Bitte zuerst einen Studenten markieren");
|
||||
alert("Bitte zuerst eine/n Studierende/n markieren");
|
||||
return;
|
||||
}
|
||||
|
||||
var student_uid = getTreeCellText(tree, 'student-treecol-uid', tree.currentIndex);
|
||||
if (student_uid == '')
|
||||
{
|
||||
alert('Markierte Person ist kein Student');
|
||||
alert('Markierte Person ist kein/e StudentIn');
|
||||
return;
|
||||
}
|
||||
window.open('<?php echo APP_ROOT ?>index.ci.php/person/gradelist/index/'+student_uid,'Studienverlauf');
|
||||
@@ -1573,7 +1573,7 @@ function OpenAboutDialog()
|
||||
// ****
|
||||
function OpenManual()
|
||||
{
|
||||
window.open('http://fhcomplete.technikum-wien.at/dokuwiki/doku.php?','_blank');
|
||||
window.open('https://wiki.fhcomplete.org/doku.php?','_blank');
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -1893,7 +1893,7 @@ function PrintStudienblatt(event)
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
check = confirm('Achtung: Beim letzten (aktuellen) PreStudent-Status ist KEIN STUDIENPLAN eingetragen.\nDas Studienblatt ist moeglicherweise unvollstaendig.\nMoechten Sie es dennoch erstellen?');
|
||||
check = confirm('Achtung: Beim letzten (aktuellen) PreStudentInnen-Status ist KEIN STUDIENPLAN eingetragen.\nDas Studienblatt ist moeglicherweise unvollstaendig.\nMoechten Sie es dennoch erstellen?');
|
||||
if (check == false)
|
||||
return false;
|
||||
}
|
||||
@@ -1906,7 +1906,7 @@ function PrintStudienblatt(event)
|
||||
|
||||
if(studienplan_id=='')
|
||||
{
|
||||
check = confirm('Achtung: Beim letzten (aktuellen) PreStudent-Status ist KEIN STUDIENPLAN eingetragen.\nDas Studienblatt ist moeglicherweise unvollstaendig.\nMoechten Sie es dennoch erstellen?');
|
||||
check = confirm('Achtung: Beim letzten (aktuellen) PreStudentInnen-Status ist KEIN STUDIENPLAN eingetragen.\nDas Studienblatt ist moeglicherweise unvollstaendig.\nMoechten Sie es dennoch erstellen?');
|
||||
if (check == false)
|
||||
return false;
|
||||
}
|
||||
@@ -1969,7 +1969,7 @@ function PrintStudienblatt(event)
|
||||
}
|
||||
else
|
||||
{
|
||||
alert('Bitte zuerst einen Studenten auswaehlen');
|
||||
alert('Bitte zuerst eine/n Studierende/n auswaehlen');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2001,7 +2001,7 @@ function PrintStudienblattEnglisch(event)
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
check = confirm('Achtung: Beim letzten (aktuellen) PreStudent-Status ist KEIN STUDIENPLAN eingetragen.\nDas Studienblatt ist moeglicherweise unvollstaendig.\nMoechten Sie es dennoch erstellen?');
|
||||
check = confirm('Achtung: Beim letzten (aktuellen) PreStudentInnen-Status ist KEIN STUDIENPLAN eingetragen.\nDas Studienblatt ist moeglicherweise unvollstaendig.\nMoechten Sie es dennoch erstellen?');
|
||||
if (check == false)
|
||||
return false;
|
||||
}
|
||||
@@ -2015,7 +2015,7 @@ function PrintStudienblattEnglisch(event)
|
||||
|
||||
if(studienplan_id=='')
|
||||
{
|
||||
check = confirm('Achtung: Beim letzten (aktuellen) PreStudent-Status ist KEIN STUDIENPLAN eingetragen.\nDas Studienblatt ist moeglicherweise unvollstaendig.\nMoechten Sie es dennoch erstellen?');
|
||||
check = confirm('Achtung: Beim letzten (aktuellen) PreStudentInnen-Status ist KEIN STUDIENPLAN eingetragen.\nDas Studienblatt ist moeglicherweise unvollstaendig.\nMoechten Sie es dennoch erstellen?');
|
||||
if (check == false)
|
||||
return false;
|
||||
}
|
||||
@@ -2078,7 +2078,7 @@ function PrintStudienblattEnglisch(event)
|
||||
}
|
||||
else
|
||||
{
|
||||
alert('Bitte zuerst einen Studenten auswaehlen');
|
||||
alert('Bitte zuerst eine/n Studierende/n auswaehlen');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -228,13 +228,13 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeiteroverlay.xul
|
||||
</treeitem>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="Studiengangsleiter"/>
|
||||
<treecell label="StudiengangsleiterIn"/>
|
||||
<treecell label="Studiengangsleiter"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
<treeitem>
|
||||
<treerow>
|
||||
<treecell label="Institutsleiter"/>
|
||||
<treecell label="InstitutsleiterIn"/>
|
||||
<treecell label="Fachbereichsleiter"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
|
||||
@@ -101,7 +101,7 @@ else
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#uid"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="funktion-treecol-benutzerfunktion_id" label="BenutzerfunktionID" flex="1" hidden="true"
|
||||
<treecol id="funktion-treecol-benutzerfunktion_id" label="BenutzerInfunktionID" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#benutzerfunktion_id"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
@@ -143,7 +143,7 @@ function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz, $oe_ar
|
||||
{
|
||||
global $db;
|
||||
|
||||
$ret="Der Lektor ist in folgenden Organisationseinheiten zugeteilt:\n";
|
||||
$ret="Der/Die LektorIn ist in folgenden Organisationseinheiten zugeteilt:\n";
|
||||
|
||||
//Liste mit den Stunden in den jeweiligen Instituten anzeigen
|
||||
$qry = "SELECT sum(tbl_lehreinheitmitarbeiter.semesterstunden) as summe, tbl_studiengang.bezeichnung
|
||||
@@ -700,7 +700,7 @@ if(!$error)
|
||||
if($db->db_num_rows()>0)
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Dieser Lektor kann nicht gelöscht werden da er schon verplant ist';
|
||||
$errormsg = 'Diese/r LektorIn kann nicht gelöscht werden da er schon verplant ist';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -913,7 +913,7 @@ if(!$error)
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg='Dieser Lektor kann nicht aus dem LVPlan entfernt werden da dies der letzte verplante Lektor ist';
|
||||
$errormsg='Diese/r LektorIn kann nicht aus dem LVPlan entfernt werden da dies der/die letzte verplante LektorIn ist';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1379,13 +1379,13 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = 'Fehler beim Laden des Mitarbeiters';
|
||||
$errormsg = 'Fehler beim Laden des Mitarbeitenden';
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = 'MitarbeiterUID muss uebergeben werden';
|
||||
$errormsg = 'MitarbeitendeUID muss uebergeben werden';
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
@@ -1550,8 +1550,8 @@ if(!$error)
|
||||
$gruppe->semester = $lva->semester;
|
||||
$gruppe->bezeichnung = $bezeichnung;
|
||||
$gruppe->aktiv = true;
|
||||
$gruppe->mailgrp = false;
|
||||
$gruppe->sichtbar = true;
|
||||
$gruppe->mailgrp = true;
|
||||
$gruppe->sichtbar = false;
|
||||
$gruppe->generiert = false;
|
||||
$gruppe->insertamum = date('Y-m-d H:i:s');
|
||||
$gruppe->insertvon = $user;
|
||||
@@ -1678,7 +1678,7 @@ if(!$error)
|
||||
$qry = "
|
||||
DELETE FROM lehre.tbl_stundenplandev
|
||||
WHERE gruppe_kurzbz=".$db->db_add_param($gruppe_kurzbz);
|
||||
|
||||
|
||||
$db->db_query($qry);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -159,7 +159,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
|
||||
</vbox>
|
||||
|
||||
<vbox flex="1">
|
||||
<label value="Lektor" />
|
||||
<label value="LektorIn" />
|
||||
<tree id="lehrveranstaltung-lvgesamtnoten-tree" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/lvgesamtnote/liste"
|
||||
style="margin-bottom:5px;" height="100%" enableColumnDrag="true"
|
||||
@@ -183,7 +183,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lvgesamtnote/rdf#note_bezeichnung" onclick="LehrveranstaltungLVGesamtNotenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lehrveranstaltung-lvgesamtnoten-tree-mitarbeiter_uid" label="MitarbeiterUID" flex="2" hidden="true"
|
||||
<treecol id="lehrveranstaltung-lvgesamtnoten-tree-mitarbeiter_uid" label="MitarbeitendeUID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lvgesamtnote/rdf#mitarbeiter_uid" onclick="LehrveranstaltungLVGesamtNotenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -207,7 +207,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lvgesamtnote/rdf#note" onclick="LehrveranstaltungLVGesamtNotenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lehrveranstaltung-lvgesamtnoten-tree-student_uid" label="StudentUID" flex="2" hidden="true"
|
||||
<treecol id="lehrveranstaltung-lvgesamtnoten-tree-student_uid" label="StudierendeUID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lvgesamtnote/rdf#student_uid" onclick="LehrveranstaltungLVGesamtNotenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -274,7 +274,7 @@ if(defined('FAS_GESAMTNOTE_PRUEFUNGSHONORAR') && FAS_GESAMTNOTE_PRUEFUNGSHONORAR
|
||||
<caption label="Prüfungshonorar" />
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label value="Mitarbeiter" control="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"/>
|
||||
<label value="MitarbeiterIn" control="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"/>
|
||||
<menulist id="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"
|
||||
datasources="'.APP_ROOT.'rdf/mitarbeiter.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/mitarbeiter/_alle"
|
||||
|
||||
@@ -1107,7 +1107,7 @@ function LeMitarbeiterDel()
|
||||
idx = tree.currentIndex;
|
||||
else
|
||||
{
|
||||
alert('Bitte zuerst einen Mitarbeiter markieren');
|
||||
alert('Bitte zuerst eine/n MitarbeiterIn markieren');
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1618,7 +1618,7 @@ function LeLektorDelLVPlan()
|
||||
idx = tree.currentIndex;
|
||||
else
|
||||
{
|
||||
alert('Bitte zuerst einen Lektor markieren');
|
||||
alert('Bitte zuerst eine/n LektorIn markieren');
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1636,7 +1636,7 @@ function LeLektorDelLVPlan()
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!confirm("Sind Sie sicher dass Sie diesen Mitarbeiter aus dem LVPlan entfernen wollen?"))
|
||||
if(!confirm("Sind Sie sicher dass Sie diese/n MitarbeiterIn aus dem LVPlan entfernen wollen?"))
|
||||
return false;
|
||||
|
||||
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
|
||||
@@ -2792,7 +2792,7 @@ function LehrveranstaltungNotenPruefungSave()
|
||||
|
||||
if(mitarbeiter_uid == '' || satz == '' || anzahl == '' || vertragstyp_kurzbz=='')
|
||||
{
|
||||
alert('Bitte wählen Sie einen Mitarbeiter aus und geben Sie den Satz pro Prüfung sowie die Anzahl der Prüfungen an!');
|
||||
alert('Bitte wählen Sie eine/n MitarbeiterIn aus und geben Sie den Satz pro Prüfung sowie die Anzahl der Prüfungen an!');
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@ $studiengang->load($stundenplan->studiengang_kz);
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Lektor" control="stpl-details-dialog-menulist-lektor"/>
|
||||
<label value="LektorIn" control="stpl-details-dialog-menulist-lektor"/>
|
||||
<menulist id="stpl-details-dialog-menulist-lektor"
|
||||
datasources="<?php echo APP_ROOT.'rdf/mitarbeiter.rdf.php?stg_kz='.$stundenplan->studiengang_kz.'&lektor=true'.
|
||||
' '.APP_ROOT.'rdf/mitarbeiter.rdf.php?mitarbeiter_uid='.$stundenplan->mitarbeiter_uid;?>"
|
||||
|
||||
@@ -1,187 +1,187 @@
|
||||
<?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');
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay>
|
||||
|
||||
<overlay id="STPLDetailsOverlay"
|
||||
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/studenten.js" />
|
||||
|
||||
<!-- ************************* -->
|
||||
<!-- * Stundenplan Details * -->
|
||||
<!-- ************************* -->
|
||||
<vbox id="vboxSTPLDetailsListe">
|
||||
<popupset>
|
||||
<menupopup id="stpldetail-treestpldetail-popup">
|
||||
<menuitem label="Bearbeiten" oncommand="STPLDetailEdit()" />
|
||||
<menuitem label="Entfernen" oncommand="STPLDetailDelete()" />
|
||||
</menupopup>
|
||||
</popupset>
|
||||
|
||||
<tree id="treeStplDetails" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="../rdf/lehrstunde.rdf.php" ref="http://www.technikum-wien.at/lehrstunde/alle"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin:0px;"
|
||||
context="stpldetail-treestpldetail-popup"
|
||||
ondblclick="STPLDetailEdit()"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="lehreinheit_id" label="LE_ID" flex="2" primary="false"
|
||||
class="sortDirectionIndicator" sortActive="true" sortDirection="ascending"
|
||||
persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehreinheit_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLektor" label="Lektor" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lektor" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrfachKurzbz" label="Fach" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrfach" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrform" label="Form" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrform" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrfachBezeichnung" label="Lehrfach" flex="20" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrfach_bez" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_studiengang" label="Studiengang" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#studiengang" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplSemester" label="S" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#sem" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplVerband" label="V" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#ver" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="gruppe" label="G" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#grp" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_einheit" label="SpzGrp" flex="3" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplOrt" label="Ort" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#ort_kurzbz" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_datum" label="Datum" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#datum" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_stunde" label="Std" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#stunde" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplUNR" label="UNR" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#unr" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stundenplan_id" label="StundenplanID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="anzahlstudenten" label="AnzahlStudenten" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anzahlstudenten" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-anmerkung" label="Anmerkung" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anmerkung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-anmerkung_lehreinheit" label="AnmerkungLE" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anmerkung_lehreinheit" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-titel" label="Titel" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#titel" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-gruppe_bezeichnung" label="Gruppe Bezeichnung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-gruppe_beschreibung" label="Gruppe Beschreibung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe_beschreibung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-reservierung" label="Reservierung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#reservierung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehreinheit_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lektor" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrfach" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrform" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrfach_bez" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#studiengang" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#sem" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#ver" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#grp" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#ort_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#datum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#stunde" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#unr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anzahlstudenten" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anmerkung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anmerkung_lehreinheit" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#titel" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe_beschreibung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#reservierung" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</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> 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');
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay>
|
||||
|
||||
<overlay id="STPLDetailsOverlay"
|
||||
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/studenten.js" />
|
||||
|
||||
<!-- ************************* -->
|
||||
<!-- * Stundenplan Details * -->
|
||||
<!-- ************************* -->
|
||||
<vbox id="vboxSTPLDetailsListe">
|
||||
<popupset>
|
||||
<menupopup id="stpldetail-treestpldetail-popup">
|
||||
<menuitem label="Bearbeiten" oncommand="STPLDetailEdit()" />
|
||||
<menuitem label="Entfernen" oncommand="STPLDetailDelete()" />
|
||||
</menupopup>
|
||||
</popupset>
|
||||
|
||||
<tree id="treeStplDetails" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="../rdf/lehrstunde.rdf.php" ref="http://www.technikum-wien.at/lehrstunde/alle"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin:0px;"
|
||||
context="stpldetail-treestpldetail-popup"
|
||||
ondblclick="STPLDetailEdit()"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="lehreinheit_id" label="LE_ID" flex="2" primary="false"
|
||||
class="sortDirectionIndicator" sortActive="true" sortDirection="ascending"
|
||||
persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehreinheit_id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLektor" label="LektorIn" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lektor" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrfachKurzbz" label="Fach" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrfach" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrform" label="Form" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrform" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplLehrfachBezeichnung" label="Lehrfach" flex="20" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrfach_bez" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_studiengang" label="Studiengang" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#studiengang" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplSemester" label="S" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#sem" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplVerband" label="V" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#ver" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="gruppe" label="G" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#grp" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_einheit" label="SpzGrp" flex="3" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplOrt" label="Ort" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#ort_kurzbz" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_datum" label="Datum" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#datum" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl_stunde" label="Std" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#stunde" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stplUNR" label="UNR" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#unr" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stundenplan_id" label="StundenplanID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#id" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="anzahlstudenten" label="AnzahlStudenten" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anzahlstudenten" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-anmerkung" label="Anmerkung" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anmerkung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-anmerkung_lehreinheit" label="AnmerkungLE" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anmerkung_lehreinheit" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-titel" label="Titel" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#titel" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-gruppe_bezeichnung" label="Gruppe Bezeichnung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe_bezeichnung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-gruppe_beschreibung" label="Gruppe Beschreibung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe_beschreibung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stpl-details-overlay-lehrstunde-reservierung" label="Reservierung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator" persist="hidden, width, ordinal"
|
||||
sort="rdf:http://www.technikum-wien.at/lehrstunde/rdf#reservierung" />
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehreinheit_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lektor" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrfach" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrform" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#lehrfach_bez" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#studiengang" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#sem" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#ver" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#grp" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#ort_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#datum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#stunde" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#unr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anzahlstudenten" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anmerkung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#anmerkung_lehreinheit" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#titel" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#gruppe_beschreibung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/lehrstunde/rdf#reservierung" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</vbox>
|
||||
</overlay>
|
||||
|
||||
@@ -102,19 +102,19 @@ echo ']>
|
||||
sortDirection="descending"
|
||||
sort="rdf:http://www.technikum-wien.at/messages/rdf#insertamum"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="messages-tree-sender" label="Sender" flex="2" hidden="false"
|
||||
<treecol id="messages-tree-sender" label="SenderIn" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/messages/rdf#sender"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="messages-tree-recipient" label="Empfänger" flex="2" hidden="false"
|
||||
<treecol id="messages-tree-recipient" label="EmpfängerIn" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/messages/rdf#recipient"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="messages-tree-sender_id" label="SenderID" flex="2" hidden="true"
|
||||
<treecol id="messages-tree-sender_id" label="SenderInID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/messages/rdf#sender"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="messages-tree-recipient_id" label="EmpfängerID" flex="2" hidden="true"
|
||||
<treecol id="messages-tree-recipient_id" label="EmpfängerInID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/messages/rdf#recipient_id"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
@@ -58,6 +58,7 @@ $person = new Person();
|
||||
$person->getPersonFromBenutzer($uid);
|
||||
$person_id = $person->person_id;
|
||||
$anrede = $person->anrede;
|
||||
$gender = $person->geschlecht;
|
||||
$fullname = $person->getFullName();
|
||||
$birthday_date = new DateTime($person->gebdatum);
|
||||
|
||||
@@ -237,7 +238,8 @@ $data = array (
|
||||
'begin_date' => !is_null($begin_date) ? $begin_date->format('d.m.Y') : '',
|
||||
'end_date' => !is_null($end_date) ? $end_date->format('d.m.Y') : '', // empty, if lector is still employed
|
||||
'total_ss_actual_semester' => current($semesterstunden_of_actual_semester), // empty, if lector has no lehreinheit- or projektarbeitsstunden at the actual studiensemester
|
||||
'actual_date' => $actual_date->format('d.m.Y')
|
||||
'actual_date' => $actual_date->format('d.m.Y'),
|
||||
'gender' => $gender
|
||||
);
|
||||
|
||||
// Put semesterstunden per semester array in correct format for xsl template
|
||||
|
||||
@@ -379,7 +379,7 @@ function MitarbeiterBuchungKontoAnlegen()
|
||||
var tree = document.getElementById('mitarbeiter-tree');
|
||||
if (tree.currentIndex == -1)
|
||||
{
|
||||
alert('Bitte waehlen Sie einen Mitarbeiter aus');
|
||||
alert('Bitte waehlen Sie eine/n MitarbeiterIn aus');
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,301 +1,301 @@
|
||||
<?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/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay>
|
||||
|
||||
<overlay id="MitarbeiterDetailOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns:NC="http://home.netscape.com/NC-rdf#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<vbox id="mitarbeiter-detail-stammdaten" flex="1" style="overflow:auto">
|
||||
<textbox id="mitarbeiter-detail-textbox-person_id" hidden="true" />
|
||||
<groupbox id='groupbox-personendaten'>
|
||||
<!--PersonenDaten-->
|
||||
<caption label="Personendaten" />
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
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="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"'; ?> >
|
||||
<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:*"/>
|
||||
</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"'; ?> >
|
||||
<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:*"/>
|
||||
</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()">
|
||||
<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:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<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>
|
||||
</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"'; ?> >
|
||||
<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>
|
||||
</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>
|
||||
</rows>
|
||||
</grid>
|
||||
|
||||
</groupbox>
|
||||
|
||||
<!-- MITARBEITER DATEN -->
|
||||
|
||||
<hbox>
|
||||
<groupbox flex="8">
|
||||
<caption label="Mitarbeiterdaten" />
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="mitarbeiter-detail-textbox-personalnummer" value="Personalnummer"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-personalnummer" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label align="end" control="mitarbeiter-detail-textbox-kurzbezeichnung" value="Kurzbezeichnung"/>
|
||||
<hbox>
|
||||
<textbox id="mitarbeiter-detail-textbox-kurzbezeichnung" class="pflichtfeld" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<spacer />
|
||||
</hbox>
|
||||
<checkbox label="Lektor" id="mitarbeiter-detail-checkbox-lektor" checked="false" disabled="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
<checkbox label="Kleriker" id="mitarbeiter-detail-checkbox-kleriker" checked="false" disabled="true" hidden="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="mitarbeiter-detail-textbox-stundensatz" value="Stundensatz"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-stundensatz" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label align="end" control="mitarbeiter-detail-textbox-telefonklappe" value="Telefonklappe"/>
|
||||
<hbox>
|
||||
<textbox id="mitarbeiter-detail-textbox-telefonklappe" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<spacer />
|
||||
</hbox>
|
||||
<checkbox label="Fixangestellt" id="mitarbeiter-detail-checkbox-fixangestellt" checked="false" disabled="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
<spacer />
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="mitarbeiter-detail-menulist-ort_kurzbz" value="Buero"/>
|
||||
<vbox>
|
||||
<menulist id="mitarbeiter-detail-menulist-ort_kurzbz" disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/orte.rdf.php?optional=true"
|
||||
ref="http://www.technikum-wien.at/ort/liste" oncommand="MitarbeiterDetailValueChange()">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/ort/rdf#anzeigename"
|
||||
value="rdf:http://www.technikum-wien.at/ort/rdf#ort_kurzbz"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<spacer flex="1"/>
|
||||
</vbox>
|
||||
<label align="end" control="mitarbeiter-detail-menulist-standort" value="Standort"/>
|
||||
<vbox>
|
||||
<menulist id="mitarbeiter-detail-menulist-standort" disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/standort.rdf.php?optional=true&firmentyp_kurzbz=Intern"
|
||||
ref="http://www.technikum-wien.at/standort/liste" oncommand="MitarbeiterDetailValueChange()">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/standort/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/standort/rdf#standort_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<spacer flex="1"/>
|
||||
</vbox>
|
||||
<checkbox label="Bismelden" id="mitarbeiter-detail-checkbox-bismelden" checked="false" disabled="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
<spacer />
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anmerkung" control="mitarbeiter-detail-textbox-mitarbeiteranmerkung"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-mitarbeiteranmerkung" disabled="true" multiline="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<vbox>
|
||||
<label value="Alias" control="mitarbeiter-detail-textbox-alias"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<textbox id="mitarbeiter-detail-textbox-alias" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<label align="end" control="mitarbeiter-detail-menulist-ausbildung" value="Ausbildung"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<menulist id="mitarbeiter-detail-menulist-ausbildung" disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/ausbildung.rdf.php?optional=true"
|
||||
ref="http://www.technikum-wien.at/ausbildung/alle" oncommand="MitarbeiterDetailValueChange()">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/ausbildung/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/ausbildung/rdf#code"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</vbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox class="style-groupbox">
|
||||
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
|
||||
<spacer flex="1"/>
|
||||
<button id="mitarbeiter-detail-button-speichern" disabled="true" label="Speichern" oncommand="MitarbeiterSave();"/>
|
||||
</hbox>
|
||||
</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> 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/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay>
|
||||
|
||||
<overlay id="MitarbeiterDetailOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns:NC="http://home.netscape.com/NC-rdf#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<vbox id="mitarbeiter-detail-stammdaten" flex="1" style="overflow:auto">
|
||||
<textbox id="mitarbeiter-detail-textbox-person_id" hidden="true" />
|
||||
<groupbox id='groupbox-personendaten'>
|
||||
<!--PersonenDaten-->
|
||||
<caption label="Personendaten" />
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
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="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"'; ?> >
|
||||
<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:*"/>
|
||||
</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"'; ?> >
|
||||
<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:*"/>
|
||||
</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()">
|
||||
<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:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<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>
|
||||
</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"'; ?> >
|
||||
<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>
|
||||
</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>
|
||||
</rows>
|
||||
</grid>
|
||||
|
||||
</groupbox>
|
||||
|
||||
<!-- MITARBEITER DATEN -->
|
||||
|
||||
<hbox>
|
||||
<groupbox flex="8">
|
||||
<caption label="MitarbeiterInnendaten" />
|
||||
<grid align="end" flex="1"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
>
|
||||
<columns>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label align="end" control="mitarbeiter-detail-textbox-personalnummer" value="Personalnummer"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-personalnummer" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label align="end" control="mitarbeiter-detail-textbox-kurzbezeichnung" value="Kurzbezeichnung"/>
|
||||
<hbox>
|
||||
<textbox id="mitarbeiter-detail-textbox-kurzbezeichnung" class="pflichtfeld" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<spacer />
|
||||
</hbox>
|
||||
<checkbox label="LektorIn" id="mitarbeiter-detail-checkbox-lektor" checked="false" disabled="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
<checkbox label="Kleriker" id="mitarbeiter-detail-checkbox-kleriker" checked="false" disabled="true" hidden="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="mitarbeiter-detail-textbox-stundensatz" value="Stundensatz"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-stundensatz" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<label align="end" control="mitarbeiter-detail-textbox-telefonklappe" value="Telefonklappe"/>
|
||||
<hbox>
|
||||
<textbox id="mitarbeiter-detail-textbox-telefonklappe" size="10" maxlength="10" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<spacer />
|
||||
</hbox>
|
||||
<checkbox label="Fixangestellt" id="mitarbeiter-detail-checkbox-fixangestellt" checked="false" disabled="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
<spacer />
|
||||
</row>
|
||||
<row>
|
||||
<label align="end" control="mitarbeiter-detail-menulist-ort_kurzbz" value="Buero"/>
|
||||
<vbox>
|
||||
<menulist id="mitarbeiter-detail-menulist-ort_kurzbz" disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/orte.rdf.php?optional=true"
|
||||
ref="http://www.technikum-wien.at/ort/liste" oncommand="MitarbeiterDetailValueChange()">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/ort/rdf#anzeigename"
|
||||
value="rdf:http://www.technikum-wien.at/ort/rdf#ort_kurzbz"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<spacer flex="1"/>
|
||||
</vbox>
|
||||
<label align="end" control="mitarbeiter-detail-menulist-standort" value="Standort"/>
|
||||
<vbox>
|
||||
<menulist id="mitarbeiter-detail-menulist-standort" disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/standort.rdf.php?optional=true&firmentyp_kurzbz=Intern"
|
||||
ref="http://www.technikum-wien.at/standort/liste" oncommand="MitarbeiterDetailValueChange()">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/standort/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/standort/rdf#standort_id"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<spacer flex="1"/>
|
||||
</vbox>
|
||||
<checkbox label="Bismelden" id="mitarbeiter-detail-checkbox-bismelden" checked="false" disabled="true" onchange="MitarbeiterDetailValueChange()"/>
|
||||
<spacer />
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anmerkung" control="mitarbeiter-detail-textbox-mitarbeiteranmerkung"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-mitarbeiteranmerkung" disabled="true" multiline="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
<vbox>
|
||||
<label value="Alias" control="mitarbeiter-detail-textbox-alias"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<textbox id="mitarbeiter-detail-textbox-alias" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<label align="end" control="mitarbeiter-detail-menulist-ausbildung" value="Ausbildung"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<menulist id="mitarbeiter-detail-menulist-ausbildung" disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/ausbildung.rdf.php?optional=true"
|
||||
ref="http://www.technikum-wien.at/ausbildung/alle" oncommand="MitarbeiterDetailValueChange()">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/ausbildung/rdf#bezeichnung"
|
||||
value="rdf:http://www.technikum-wien.at/ausbildung/rdf#code"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</vbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox class="style-groupbox">
|
||||
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
|
||||
<spacer flex="1"/>
|
||||
<button id="mitarbeiter-detail-button-speichern" disabled="true" label="Speichern" oncommand="MitarbeiterSave();"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
|
||||
@@ -1012,7 +1012,7 @@ function MitarbeiterSendMail()
|
||||
}
|
||||
}
|
||||
if(anzfault!=0)
|
||||
alert(anzfault+' Mitarbeiter konnten nicht hinzugefuegt werden weil keine UID eingetragen ist!');
|
||||
alert(anzfault+' MitarbeiterIn konnten nicht hinzugefuegt werden weil keine UID eingetragen ist!');
|
||||
window.location.href=mailempfaenger;
|
||||
}
|
||||
|
||||
@@ -1693,7 +1693,7 @@ function MitarbeiterEntwicklungsteamSpeichern()
|
||||
|
||||
if (tree.currentIndex==-1)
|
||||
{
|
||||
alert('Es ist kein Mitarbeiter ausgewaehlt');
|
||||
alert('Es ist kein/e MitarbeiterIn ausgewaehlt');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,295 +1,295 @@
|
||||
<?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('../../config/global.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 properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
|
||||
<?php
|
||||
if($rechte->isBerechtigt('mitarbeiter/persoenlich'))
|
||||
echo '
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#svnr" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ersatzkennzeichen" />';
|
||||
?>
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#personalnummer" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#lektor" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#telefonklappe" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ort_kurzbz" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertvon" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum_iso" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updatevon" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" 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()" />
|
||||
<tab id="mitarbeiter-tab-notizen" label="Notizen"/>
|
||||
<?php
|
||||
if (!defined('FAS_UDF') || FAS_UDF == true)
|
||||
echo '<tab id="mitarbeiter-tab-udf" label="Zusatzfelder" onclick="MitarbeiterUDFIFrameLoad()"/>';
|
||||
?>
|
||||
</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;" />
|
||||
<vbox id="mitarbeiter-box-notiz">
|
||||
<box class="Notiz" flex="1" id="mitarbeiter-box-notizen"/>
|
||||
</vbox>
|
||||
<?php
|
||||
if (!defined('FAS_UDF') || FAS_UDF == true)
|
||||
echo '<iframe id="mitarbeiter-udf" 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('../../config/global.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="LektorIn" 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 properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#anrede" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
|
||||
<?php
|
||||
if($rechte->isBerechtigt('mitarbeiter/persoenlich'))
|
||||
echo '
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#geburtsdatum_iso" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#svnr" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ersatzkennzeichen" />';
|
||||
?>
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#personalnummer" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#kurzbz" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#lektor" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#fixangestellt" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#telefonklappe" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#ort_kurzbz" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#person_id" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertvon" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#insertamum_iso" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updateamum" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#updatevon" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" 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()" />
|
||||
<tab id="mitarbeiter-tab-notizen" label="Notizen"/>
|
||||
<?php
|
||||
if (!defined('FAS_UDF') || FAS_UDF == true)
|
||||
echo '<tab id="mitarbeiter-tab-udf" label="Zusatzfelder" onclick="MitarbeiterUDFIFrameLoad()"/>';
|
||||
?>
|
||||
</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;" />
|
||||
<vbox id="mitarbeiter-box-notiz">
|
||||
<box class="Notiz" flex="1" id="mitarbeiter-box-notizen"/>
|
||||
</vbox>
|
||||
<?php
|
||||
if (!defined('FAS_UDF') || FAS_UDF == true)
|
||||
echo '<iframe id="mitarbeiter-udf" src="" style="margin-top:10px;" />';
|
||||
?>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
|
||||
@@ -70,11 +70,11 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/notiz/rdf#text" />
|
||||
<xul:splitter class="tree-splitter"/>
|
||||
<xul:treecol anonid="treecol-notiz-verfasser" label="Verfasser" flex="2" hidden="false" persist="hidden width ordinal"
|
||||
<xul:treecol anonid="treecol-notiz-verfasser" label="VerfasserIn" flex="2" hidden="false" persist="hidden width ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/notiz/rdf#verfasser_uid" />
|
||||
<xul:splitter class="tree-splitter"/>
|
||||
<xul:treecol anonid="treecol-notiz-bearbeiter" label="Bearbeiter" flex="2" hidden="true" persist="hidden width ordinal"
|
||||
<xul:treecol anonid="treecol-notiz-bearbeiter" label="BearbeiterIn" flex="2" hidden="true" persist="hidden width ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/notiz/rdf#bearbeiter_uid" />
|
||||
<xul:splitter class="tree-splitter"/>
|
||||
@@ -177,12 +177,12 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
<xul:label value="Gültig bis"/>
|
||||
<xul:hbox>
|
||||
<xul:box class="Datum" anonid="box-notiz-ende"/>
|
||||
<xul:label value="Verfasser"/>
|
||||
<xul:label value="VerfasserIn"/>
|
||||
<xul:label anonid="textbox-notiz-verfasser" disabled="true"/>
|
||||
</xul:hbox>
|
||||
</xul:row>
|
||||
<xul:row>
|
||||
<xul:label value="Bearbeiter"/>
|
||||
<xul:label value="BearbeiterIn"/>
|
||||
<xul:hbox>
|
||||
<xul:hbox flex="1">
|
||||
<xul:menulist anonid="menulist-notiz-bearbeiter"
|
||||
|
||||
@@ -305,6 +305,12 @@ else
|
||||
else
|
||||
$output = 'pdf';
|
||||
|
||||
// An der FHTW darf fas Studienblatt auch iin anderen Formaten exportiert werden
|
||||
if (CAMPUS_NAME == 'FH Technikum Wien' && ($xsl == 'Studienblatt' || $xsl == 'StudienblattEng'))
|
||||
{
|
||||
$output = $_GET['output'];
|
||||
}
|
||||
|
||||
$vorlage = new vorlage();
|
||||
if(!$vorlage->loadVorlage($xsl))
|
||||
die('Vorlage wurde nicht gefunden');
|
||||
@@ -502,7 +508,7 @@ else
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Student hat keinen Status in diesem Semester');
|
||||
die('StudentIn hat keinen Status in diesem Semester');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+196
-196
@@ -1,196 +1,196 @@
|
||||
<?php
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
|
||||
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekt.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektphase.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekttask.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdokument.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/gantt.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/bestellung.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/ressource.overlay.xul.php"?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay >
|
||||
<!-- [<?php require_once("../locale/de-AT/planner.dtd"); ?>] -->
|
||||
|
||||
<overlay id="PlannerOverlay"
|
||||
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/planner.overlay.js.php" />
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js.php"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/projekt/ressource.js.php"/>
|
||||
|
||||
<vbox id="box-projektmenue">
|
||||
<popupset>
|
||||
<popup id="projekttask-tree-popup">
|
||||
<menuitem label="Entfernen" oncommand="LeDelete();" id="projekttask-tree-popup-entf" disabled="false"/>
|
||||
</popup>
|
||||
</popupset>
|
||||
<toolbox>
|
||||
<toolbar id="toolbar-projektmenue">
|
||||
<!--
|
||||
<toolbarbutton id="toolbarbutton-projektmenue-neu" label="Neues Projekt" oncommand="ProjektNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neues Projekt anlegen" />
|
||||
<toolbarbutton id="toolbarbutton-projektmenue-del" label="Loeschen" oncommand="ProjektDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Projekt löschen"/>
|
||||
-->
|
||||
<toolbarbutton id="toolbarbutton-projektmenue-refresh" label="Aktualisieren" oncommand="ProjektmenueRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
|
||||
<toolbarbutton anonid="toolbarbutton-projektmenue-filter" label="Filter" type="menu">
|
||||
<menupopup>
|
||||
<menuitem label="Alle Projekte Anzeigen" type="radio" name="filterProjekt" checked="true" oncommand="ProjektmenueRefresh('alle')" tooltiptext="Alle Projekte anzeigen"/>
|
||||
<menuitem label="nur aktuelle und kommende Projekte anzeigen" type="radio" name="filterProjekt" oncommand="ProjektmenueRefresh('kommende')" tooltiptext="nur aktuelle und kommende Projekte anzeigen"/>
|
||||
<menuitem label="nur aktuelle Projekte anzeigen" type="radio" name="filterProjekt" oncommand="ProjektmenueRefresh('aktuell')" tooltiptext="nur aktuelle Projekte anzeigen"/>
|
||||
</menupopup>
|
||||
</toolbarbutton>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<!-- <?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?foo=<?php echo time(); ?> -->
|
||||
<tree id="tree-projektmenue" onselect="treeProjektmenueSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?foo=<?php echo time(); ?>" ref="http://www.technikum-wien.at/projektphase"
|
||||
enableColumnDrag="true"
|
||||
ondragdrop="nsDragAndDrop.drop(event,projektTaskDDObserver)"
|
||||
ondragover="nsDragAndDrop.dragOver(event,projektTaskDDObserver)"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event,projektTaskDDObserver)"
|
||||
ondragexit="nsDragAndDrop.dragExit(event,projektTaskDDObserver)"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="treecol-projektmenue-bezeichnung" label="Bezeichnung" flex="5" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-oe" label="OE" flex="2" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-projekt_kurzbz" label="Projekt" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-projekt_phase" label="Phase" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-projekt_phase_id" label="PhaseID" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-titel" label="Titel" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-typ" label="Typ" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-nummer" label="Nummer" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-beginn" label="Beginn" flex="2" hidden="false"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-ende" label="Ende" flex="2" hidden="false"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell src="../skin/images/rdf:http://www.technikum-wien.at/projektphase/rdf#typ^.png" label=" rdf:http://www.technikum-wien.at/projektphase/rdf#bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#oe_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_phase"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_phase_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#titel"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#typ"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#nummer"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#beginn"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#ende"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</vbox>
|
||||
|
||||
<vbox id="vbox-main">
|
||||
<tabbox id="tabbox-main" flex="3" orient="vertical">
|
||||
<tabs id="tabs-planner-main" orient="horizontal">
|
||||
<tab id="tab-projekte" label="Projekte" />
|
||||
<tab id="tab-projektphase" label="Phasen" />
|
||||
<tab id="tab-projekttask" label="Tasks" selected="true" />
|
||||
<tab id="tab-dokumente" label="Dokumente" />
|
||||
<tab id="tab-ressourceauslastung" label="Ressourcen" />
|
||||
<tab id="tab-bestellung" label="Bestellungen" />
|
||||
<tab id="tab-ganttx" label="Gantt" />
|
||||
<tab id="tab-notiz" label="Eigene Notizen" />
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-main" flex="1">
|
||||
<vbox id="box-projekt" />
|
||||
<vbox id="box-projektphase" />
|
||||
<vbox id="box-projekttask" />
|
||||
<vbox id="box-dokumente" />
|
||||
<vbox id="box-ressource" />
|
||||
<vbox id="box-bestellung" />
|
||||
<vbox id="box-ganttx" />
|
||||
<vbox id="box-notiz" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
<vbox id="box-notiz">
|
||||
<box class="Notiz" flex="1" id="box-notizen"/>
|
||||
</vbox>
|
||||
|
||||
<vbox id="box-ressourcemenue">
|
||||
<toolbox>
|
||||
<toolbar id="toolbar-ressourcemenue">
|
||||
<toolbarbutton id="toolbarbutton-ressourcemenue-neu" label="Neue Ressource" oncommand="RessourceNeu();" disabled="false" image="../skin/images/NeuDokument.png" tooltiptext="Neue Ressource anlegen" />
|
||||
<toolbarbutton id="toolbarbutton-ressourcemenue-del" label="Loeschen" oncommand="RessourceDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Projekt löschen"/>
|
||||
<toolbarbutton id="toolbarbutton-ressourcemenue-refresh" label="Aktualisieren" oncommand="RessourceRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<tree id="tree-ressourcemenue" onselect="treeRessourcemenueSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/ressource/liste"
|
||||
enableColumnDrag="true"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,ressourceDDObserver);"
|
||||
ondragdrop="nsDragAndDrop.drop(event,ressourceDDObserver)"
|
||||
ondragover="nsDragAndDrop.dragOver(event,ressourceDDObserver)"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event,ressourceDDObserver)"
|
||||
ondragexit="nsDragAndDrop.dragExit(event,ressourceDDObserver)"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="treecol-ressourcemenue-bezeichnung" label="Bezeichnung" flex="2" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-description" label="Anzeige" flex="2" hidden="false" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-typ" label="typ" flex="5" hidden ="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-ressource_id" label="ID" flex="5" hidden ="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-beschreibung" label="Beschreibung" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-mitarbeiter_uid" label="MitarbeiterUID" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-student_uid" label="StudentUID" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-betriebsmittel_id" label="BetriebsmittelID" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-firma_id" label="FirmaID" flex="1" hidden="true"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#rdf_description"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#typ"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#ressource_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#beschreibung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#mitarbeiter_uid"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#student_uid"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#betriebsmittel_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#firma_id"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</vbox>
|
||||
|
||||
</overlay>
|
||||
<?php
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
|
||||
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekt.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektphase.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekttask.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdokument.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/gantt.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/bestellung.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/ressource.overlay.xul.php"?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay >
|
||||
<!-- [<?php require_once("../locale/de-AT/planner.dtd"); ?>] -->
|
||||
|
||||
<overlay id="PlannerOverlay"
|
||||
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/planner.overlay.js.php" />
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js.php"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/projekt/ressource.js.php"/>
|
||||
|
||||
<vbox id="box-projektmenue">
|
||||
<popupset>
|
||||
<popup id="projekttask-tree-popup">
|
||||
<menuitem label="Entfernen" oncommand="LeDelete();" id="projekttask-tree-popup-entf" disabled="false"/>
|
||||
</popup>
|
||||
</popupset>
|
||||
<toolbox>
|
||||
<toolbar id="toolbar-projektmenue">
|
||||
<!--
|
||||
<toolbarbutton id="toolbarbutton-projektmenue-neu" label="Neues Projekt" oncommand="ProjektNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neues Projekt anlegen" />
|
||||
<toolbarbutton id="toolbarbutton-projektmenue-del" label="Loeschen" oncommand="ProjektDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Projekt löschen"/>
|
||||
-->
|
||||
<toolbarbutton id="toolbarbutton-projektmenue-refresh" label="Aktualisieren" oncommand="ProjektmenueRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
|
||||
<toolbarbutton anonid="toolbarbutton-projektmenue-filter" label="Filter" type="menu">
|
||||
<menupopup>
|
||||
<menuitem label="Alle Projekte Anzeigen" type="radio" name="filterProjekt" checked="true" oncommand="ProjektmenueRefresh('alle')" tooltiptext="Alle Projekte anzeigen"/>
|
||||
<menuitem label="nur aktuelle und kommende Projekte anzeigen" type="radio" name="filterProjekt" oncommand="ProjektmenueRefresh('kommende')" tooltiptext="nur aktuelle und kommende Projekte anzeigen"/>
|
||||
<menuitem label="nur aktuelle Projekte anzeigen" type="radio" name="filterProjekt" oncommand="ProjektmenueRefresh('aktuell')" tooltiptext="nur aktuelle Projekte anzeigen"/>
|
||||
</menupopup>
|
||||
</toolbarbutton>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<!-- <?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?foo=<?php echo time(); ?> -->
|
||||
<tree id="tree-projektmenue" onselect="treeProjektmenueSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?foo=<?php echo time(); ?>" ref="http://www.technikum-wien.at/projektphase"
|
||||
enableColumnDrag="true"
|
||||
ondragdrop="nsDragAndDrop.drop(event,projektTaskDDObserver)"
|
||||
ondragover="nsDragAndDrop.dragOver(event,projektTaskDDObserver)"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event,projektTaskDDObserver)"
|
||||
ondragexit="nsDragAndDrop.dragExit(event,projektTaskDDObserver)"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="treecol-projektmenue-bezeichnung" label="Bezeichnung" flex="5" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-oe" label="OE" flex="2" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-projekt_kurzbz" label="Projekt" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-projekt_phase" label="Phase" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-projekt_phase_id" label="PhaseID" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-titel" label="Titel" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-typ" label="Typ" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-nummer" label="Nummer" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-beginn" label="Beginn" flex="2" hidden="false"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-projektmenue-ende" label="Ende" flex="2" hidden="false"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell src="../skin/images/rdf:http://www.technikum-wien.at/projektphase/rdf#typ^.png" label=" rdf:http://www.technikum-wien.at/projektphase/rdf#bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#oe_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_phase"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_phase_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#titel"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#typ"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#nummer"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#beginn"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#ende"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</vbox>
|
||||
|
||||
<vbox id="vbox-main">
|
||||
<tabbox id="tabbox-main" flex="3" orient="vertical">
|
||||
<tabs id="tabs-planner-main" orient="horizontal">
|
||||
<tab id="tab-projekte" label="Projekte" />
|
||||
<tab id="tab-projektphase" label="Phasen" />
|
||||
<tab id="tab-projekttask" label="Tasks" selected="true" />
|
||||
<tab id="tab-dokumente" label="Dokumente" />
|
||||
<tab id="tab-ressourceauslastung" label="Ressourcen" />
|
||||
<tab id="tab-bestellung" label="Bestellungen" />
|
||||
<tab id="tab-ganttx" label="Gantt" />
|
||||
<tab id="tab-notiz" label="Eigene Notizen" />
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-main" flex="1">
|
||||
<vbox id="box-projekt" />
|
||||
<vbox id="box-projektphase" />
|
||||
<vbox id="box-projekttask" />
|
||||
<vbox id="box-dokumente" />
|
||||
<vbox id="box-ressource" />
|
||||
<vbox id="box-bestellung" />
|
||||
<vbox id="box-ganttx" />
|
||||
<vbox id="box-notiz" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
<vbox id="box-notiz">
|
||||
<box class="Notiz" flex="1" id="box-notizen"/>
|
||||
</vbox>
|
||||
|
||||
<vbox id="box-ressourcemenue">
|
||||
<toolbox>
|
||||
<toolbar id="toolbar-ressourcemenue">
|
||||
<toolbarbutton id="toolbarbutton-ressourcemenue-neu" label="Neue Ressource" oncommand="RessourceNeu();" disabled="false" image="../skin/images/NeuDokument.png" tooltiptext="Neue Ressource anlegen" />
|
||||
<toolbarbutton id="toolbarbutton-ressourcemenue-del" label="Loeschen" oncommand="RessourceDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Projekt löschen"/>
|
||||
<toolbarbutton id="toolbarbutton-ressourcemenue-refresh" label="Aktualisieren" oncommand="RessourceRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<tree id="tree-ressourcemenue" onselect="treeRessourcemenueSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/ressource/liste"
|
||||
enableColumnDrag="true"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,ressourceDDObserver);"
|
||||
ondragdrop="nsDragAndDrop.drop(event,ressourceDDObserver)"
|
||||
ondragover="nsDragAndDrop.dragOver(event,ressourceDDObserver)"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event,ressourceDDObserver)"
|
||||
ondragexit="nsDragAndDrop.dragExit(event,ressourceDDObserver)"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="treecol-ressourcemenue-bezeichnung" label="Bezeichnung" flex="2" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-description" label="Anzeige" flex="2" hidden="false" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-typ" label="typ" flex="5" hidden ="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-ressource_id" label="ID" flex="5" hidden ="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-beschreibung" label="Beschreibung" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-mitarbeiter_uid" label="MitarbeiterUID" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-student_uid" label="StudentInUID" flex="1" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-betriebsmittel_id" label="BetriebsmittelID" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="treecol-ressourcemenue-firma_id" label="FirmaID" flex="1" hidden="true"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#rdf_description"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#typ"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#ressource_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#beschreibung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#mitarbeiter_uid"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#student_uid"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#betriebsmittel_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#firma_id"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</vbox>
|
||||
|
||||
</overlay>
|
||||
|
||||
@@ -16,37 +16,37 @@
|
||||
* 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
|
||||
* 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"];
|
||||
|
||||
|
||||
$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"';
|
||||
}
|
||||
|
||||
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);
|
||||
@@ -66,16 +66,16 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
<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 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>
|
||||
@@ -88,23 +88,23 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
</columns>
|
||||
<rows>
|
||||
|
||||
<rows>
|
||||
|
||||
<row>
|
||||
<label value="ProjektRessourceID" control="textbox-ressource-projekt_ressource_id"/>
|
||||
<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="Funktion" control="textbox-ressource-funktionradio"/>
|
||||
<radiogroup>
|
||||
<radio id="leitung" label="Leitung" <?php echo $leitung_sel; ?>/>
|
||||
<radio id="mitarbeiter" label="MitarbeiterIn" <?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>
|
||||
</row>
|
||||
|
||||
</rows>
|
||||
</grid>
|
||||
|
||||
@@ -53,7 +53,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="Mitarbeiter" control="ressource-menulist-mitarbeiter" />
|
||||
<label value="MitarbeiterIn" control="ressource-menulist-mitarbeiter" />
|
||||
<menulist id="ressource-menulist-mitarbeiter"
|
||||
editable="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
@@ -71,7 +71,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Student" control="ressource-menulist-student" />
|
||||
<label value="StudentIn" control="ressource-menulist-student" />
|
||||
<menulist id="ressource-menulist-student"
|
||||
editable="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
|
||||
+601
-601
File diff suppressed because it is too large
Load Diff
@@ -60,7 +60,7 @@ foreach ($mitarbeiterDAO->result as $key => $foo)
|
||||
|
||||
array_multisort($nachname, SORT_ASC, $vorname, SORT_ASC, $mitarbeiterDAO->result);
|
||||
|
||||
$spalte = array('titelpre', 'vorname', 'vornamen', 'nachname', 'titelpost','gebdatum','svnr','ersatzkennzeichen',
|
||||
$spalte = array('anrede','titelpre', 'vorname', 'vornamen', 'nachname', 'titelpost','gebdatum','svnr','ersatzkennzeichen',
|
||||
'aktiv','personalnummer', 'kurzbz','fixangestellt','lektor');
|
||||
$anzSpalten = count($spalte);
|
||||
|
||||
|
||||
@@ -350,6 +350,12 @@ function AufnahemTermineReihungstestPunkteTransmit()
|
||||
}
|
||||
}
|
||||
|
||||
function setEndpunkteAsPunkte(id)
|
||||
{
|
||||
var punkte = document.getElementById(id).value;
|
||||
document.getElementById('aufnahmetermine-textbox-punkte').value = punkte;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert einen AufnahmeTermin
|
||||
*/
|
||||
|
||||
@@ -303,12 +303,14 @@ echo ']>
|
||||
<label value="Reihungstestpunkte (inkl. Physik)" control="aufnahmetermine-textbox-endpunkte-inkl-gebiete" style="margin-right: 7px;"/>
|
||||
<hbox>
|
||||
<textbox id="aufnahmetermine-textbox-endpunkte-inkl-gebiete" readonly="true" maxlength="8" size="6" flex="1"/>
|
||||
<toolbarbutton image="../../skin/images/up.png" tooltiptext="Als Punkte setzen" onclick="setEndpunkteAsPunkte('aufnahmetermine-textbox-endpunkte-inkl-gebiete')"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Reihungstestpunkte (exkl. Physik)" control="aufnahmetermine-textbox-endpunkte-exkl-gebiete" />
|
||||
<hbox>
|
||||
<textbox id="aufnahmetermine-textbox-endpunkte-exkl-gebiete" readonly="true" maxlength="8" size="6" flex="1"/>
|
||||
<toolbarbutton image="../../skin/images/up.png" tooltiptext="Als Punkte setzen" onclick="setEndpunkteAsPunkte('aufnahmetermine-textbox-endpunkte-exkl-gebiete')"/>
|
||||
</hbox>
|
||||
</row>
|
||||
</vbox>
|
||||
|
||||
@@ -187,7 +187,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#dokument_kurzbz" onclick="InteressentDokumenteAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-prestudent_id" label="PrestudentID" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-prestudent_id" label="PrestudentInID" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#prestudent_id" onclick="InteressentDokumenteAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
@@ -2299,6 +2299,29 @@ if(!$error)
|
||||
$errormsg='Fehler beim Laden des Dokuments';
|
||||
}
|
||||
}
|
||||
// Wenn kein Dokument im DMS vorhanden ist, aber die akte auf "wird nachgereicht" gesetzt ist
|
||||
// darf das Dokument auch gelöscht werden
|
||||
elseif($akte->nachgereicht === true && $akte->inhalt == '')
|
||||
{
|
||||
if($akte->delete($akte_id))
|
||||
{
|
||||
// Log schreiben
|
||||
$logdata_akte = (array)$akte;
|
||||
$logdata = var_export($logdata_akte, true);
|
||||
$log = new log();
|
||||
$log->executetime = date('Y-m-d H:i:s');
|
||||
$log->mitarbeiter_uid = $user;
|
||||
$log->beschreibung = "Löschen der Nachreichung der Akte '".$akte->dokument_kurzbz."' ID '".$akte_id."'";
|
||||
$log->sql = 'DELETE FROM public.tbl_akte WHERE akte_id='.$db->db_add_param($akte_id, FHC_INTEGER).'; LogData:'.$logdata;
|
||||
$log->sqlundo = '';
|
||||
$log->save(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$error=true;
|
||||
$errormsg='Fehler beim Loeschen der Akte';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error=true;
|
||||
@@ -2669,11 +2692,12 @@ if(!$error)
|
||||
$bisio->nation_code = $_POST['nation_code'];
|
||||
$bisio->von = $_POST['von'];
|
||||
$bisio->bis = $_POST['bis'];
|
||||
$bisio->zweck_code = $_POST['zweck_code'];
|
||||
$bisio->student_uid = $_POST['student_uid'];
|
||||
$bisio->lehreinheit_id = $_POST['lehreinheit_id'];
|
||||
$bisio->ort = $_POST['ort'];
|
||||
$bisio->universitaet = $_POST['universitaet'];
|
||||
$bisio->ects_erworben = $_POST['ects_erworben'];
|
||||
$bisio->ects_angerechnet = $_POST['ects_angerechnet'];
|
||||
$bisio->updateamum = date('Y-m-d H:i:s');
|
||||
$bisio->updatevon = $user;
|
||||
|
||||
@@ -2692,6 +2716,210 @@ if(!$error)
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='savebisiozweck')
|
||||
{
|
||||
$bisio = new bisio();
|
||||
if($bisio->load($_POST['bisio_id']))
|
||||
{
|
||||
$student = new student();
|
||||
if($student->load($bisio->student_uid))
|
||||
{
|
||||
|
||||
//Speichert einen BisIO Eintrag
|
||||
if(!$rechte->isBerechtigt('assistenz',$student->studiengang_kz,'suid') &&
|
||||
!$rechte->isBerechtigt('admin',$student->studiengang_kz, 'suid'))
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Sie haben keine Berechtigung';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$bisio = new bisio();
|
||||
|
||||
$bisio->bisio_id = (isset($_POST['bisio_id'])?$_POST['bisio_id']:'');
|
||||
$bisio->zweck_code = $_POST['zweck_code'];
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
if($bisio->saveZweck())
|
||||
{
|
||||
$return = true;
|
||||
$data = $bisio->bisio_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $bisio->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $student->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $bisio->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='deletebisiozweck')
|
||||
{
|
||||
$bisio = new bisio();
|
||||
if($bisio->load($_POST['bisio_id']))
|
||||
{
|
||||
$student = new student();
|
||||
if($student->load($bisio->student_uid))
|
||||
{
|
||||
//Speichert einen BisIO Eintrag
|
||||
if(!$rechte->isBerechtigt('assistenz',$student->studiengang_kz,'suid') &&
|
||||
!$rechte->isBerechtigt('admin',$student->studiengang_kz, 'suid'))
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Sie haben keine Berechtigung';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$bisio = new bisio();
|
||||
|
||||
$bisio->bisio_id = (isset($_POST['bisio_id'])?$_POST['bisio_id']:'');
|
||||
$bisio->zweck_code = $_POST['zweck_code'];
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
if($bisio->deleteZweck())
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $bisio->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $student->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $bisio->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='savebisioaufenthaltfoerderung')
|
||||
{
|
||||
$bisio = new bisio();
|
||||
if($bisio->load($_POST['bisio_id']))
|
||||
{
|
||||
$student = new student();
|
||||
if($student->load($bisio->student_uid))
|
||||
{
|
||||
|
||||
//Speichert einen BisIO Eintrag
|
||||
if(!$rechte->isBerechtigt('assistenz',$student->studiengang_kz,'suid') &&
|
||||
!$rechte->isBerechtigt('admin',$student->studiengang_kz, 'suid'))
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Sie haben keine Berechtigung';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$bisio = new bisio();
|
||||
|
||||
$bisio->bisio_id = (isset($_POST['bisio_id'])?$_POST['bisio_id']:'');
|
||||
$bisio->aufenthaltfoerderung_code = $_POST['aufenthaltfoerderung_code'];
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
if($bisio->saveAufenthaltFoerderung())
|
||||
{
|
||||
$return = true;
|
||||
$data = $bisio->bisio_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $bisio->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $student->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $bisio->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='deletebisioaufenthaltfoerderung')
|
||||
{
|
||||
$bisio = new bisio();
|
||||
if($bisio->load($_POST['bisio_id']))
|
||||
{
|
||||
$student = new student();
|
||||
if($student->load($bisio->student_uid))
|
||||
{
|
||||
//Speichert einen BisIO Eintrag
|
||||
if(!$rechte->isBerechtigt('assistenz',$student->studiengang_kz,'suid') &&
|
||||
!$rechte->isBerechtigt('admin',$student->studiengang_kz, 'suid'))
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Sie haben keine Berechtigung';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$bisio = new bisio();
|
||||
|
||||
$bisio->bisio_id = (isset($_POST['bisio_id'])?$_POST['bisio_id']:'');
|
||||
$bisio->aufenthaltfoerderung_code = $_POST['aufenthaltfoerderung_code'];
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
if($bisio->deleteAufenthaltFoerderung())
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $bisio->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $student->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $bisio->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='getnotenotenschluessel')
|
||||
{
|
||||
if(!$rechte->isBerechtigt('admin', null, 's') && !$rechte->isBerechtigt('assistenz', null, 's') &&
|
||||
@@ -3676,7 +3904,7 @@ if(!$error)
|
||||
{
|
||||
if($row->anzahl>0)
|
||||
{
|
||||
$errormsg = 'Bitte zuerst alle Betreuer loeschen';
|
||||
$errormsg = 'Bitte zuerst alle BetreuerInnen loeschen';
|
||||
$return = false;
|
||||
}
|
||||
else
|
||||
@@ -3758,7 +3986,7 @@ if(!$error)
|
||||
if($projektbetreuer->load($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz']))
|
||||
{
|
||||
$error = true;
|
||||
$errormsg = 'Dieser Betreuer ist bereits zugeteilt';
|
||||
$errormsg = 'Diese/r BetreuerIn ist bereits zugeteilt';
|
||||
}
|
||||
$projektbetreuer->new = true;
|
||||
$projektbetreuer->insertamum = date('Y-m-d H:i:s');
|
||||
|
||||
@@ -73,15 +73,15 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#vorsitz_nachname" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-pruefer1" label="Pruefer1" flex="1" persist="hidden, width" hidden="true"
|
||||
<treecol id="student-abschlusspruefung-treecol-pruefer1" label="PrueferIn1" flex="1" persist="hidden, width" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefer1_nachname" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-pruefer2" label="Pruefer2" flex="1" persist="hidden, width" hidden="true"
|
||||
<treecol id="student-abschlusspruefung-treecol-pruefer2" label="PrueferIn2" flex="1" persist="hidden, width" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefer2_nachname" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-pruefer3" label="Pruefer3" flex="1" persist="hidden, width" hidden="true"
|
||||
<treecol id="student-abschlusspruefung-treecol-pruefer3" label="PrueferIn3" flex="1" persist="hidden, width" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefer3_nachname" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -210,7 +210,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Pruefer 1" id="student-abschlusspruefung-label-pruefer1" control="student-abschlusspruefung-menulist-pruefer1" />
|
||||
<label value="PrueferIn 1" id="student-abschlusspruefung-label-pruefer1" control="student-abschlusspruefung-menulist-pruefer1" />
|
||||
<menulist id="student-abschlusspruefung-menulist-pruefer1"
|
||||
editable="true" disabled="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
@@ -240,7 +240,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Pruefer 2" id="student-abschlusspruefung-label-pruefer2" control="student-abschlusspruefung-menulist-pruefer2" />
|
||||
<label value="PrueferIn 2" id="student-abschlusspruefung-label-pruefer2" control="student-abschlusspruefung-menulist-pruefer2" />
|
||||
<menulist id="student-abschlusspruefung-menulist-pruefer2"
|
||||
editable="true" disabled="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
@@ -270,7 +270,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Pruefer 3" id="student-abschlusspruefung-label-pruefer3" control="student-abschlusspruefung-menulist-pruefer3" />
|
||||
<label value="PrueferIn 3" id="student-abschlusspruefung-label-pruefer3" control="student-abschlusspruefung-menulist-pruefer3" />
|
||||
<menulist id="student-abschlusspruefung-menulist-pruefer3"
|
||||
editable="true" disabled="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
@@ -292,6 +292,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<vbox>
|
||||
<box class="Datum" id="student-abschlusspruefung-datum-datum" disabled="true"/>
|
||||
</vbox>
|
||||
<label value="Anmerkung" control="student-abschlusspruefung-textbox-anmerkung" />
|
||||
<textbox id="student-abschlusspruefung-textbox-anmerkung" multiline="true" maxlength="256" disabled="true"/>
|
||||
</row>
|
||||
<row id="student-abschlusspruefung-datum-uhrzeit-row">
|
||||
<vbox>
|
||||
@@ -300,8 +302,6 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<vbox>
|
||||
<timepicker id="student-abschlusspruefung-datum-uhrzeit" hideseconds="true" disabled="true"/>
|
||||
</vbox>
|
||||
<label value="Anmerkung" control="student-abschlusspruefung-textbox-anmerkung" />
|
||||
<textbox id="student-abschlusspruefung-textbox-anmerkung" multiline="true" maxlength="256" disabled="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<vbox>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user