Merge branch 'master' into TempusLektorFilter

This commit is contained in:
Manfred Kindl
2019-10-25 19:54:11 +02:00
264 changed files with 20419 additions and 39499 deletions
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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)
{
@@ -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
}
+3 -1
View File
@@ -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;
+5 -2
View File
@@ -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
+4 -1
View File
@@ -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
+5
View File
@@ -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
+5 -2
View File
@@ -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
+6 -1
View File
@@ -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
+92
View 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;
}
}
}
-361
View File
@@ -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;
}
}
+8
View File
@@ -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
*/
+180 -30
View File
@@ -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;
}
-466
View File
@@ -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 ? "..." : "")
);
}
}
+131
View File
@@ -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;
}
}
+2 -4
View File
@@ -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
*/
+3 -3
View File
@@ -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');
+169
View File
@@ -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;
}
}
-168
View File
@@ -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);
?>
+3
View File
@@ -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
// ------------------------------------------------------------------------------------------
+18
View File
@@ -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');
}
+40 -9
View File
@@ -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').'
+9 -7
View File
@@ -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';
+10 -9
View File
@@ -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>";
+16 -11
View File
@@ -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("'", "&apos;")+"\", \""+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>
+14 -14
View File
@@ -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.'">&nbsp;</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>
+1 -1
View File
@@ -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)
{
+55 -5
View File
@@ -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>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</td>';
@@ -286,7 +293,14 @@ require_once('../../../include/benutzerberechtigung.class.php');
echo '<td>&nbsp;</td>';
echo '<td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>';
+1 -1
View File
@@ -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();
+37 -2
View File
@@ -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);
?>
+14 -8
View File
@@ -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>';
}
+302 -142
View File
@@ -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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
//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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
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.'>&nbsp;&nbsp;&nbsp;&nbsp;'.
$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">&nbsp;</td></tr>';
echo '<tr><td colspan="4">&nbsp;</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.'">&nbsp;</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
View File
File diff suppressed because it is too large Load Diff
+135
View File
@@ -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
View File
@@ -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').' &gt;&gt;';
echo " <a href='$PHP_SELF?gebiet_id=$gebiet_id&amp;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&amp;frage_id='. $frage->frage_id.'&amp;sprache='. $_SESSION["sprache"].'"></img><br/><br/><br/>
</div>
<img class="testtoolfrage" src="bild.php?src=frage&amp;frage_id='. $frage->frage_id.'&amp;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&amp;frage_id='.$frage->frage_id.'&amp;sprache='.$_SESSION['sprache'].'&amp;'.$timestamp.'" controls="controls" type="audio/ogg">
<audio src="sound.php?src=frage&amp;frage_id='.$frage->frage_id.'&amp;sprache='.$_SESSION['sprache_user'].'&amp;'.$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&amp;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&amp;vorschlag_id=$vorschlag->vorschlag_id&amp;sprache=".$_SESSION['sprache']."' /><br/>";
echo "<img class='testtoolvorschlag' src='bild.php?src=vorschlag&amp;vorschlag_id=$vorschlag->vorschlag_id&amp;sprache=".$_SESSION['sprache_user']."' /><br/>";
if($vorschlag->audio!='')
{
echo ' <audio src="sound.php?src=vorschlag&amp;vorschlag_id='.$vorschlag->vorschlag_id.'&amp;sprache='.$_SESSION['sprache'].'" controls="controls">
echo ' <audio src="sound.php?src=vorschlag&amp;vorschlag_id='.$vorschlag->vorschlag_id.'&amp;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>
+10 -36
View File
@@ -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
View File
@@ -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 '&nbsp; '.$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
View File
@@ -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
View File
@@ -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ü:&nbsp;&nbsp;</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()]).'&nbsp;&nbsp;</option>';
echo ' <option value="'. $row->sprache. '" '.($row->sprache == $sprache_user ? 'selected' : '').'>'.($row->bezeichnung_arr[$sprache_user]).'&nbsp;&nbsp;</option>';
}
echo '
</select>
@@ -140,4 +117,3 @@ echo ' <table style="background-image: url(../../skin/images/header_testtool.png
+1
View File
@@ -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
View File
@@ -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
View File
@@ -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": [],
+5
View File
@@ -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);
+6
View File
@@ -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);
+2 -2
View File
@@ -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
View File
@@ -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');
}
}
+2 -2
View File
@@ -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>
+1 -1
View File
@@ -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"/>
+8 -8
View File
@@ -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.'&amp;lektor=true'.
' '.APP_ROOT.'rdf/mitarbeiter.rdf.php?mitarbeiter_uid='.$stundenplan->mitarbeiter_uid;?>"
+187 -187
View File
@@ -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>
+4 -4
View File
@@ -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"/>
+3 -1
View File
@@ -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&amp;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&amp;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;
}
+295 -295
View File
@@ -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>
+4 -4
View File
@@ -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"
+7 -1
View File
@@ -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
View File
@@ -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>
+2 -2
View File
@@ -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"
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -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);
+6
View File
@@ -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
*/
+2
View File
@@ -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"/>
+231 -3
View File
@@ -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