FilterWidget: fixes and improvements

This commit is contained in:
Paolo
2018-06-06 17:50:28 +02:00
30 changed files with 1700 additions and 810 deletions
@@ -129,24 +129,31 @@ class InfoCenter extends FHC_Controller
$personexists = $this->PersonModel->load($person_id);
if(isError($personexists))
if (isError($personexists))
show_error($personexists->retval);
if (empty($personexists->retval))
show_error('person does not exist!');
//mark person as locked for editing
$result = $this->PersonLockModel->lockPerson($person_id, $this->uid, self::APP);
$show_lock_link_get = $this->input->get('show_lock_link');
$show_lock_link = !isset($show_lock_link_get) || $show_lock_link_get === '1';
if(isError($result))
show_error($result->retval);
if ($show_lock_link)
{
//mark person as locked for editing
$result = $this->PersonLockModel->lockPerson($person_id, $this->uid, self::APP);
if (isError($result))
show_error($result->retval);
}
$persondata = $this->_loadPersonData($person_id);
$prestudentdata = $this->_loadPrestudentData($person_id);
$data = array_merge(
$persondata,
$prestudentdata
$prestudentdata,
array('show_lock_link' => $show_lock_link)
);
$data['fhc_controller_id'] = $this->fhc_controller_id;
@@ -162,7 +169,7 @@ class InfoCenter extends FHC_Controller
{
$result = $this->PersonLockModel->unlockPerson($person_id, self::APP);
if(isError($result))
if (isError($result))
show_error($result->retval);
redirect(self::URL_PREFIX.'?fhc_controller_id='.$this->fhc_controller_id);
@@ -245,9 +252,7 @@ class InfoCenter extends FHC_Controller
$data['data'] = $studienordnung->retval[0]->data;
}
$this->load->view('system/infocenter/studiengangZgvInfo.php',
$data
);
$this->load->view('system/infocenter/studiengangZgvInfo.php', $data);
}
/**
@@ -721,6 +726,18 @@ class InfoCenter extends FHC_Controller
);
}
/**
* Wrapper for setNavigationMenu, returns JSON message
*/
public function setNavigationMenuArrayJson()
{
$this->setNavigationMenuArray();
$this->output
->set_content_type('application/json')
->set_output(json_encode(success('success')));
}
private function _fillFilters($filters, &$tofill)
{
foreach ($filters as $filterId => $description)
+1 -1
View File
@@ -28,7 +28,7 @@ class FHC_Controller extends CI_Controller
* NOTE: The library is loaded with the alias 'p', so must me used with this alias in the rest of the code.
* EX: $this->p->t(<category>, <phrase name>)
*/
public function loadPhrases($categories, $language = null)
protected function loadPhrases($categories, $language = null)
{
$this->load->library('PhrasesLib', array($categories, $language), 'p');
}
+126 -68
View File
@@ -14,6 +14,8 @@ class PhrasesLib
{
$this->_ci =& get_instance();
$this->_phrases = null; // set the property _phrases as null by default
// CI parser
$this->_ci->load->library('parser');
@@ -78,7 +80,6 @@ class PhrasesLib
return $this->_ci->PhraseModel->update($phrase_id, $data);
}
/**
* getVorlagetextByVorlage() - will load tbl_vorlagestudiengang for a spezific Template.
*/
@@ -179,91 +180,60 @@ class PhrasesLib
}
/**
*
* Retrives a phrases from the the property _phrases with the given parameters
* It also replace parameters inside the phrase if they are provided
* @param string $category Category name which is used to categorize the phrase.
* @param string $phrase Phrase name.
* @param array $parameters Array of String var(s) to be set into phrases' placeholder values (order matters).
* @return string Phrase text
*/
public function t($category, $phrase, $parameters = array(), $orgeinheit_kurzbz = null, $orgform_kurzbz = null)
{
if (isset($this->_phrases) && is_array($this->_phrases))
// If the property _phrases is populated
if (is_array($this->_phrases))
{
// Loops through the _phrases property
for ($i = 0; $i < count($this->_phrases); $i++)
{
$_phrase = $this->_phrases[$i];
$_phrase = $this->_phrases[$i]; // single phrase
// If the single phrase match the given parameters and is not an empty string
if ($_phrase->category == $category
&& $_phrase->phrase == $phrase
&& $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
&& $_phrase->orgform_kurzbz== $orgform_kurzbz
&& (!empty($_phrase->text)))
{
if ($parameters == null)
$parameters = array();
return $this->_ci->parser->parse_string($_phrase->text, $parameters, true);
}
}
//fallback 1: if phrase not found in phrases-array, try with default language
$default_language = DEFAULT_LANGUAGE;
$categories = $this->_ci->PhraseModel->getCategories();
if (hasData($categories))
{
$categories = $categories->retval;
foreach($categories as $cat)
$all_categories[] = $cat->category;
}
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($all_categories, $default_language);
if (hasData($phrases))
{
$default_phrases = $phrases->retval;
}
if (isset($default_phrases) && is_array($default_phrases))
{
for ($i = 0; $i < count($default_phrases); $i++)
&& $_phrase->orgform_kurzbz == $orgform_kurzbz
&& (!empty(trim($_phrase->text))))
{
$_phrase = $default_phrases[$i];
// var_dump($_phrase);
// echo $phrase . "<br>";
// echo $_phrase->phrase . "<br><br>";
if (!is_array($parameters)) $parameters = array(); // if params is not an array
if ($_phrase->category == $category
&& $_phrase->phrase == $phrase
&& $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
&& $_phrase->orgform_kurzbz== $orgform_kurzbz)
{
if ($parameters == null)
$parameters = array();
return $this->_ci->parser->parse_string($_phrase->text, $parameters, true);
}
return $this->_ci->parser->parse_string($_phrase->text, $parameters, true); // parsing
}
}
//fallback 2: if phrase not found at all, return phrasename
$phrase = '<< PHRASE ' . $phrase . ' >>';
return $this->_ci->parser->parse_string($phrase, $parameters, true);
}
}
// If a valid phrase is not found
return '<< PHRASE '.$phrase.' >>';
}
// -----------------------------------------------------------------------------------------------------------------
// Private methods
/**
* Extends the functionalities of the constructor of this class
* This is a workaround to use more parameters in the construct since PHP doesn't support many constructors
* The new accepted parameters are:
* - categories: could be a string or an array of strings. These are the categories used to load phrases
* - language: optional parameter must be a string. It's used to load phrases
* @param (array) $params Array of categories and (optional) language.
* categories:
* - could be a string or an array of strings. These are the categories used to load phrases
* - could be an array of categories, and for each category there is an array of phrases
* language: optional parameter must be a string. It's used to load phrases
*/
private function _extend_construct($params)
{
// Checks if the $params is an array with at least one element
if (is_array($params) && count($params) > 0)
{
$parameters = $params[0]; // temporary variable
$parameters = $params[0]; // temporary variable
$isIndexArray = false; //flag for indexed array
// If there are parameters
if (is_array($parameters) && count($parameters) > 0)
@@ -287,15 +257,103 @@ class PhrasesLib
$language = $this->_ci->PersonModel->getLanguage(getAuthUID());
}
// Loads phrases
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($categories, $language);
// If there are phrases loaded then store them in the property _phrases
if (hasData($phrases))
{
$this->_phrases = $phrases->retval;
}
$this->_setPhrases($categories, $language);
}
}
}
/**
* Retrieves phrases in the users language.
* If a phrase is not set in the users language it will be retrieved in the default language.
* Stores phrases-array in property $_phrases.
* @param array $categories Could be an:
* - indexed array: string or an array of strings. These are the categories used to load phrases.
* - associative array: of categories, and for each category there is an array of phrases.
* @param string User's language or default language.
*/
private function _setPhrases($categories, $language)
{
$phrases = null;
// Checks if categories is associative or indexed array
if (ctype_digit(implode('', array_keys($categories))))
{
// is indexed array -> Loads phrases
$isIndexArray = true;
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($categories, $language);
}
else
{
// is assoc array -> Loads specific phrasentexte by category and phrases
$isIndexArray = false;
$phrases = $this->_ci->PhraseModel
->getPhrasesByCategoryAndPhrasesAndLanguage($categories, $language);
}
// If language is not default language and phrasentext is null -> fallback to default language
if ($language != DEFAULT_LANGUAGE)
{
// get array with phrasentexte in the default language
$defaultPhrases = null;
if ($isIndexArray)
{
$defaultPhrases = $this->_ci->PhraseModel
->getPhrasesByCategoryAndLanguage($categories, DEFAULT_LANGUAGE);
}
else
{
$defaultPhrases = $this->_ci->PhraseModel
->getPhrasesByCategoryAndPhrasesAndLanguage($categories, DEFAULT_LANGUAGE);
}
// combine array with phrasentexte in users language and in default language
// (default used if phrasentext in users language is null or not set)
if (hasData($phrases) && hasData($defaultPhrases))
{
// loop through phrases in default language
foreach ($defaultPhrases->retval as $defaultPhrase)
{
$found = false; // flag for found phrase
// loop through phrases in users language
foreach ($phrases->retval as $phrase)
{
// if same phrase and category found and text is not null
// use phrase in users language
if ($phrase->phrase == $defaultPhrase->phrase
&& $phrase->category == $defaultPhrase->category
&& !is_null($phrase->text))
{
$found = true;
break;
}
}
// otherwise use phrase in default language
if (!$found)
{
array_push($phrases->retval, $defaultPhrase);
}
}
}
elseif (hasData($defaultPhrases))
{
$phrases = $defaultPhrases;
}
}
// If there are phrases loaded then store them in the property _phrases
if (hasData($phrases))
{
$this->_phrases = $phrases->retval;
}
}
/**
* Returns the property _phrases JSON encoded
* @return json encoded property _phrases
*/
public function getJSON()
{
return json_encode($this->_phrases);
}
}
+23 -6
View File
@@ -79,13 +79,30 @@ class Phrase_model extends DB_Model
}
/**
* Loads all categories
* Loads phrases using category(s) and language as keys using associative category array
* that contains also phrases for each category
*/
public function getCategories()
public function getPhrasesByCategoryAndPhrasesAndLanguage($phrasesParams, $language)
{
$query = 'SELECT DISTINCT category
FROM system.tbl_phrase';
$query = '
SELECT p.category, p.phrase, pt.orgeinheit_kurzbz, pt.orgform_kurzbz, pt.text
FROM system.tbl_phrase p
INNER JOIN system.tbl_phrasentext pt USING(phrase_id)
WHERE pt.sprache = ? AND ';
return $this->execQuery($query);
$parametersArray = array($language);
foreach ($phrasesParams as $category => $phrases)
{
$query .= '(category = ? AND phrase IN ?) OR ';
$parametersArray[] = $category;
$parametersArray[] = $phrases;
}
$query = rtrim($query, ' OR ');
$query .= ' ORDER BY p.category, p.phrase, pt.orgeinheit_kurzbz DESC, pt.orgform_kurzbz DESC';
return $this->execQuery($query, $parametersArray);
}
}
}
@@ -5,12 +5,18 @@
'title' => 'Info Center',
'jquery' => true,
'jqueryui' => true,
'ajaxlib' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'ajaxlib' => true,
'filterwidget' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
'ui' => array('bitteEintragWaehlen')
),
'navigationwidget' => true,
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
@@ -27,12 +33,17 @@
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">Infocenter <?php echo ucfirst($this->p->t('global', 'uebersicht')); ?></h3>
<h3 class="page-header">Infocenter
<?php echo ucfirst($this->p->t('global', 'uebersicht')); ?>
</h3>
</div>
</div>
<div>
<?php
$this->load->view('system/infocenter/infocenterData.php', array('fhc_controller_id' => $fhc_controller_id));
$this->load->view(
'system/infocenter/infocenterData.php',
array('fhc_controller_id' => $fhc_controller_id)
);
?>
</div>
</div>
@@ -7,6 +7,8 @@
'bootstrap' => true,
'fontawesome' => true,
'jqueryui' => true,
'ajaxlib' => true,
'phraseslib' => true,
'tablesorter' => true,
'tinymce' => true,
'sbadmintemplate' => true,
@@ -22,8 +24,33 @@
array(
'public/js/bootstrapper.js',
'public/js/tablesort/tablesort.js',
'public/js/infocenter/infocenterDetails.js')
'public/js/infocenter/infocenterDetails.js'
),
'phrases' =>
array(
'infocenter' =>
array(
'notizHinzufuegen',
'notizAendern',
'bewerberParken',
'bewerberAusparken',
'nichtsZumAusparken',
'fehlerBeimAusparken',
'fehlerBeimParken',
'bewerberGeparktBis'
),
'ui' =>
array(
'gespeichert',
'fehlerBeimSpeichern'
),
'global' =>
array(
'bis',
'zeilen'
)
)
)
);
?>
<body>
@@ -42,14 +69,16 @@
</div>
<div class="col-lg-4">
<div class="headerright text-right">
<?php echo $this->p->t('global', 'wirdBearbeitetVon') . ':' ?>
<?php
if (isset($lockedby)):
echo $this->p->t('global', 'wirdBearbeitetVon') . ': ';
echo $lockedby;
?>
&nbsp;&nbsp;
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>"><i
class="fa fa-sign-out"></i>&nbsp;<?php echo ucfirst($this->p->t('ui', 'freigeben')) ?></a>
if (!isset($show_lock_link) || $show_lock_link === true): ?>
&nbsp;&nbsp;
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>">
<i class="fa fa-sign-out"></i>&nbsp;<?php echo ucfirst($this->p->t('ui', 'freigeben')) ?>
</a>
<?php endif; ?>
<?php endif; ?>
</div>
</div>
@@ -59,7 +88,9 @@
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center"><h4><?php echo ucfirst($this->p->t('global','stammdaten')) ?></h4></div>
<div class="panel-heading text-center">
<h4><?php echo ucfirst($this->p->t('global', 'stammdaten')) ?></h4>
</div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
<?php $this->load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
@@ -73,7 +104,9 @@
<div class="col-lg-12">
<div class="panel panel-primary">
<a name="DokPruef"></a><!-- anchor for jumping to the section -->
<div class="panel-heading text-center"><h4><?php echo ucfirst($this->p->t('infocenter','dokumentenpruefung')) ?></h4></div>
<div class="panel-heading text-center">
<h4><?php echo ucfirst($this->p->t('infocenter', 'dokumentenpruefung')) ?></h4>
</div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/dokpruefung.php'); ?>
</div> <!-- ./panel-body -->
@@ -87,7 +120,8 @@
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="ZgvPruef"></a>
<h4><?php echo $this->p->t('infocenter', 'zgv') . ' - ' . ucfirst($this->p->t('lehre','pruefung'))?></h4>
<h4><?php echo $this->p->t('infocenter', 'zgv'). ' - '.
ucfirst($this->p->t('lehre', 'pruefung'))?></h4>
</div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
@@ -102,7 +136,7 @@
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="Nachrichten"></a>
<h4 class="text-center"><?php echo ucfirst($this->p->t('global','nachrichten')) ?></h4>
<h4 class="text-center"><?php echo ucfirst($this->p->t('global', 'nachrichten')) ?></h4>
</div>
<div class="panel-body">
<div class="row">
@@ -121,7 +155,8 @@
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="NotizAkt"></a>
<h4 class="text-center"><?php echo ucfirst($this->p->t('global','notizen')) . ' & ' . ucfirst($this->p->t('global','aktivitaeten')) ?></h4>
<h4 class="text-center"><?php echo ucfirst($this->p->t('global', 'notizen')). ' & '.
ucfirst($this->p->t('global', 'aktivitaeten')) ?></h4>
</div>
<div class="panel-body">
<div class="row">
@@ -172,7 +172,7 @@
'formatRow' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
'<a href="%s/%s?fhc_controller_id=%s">Details</a>',
'<a href="%s/%s?show_lock_link=0&fhc_controller_id=%s">Details</a>',
site_url('system/infocenter/InfoCenter/showDetails'),
$datasetRaw->{'PersonId'},
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
@@ -17,13 +17,13 @@ $this->load->view(
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">Zugangsvoraussetzungen <?php echo $studiengang_kurzbz; ?> - <?php echo $studiengang_bezeichnung; ?></h3>
<h3 class="page-header"><?php echo $this->p->t('infocenter', 'zugangsvoraussetzungen'); ?> <?php echo $studiengang_kurzbz; ?> - <?php echo $studiengang_bezeichnung; ?></h3>
</div>
</div>
<div id="data">
<?php if (empty($data)): ?>
Keine Zugangsvoraussetzungen für den Studiengang definiert
<?php
<?php echo $this->p->t('infocenter', 'keineZugangsvoraussetzungenTxt'); ?>
<?php
else:
echo json_decode($data);
endif;
@@ -201,7 +201,7 @@
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group"><label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('person','nation') . ':'?></label>
<div class="form-group"><label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('person', 'nation') . ':'?></label>
<?php
if ($infoonly)
echo $zgvpruefung->zgvmanation_bez;
@@ -220,7 +220,7 @@
<div class="row">
<div class="col-xs-6 text-left">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
</button>
</div>
<div class="col-xs-6 text-right">
@@ -249,7 +249,7 @@
class="d-inline float-right"
required>
<option value="null"
selected="selected"><?php echo $this->p->t('infocenter', 'absagegrund', array($this->p->t('global', 'waehlen'))) . '...' ?>
selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?>
</option>
<?php foreach ($statusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
@@ -323,7 +323,7 @@
data-toggle="modal"
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>"
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
</button>
</div>
</div>
@@ -340,10 +340,10 @@
</button>
<h4 class="modal-title"
id="freigabeModalLabel">
<?php echo $this->p->t('global', 'freigabeBestaetigen') ?></h4>
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
@@ -353,7 +353,7 @@
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>">
<button type="button"
class="btn btn-primary">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
</a>
</div>
+31 -3
View File
@@ -11,6 +11,7 @@ $calledMethod = $this->router->method;
$title = isset($title) ? $title : null;
$customCSSs = isset($customCSSs) ? $customCSSs : null;
$customJSs = isset($customJSs) ? $customJSs : null;
$phrases = isset($phrases) ? $phrases : null;
// By default set the parameters to false
$jquery = isset($jquery) ? $jquery : false;
@@ -84,6 +85,25 @@ function _generateJSDataStorageObject($calledPath, $calledMethod)
echo $toPrint;
}
/**
* Generates global JS-Object to pass phrases to other javascripts
*/
function _generateJSPhrasesStorageObject($phrases)
{
$ci =& get_instance();
$ci->load->library('PhrasesLib', array($phrases), 'pj');
$toPrint = "\n";
$toPrint .= '<script type="text/javascript">';
$toPrint .= "\n";
$toPrint .= 'var FHC_JS_PHRASES_STORAGE_OBJECT = '.$ci->pj->getJSON();
$toPrint .= "\n";
$toPrint .= '</script>';
$toPrint .= "\n\n";
echo $toPrint;
}
/**
* Generates tags for the javascripts you want to include, the parameter could by a string or an array of strings
*/
@@ -184,6 +204,10 @@ function _generateAddonsJSsInclude($calledFrom)
// NOTE: must be called before any other JS include
_generateJSDataStorageObject($calledPath, $calledMethod);
// Generates the global object to pass phrases to javascripts
// NOTE: must be called before including the PhrasesLib.js
_generateJSPhrasesStorageObject($phrases);
// JQuery V3
if ($jquery === true) _generateJSsInclude('vendor/components/jquery/jquery.min.js');
@@ -194,9 +218,6 @@ function _generateAddonsJSsInclude($calledFrom)
_generateJSsInclude('vendor/components/jqueryui/ui/i18n/datepicker-de.js'); // datepicker german language file
}
// AjaxLib JS
if ($ajaxlib === true) _generateJSsInclude('public/js/AjaxLib.js');
// Bootstrap JS
if ($bootstrap === true) _generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
@@ -218,6 +239,13 @@ function _generateAddonsJSsInclude($calledFrom)
_generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js');
}
// AjaxLib JS
// NOTE: must be called before including others JS libraries that use it
if ($ajaxlib === true) _generateJSsInclude('public/js/AjaxLib.js');
// PhrasesLib JS
if ($phrases != null) _generateJSsInclude('public/js/PhrasesLib.js');
// FilterWidget JS
if($filterwidget === true) _generateJSsInclude('public/js/FilterWidget.js') ;
@@ -1,10 +1,12 @@
<div class="row">
<div class="col-lg-12">
<!-- Filter name -->
<div class="filter-name-title"></div>
<br>
<!-- Filter options -->
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
@@ -14,18 +16,21 @@
</div>
<div id="collapseFilterHeader" class="panel-collapse collapse">
<div class="filters-hidden-panel">
<!-- Filter fields options -->
<div>
<?php FilterWidget::loadViewSelectFields(); ?>
</div>
<br>
<!-- Filter filters options -->
<div>
<?php FilterWidget::loadViewSelectFilters(); ?>
</div>
<br>
<!-- Filter save options -->
<div>
<?php FilterWidget::loadViewSaveFilter(); ?>
</div>
@@ -36,12 +41,15 @@
<br>
<!-- Filter info top -->
<div id="datasetActionsTop"></div>
<!-- Filter table -->
<div>
<?php FilterWidget::loadViewTableDataset(); ?>
</div>
<!-- Filter info bottom -->
<div id="datasetActionsBottom"></div>
</div>
@@ -2,14 +2,14 @@
<div>
<span class="filter-span-label">
Filter description:
<?php echo ucfirst($this->p->t('global', 'beschreibung')); ?>:
</span>
<span>
<input type="text" id="customFilterDescription" class="input-text-custom-filter" value="">
</span>
<span>
<input type="button" id="saveCustomFilterButton" value="Save filter">
<input type="button" id="saveCustomFilterButton" value="<?php echo ucfirst($this->p->t('ui', 'speichern')); ?>">
</span>
</div>
@@ -2,7 +2,7 @@
<div>
<span class="filter-span-label">
Add field:
<?php echo ucfirst($this->p->t('filter', 'feldHinzufuegen')); ?>:
</span>
<span>
@@ -4,7 +4,7 @@
<div>
<span class="filter-span-label">
Add filter:
<?php echo ucfirst($this->p->t('filter', 'filterHinzufuegen')); ?>:
</span>
<span>
@@ -12,6 +12,6 @@
</span>
<span>
<input id="applyFilter" type="button" value="Apply filter">
<input id="applyFilter" type="button" value="<?php echo ucfirst($this->p->t('global', 'hinzufuegen')); ?>">
</span>
</div>
+5 -1
View File
@@ -738,7 +738,11 @@ if($projekt->getProjekteMitarbeiter($user, true))
<td class='menubox' height='10px'>";
if ($p->t("dms_link/handbuchZeitaufzeichnung")!='')
{
echo '<p><a href="../../../cms/dms.php?id='.$p->t("dms_link/handbuchZeitaufzeichnung").'" target="_blank">'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'</a></p>';
// An der FHTW wird ins Moodle verlinkt
if (CAMPUS_NAME == 'FH Technikum Wien')
echo '<p><a href="https://moodle.technikum-wien.at/course/view.php?id=6251" target="_blank">'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'</a></p>';
else
echo '<p><a href="../../../cms/dms.php?id='.$p->t("dms_link/handbuchZeitaufzeichnung").'" target="_blank">'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'</a></p>';
}
if ($p->t("dms_link/fiktiveNormalarbeitszeit")!='')
{
-6
View File
@@ -680,12 +680,6 @@ foreach($addon_obj->result as $addon)
label = "&menu-dokumente-bescheid_deutsch.label;"
command = "menu-dokumente-bescheid_deutsch:command"
accesskey = "&menu-dokumente-bescheid_deutsch.accesskey;"/>
<menuitem
id = "menu-dokumente-bescheid_englisch"
key = "menu-dokumente-bescheid_englisch:key"
label = "&menu-dokumente-bescheid_englisch.label;"
command = "menu-dokumente-bescheid_englisch:command"
accesskey = "&menu-dokumente-bescheid_englisch.accesskey;"/>
<menuitem
id = "menu-dokumente-diplsupplement"
key = "menu-dokumente-diplsupplement:key"
+480 -351
View File
@@ -45,6 +45,8 @@ require_once('../include/studiengang.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/studienordnung.class.php');
require_once('../include/dokument_export.class.php');
require_once('../include/dokument.class.php');
require_once('../include/pdf.class.php');
$user = get_uid();
$db = new basis_db();
@@ -52,414 +54,541 @@ $db = new basis_db();
$variable_obj = new variable();
$variable_obj->loadVariables($user);
//Parameter holen
if (isset($_GET['xml']))
$xml = $_GET['xml'];
else
die('Fehlerhafte Parameteruebergabe');
if (isset($_GET['xsl']))
$xsl = $_GET['xsl'];
else
die('Fehlerhafte Parameteruebergabe');
$archivdokument = '';
if(isset($_GET['sign']))
$sign = true;
else
$sign = false;
// Studiengang ermitteln dessen Vorlage verwendet werden soll
$xsl_stg_kz = 0;
// Direkte uebergabe des Studienganges dessen Vorlage verwendet werden soll
if (isset($_GET['xsl_stg_kz']))
$xsl_stg_kz = $_GET['xsl_stg_kz'];
else
// Wenn der Parameter archivdokument übergeben wird, werden ein oder mehrere Dokumente aus dem Archiv zu einem PDF zusammengefügt und ausgegeben
// Ansonsten wird ein neues XML-Dokument erstellt
if (isset($_GET['archivdokument']))
{
// Wenn eine Studiengangskennzahl uebergeben wird, wird die Vorlage dieses Studiengangs verwendet
if (isset($_GET['stg_kz']))
$xsl_stg_kz = $_GET['stg_kz'];
else
{
// Werden UIDs oder Prestudent_IDs uebergeben, wird die Vorlage des Studiengangs genommen
// in dem der 1. Studierende in der Liste ist
if (isset($_GET['uid']) && $_GET['uid']!='')
{
if (strstr($_GET['uid'],';'))
$uids = explode(';',$_GET['uid']);
else
$uids[1] = $_GET['uid'];
$archivdokument = $_GET['archivdokument'];
$allDocs = array();
$errorText = '';
$dokument = new dokument();
$dokument->loadDokumenttyp($archivdokument);
$pdf = new pdf();
// Temporaeren Ordner fuer die Erstellung der Dokumente generieren
$tmpDir = sys_get_temp_dir() . "/fhc_archivexport_" . uniqid();
if (!file_exists($tmpDir))
mkdir($tmpDir, 0777, true);
$student_obj = new student();
if ($student_obj->load($uids[1]))
// Studierende für Rechteabfrage laden
if (isset($_GET['uid']) && $_GET['uid'] != '')
{
if (strstr($_GET['uid'],';'))
{
$uids = explode(';',$_GET['uid']);
}
else
$uids[1] = $_GET['uid'];
$student_obj = new student();
if ($student_obj->load($uids[1]))
{
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if (!$rechte->isBerechtigt('admin', $student_obj->studiengang_kz, 'suid')
&& !$rechte->isBerechtigt('assistenz', $student_obj->studiengang_kz, 'suid'))
die('Sie haben keine Berechtigung für diese Studierenden');
else
{
$xsl_stg_kz = $student_obj->studiengang_kz;
// Die jeweils letzte (aktuellste) Akte dieses Typs von jedem Studierenden laden und in eine temporäre Datei schreiben
foreach ($uids AS $value)
{
// Leere Einträge überspringen
if ($value == '')
continue;
$student_obj = new student($value);
$person_id = $student_obj->person_id;
$akte = new akte();
$akte->getAkten($person_id, $archivdokument, null, null, true, 'erstelltam DESC');
if (isset($akte->result[0]))
{
$filename = '';
if($akte->result[0]->inhalt != '')
{
$filename = $tmpDir . "/" . uniqid();
$fileData = base64_decode($akte->result[0]->inhalt);
file_put_contents($filename, $fileData);
$allDocs[] = $filename;
}
else
$errorText .= "Das Dokument ".$dokument->bezeichnung." bei ".$student_obj->nachname." ".$student_obj->vorname." (".$value.") ist leer\n";
}
else
$errorText .= $student_obj->nachname." ".$student_obj->vorname." (".$value.") hat kein Dokument '".$dokument->bezeichnung."' im Archiv\n";
}
if (count($allDocs) == 0)
{
rmdir($tmpDir);
die('Bei keinem der gewählten Studierenden ist einen Bescheid vorhanden');
}
// Textseite mit Errormessages generieren und in PDF umwandeln
if ($errorText != '')
{
$errorfile = $tmpDir . "/" . uniqid() . ".txt";
file_put_contents($errorfile, $errorText);
$newnameErrorfile = $tmpDir . "/" . uniqid();
$docExport = new dokument_export();
$docExport->convert($errorfile, $newnameErrorfile, "pdf");
unlink($errorfile);
// Konvertiertes File an erste Position im Array hängen
array_unshift($allDocs, $newnameErrorfile);
}
$finishedPdf = $tmpDir . "/".$archivdokument."_Album.pdf";
$pdf->merge($allDocs, $finishedPdf);
foreach ($allDocs as $doc)
unlink($doc);
$fsize = filesize($finishedPdf);
if(!$handle = fopen($finishedPdf,'r'))
die('load failed');
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="'.$archivdokument.'_Album.pdf"');
header('Content-Length: '.$fsize);
while (!feof($handle))
{
echo fread($handle, 8192);
}
fclose($handle);
unlink($finishedPdf);
rmdir($tmpDir);
}
}
elseif (isset($_GET['prestudent_id']) && $_GET['prestudent_id']!='')
else
die('Der/Die Studierenden konnte nicht geladen werden');
}
}
else
{
//Parameter holen
if (isset($_GET['xml']))
$xml = $_GET['xml'];
else
die('Fehlerhafte Parameteruebergabe');
if (isset($_GET['xsl']))
$xsl = $_GET['xsl'];
else
die('Fehlerhafte Parameteruebergabe');
if(isset($_GET['sign']))
$sign = true;
else
$sign = false;
// Studiengang ermitteln dessen Vorlage verwendet werden soll
$xsl_stg_kz = 0;
// Direkte uebergabe des Studienganges dessen Vorlage verwendet werden soll
if (isset($_GET['xsl_stg_kz']))
$xsl_stg_kz = $_GET['xsl_stg_kz'];
else
{
// Wenn eine Studiengangskennzahl uebergeben wird, wird die Vorlage dieses Studiengangs verwendet
if (isset($_GET['stg_kz']))
$xsl_stg_kz = $_GET['stg_kz'];
else
{
if (strstr($_GET['prestudent_id'],';'))
$prestudent_ids = explode(';',$_GET['prestudent_id']);
else
$prestudent_ids[1] = $_GET['prestudent_id'];
$prestudent_obj = new prestudent();
if ($prestudent_obj->load($prestudent_ids[1]))
// Werden UIDs oder Prestudent_IDs uebergeben, wird die Vorlage des Studiengangs genommen
// in dem der 1. Studierende in der Liste ist
if (isset($_GET['uid']) && $_GET['uid']!='')
{
$xsl_stg_kz = $prestudent_obj->studiengang_kz;
if (strstr($_GET['uid'],';'))
$uids = explode(';',$_GET['uid']);
else
$uids[1] = $_GET['uid'];
$student_obj = new student();
if ($student_obj->load($uids[1]))
{
$xsl_stg_kz = $student_obj->studiengang_kz;
}
}
elseif (isset($_GET['prestudent_id']) && $_GET['prestudent_id']!='')
{
if (strstr($_GET['prestudent_id'],';'))
$prestudent_ids = explode(';',$_GET['prestudent_id']);
else
$prestudent_ids[1] = $_GET['prestudent_id'];
$prestudent_obj = new prestudent();
if ($prestudent_obj->load($prestudent_ids[1]))
{
$xsl_stg_kz = $prestudent_obj->studiengang_kz;
}
}
}
}
}
if (isset($_GET['xsl_oe_kurzbz']))
$xsl_oe_kurzbz = $_GET['xsl_oe_kurzbz'];
else
$xsl_oe_kurzbz = '';
//Parameter setzen
$params = 'xmlformat=xml';
// GET Parameter die an XML durchgereicht werden
foreach ($_GET as $getkey=>$getvalue)
{
if (in_array($getkey,
array('uid', 'stg_kz', 'person_id', 'id', 'prestudent_id', 'buchungsnummern', 'ss', 'abschlusspruefung_id',
'typ', 'all', 'preoutgoing_id', 'lvid', 'projekt_kurzbz', 'von', 'bis', 'stundevon', 'stundebis',
'sem', 'lehreinheit', 'mitarbeiter_uid', 'studienordnung_id', 'fixangestellt', 'standort',
'abrechnungsmonat', 'form')
if (isset($_GET['xsl_oe_kurzbz']))
$xsl_oe_kurzbz = $_GET['xsl_oe_kurzbz'];
else
$xsl_oe_kurzbz = '';
//Parameter setzen
$params = 'xmlformat=xml';
// GET Parameter die an XML durchgereicht werden
foreach ($_GET as $getkey=>$getvalue)
{
if (in_array($getkey,
array('uid', 'stg_kz', 'person_id', 'id', 'prestudent_id', 'buchungsnummern', 'ss', 'abschlusspruefung_id',
'typ', 'all', 'preoutgoing_id', 'lvid', 'projekt_kurzbz', 'von', 'bis', 'stundevon', 'stundebis',
'sem', 'lehreinheit', 'mitarbeiter_uid', 'studienordnung_id', 'fixangestellt', 'standort',
'abrechnungsmonat', 'form')
)
)
)
{
$params .= '&'.$getkey.'='.urlencode($getvalue);
{
$params .= '&'.$getkey.'='.urlencode($getvalue);
}
}
}
if (isset($_GET['vertrag_id']))
{
foreach($_GET['vertrag_id'] as $id)
if (isset($_GET['vertrag_id']))
{
$params .= '&vertrag_id[]='.urlencode($id);
}
}
if (isset($_GET['version']) && is_numeric($_GET['version']))
$version = $_GET['version'];
else
$version = null;
$output = (isset($_GET['output'])?$_GET['output']:'odt');
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
//OE fuer Output ermitteln
if ($xsl_oe_kurzbz != '')
{
$oe_kurzbz = $xsl_oe_kurzbz;
}
else
{
if ($xsl_stg_kz == '')
$xsl_stg_kz = '0';
$oe = new studiengang();
$oe->load($xsl_stg_kz);
$oe_kurzbz = $oe->oe_kurzbz;
}
//Darf der User Dokumente in einem NICHT-PDF-Format exportieren?
if (isset($_GET['output']) && $_GET['output'] != 'pdf')
{
if (!$rechte->isBerechtigt('system/change_outputformat',$oe_kurzbz))
{
$output = 'pdf';
foreach($_GET['vertrag_id'] as $id)
{
$params .= '&vertrag_id[]='.urlencode($id);
}
}
if (isset($_GET['version']) && is_numeric($_GET['version']))
$version = $_GET['version'];
else
$output = $_GET['output'];
}
else
$output = 'pdf';
$vorlage = new vorlage();
if(!$vorlage->loadVorlage($xsl))
die('Vorlage wurde nicht gefunden');
//Berechtigung pruefen
if ($xsl == 'AccountInfo')
{
$isberechtigt = false;
$uids = explode(';',$_GET['uid']);
foreach ($uids as $uid)
{
//Berechtigung fuer das Drucken des Accountinfoblattes pruefen
$ma = new mitarbeiter();
if($ma->load($uid))
{
//Mitarbeiterrechte erforderlich
if ($rechte->isBerechtigt('admin', 0, 'suid') || $rechte->isBerechtigt('mitarbeiter', 0, 'suid'))
{
$isberechtigt = true;
}
}
$stud = new student();
if ($stud->load($uid))
{
//Rechte pruefen
if ($rechte->isBerechtigt('admin', $stud->studiengang_kz, 'suid') ||
$rechte->isBerechtigt('admin', 0, 'suid') ||
$rechte->isBerechtigt('assistenz', $stud->studiengang_kz, 'suid') ||
$rechte->isBerechtigt('assistenz', 0, 'suid') ||
$rechte->isBerechtigt('support', 0, 'suid'))
{
$isberechtigt=true;
}
}
}
if (!$isberechtigt)
{
echo 'Sie haben keine Berechtigung um dieses AccountInfoBlatt zu drucken';
exit;
}
}
else
{
$vorlagestudiengang = new vorlage();
$version = null;
$output = (isset($_GET['output'])?$_GET['output']:'odt');
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
//OE fuer Output ermitteln
if ($xsl_oe_kurzbz != '')
{
$vorlagestudiengang->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version);
$oe_kurzbz = $xsl_oe_kurzbz;
}
else
{
if ($xsl_stg_kz == '')
$xsl_stg_kz = '0';
$vorlagestudiengang->getAktuelleVorlage($xsl_stg_kz, $xsl, $version);
$oe = new studiengang();
$oe->load($xsl_stg_kz);
$oe_kurzbz = $oe->oe_kurzbz;
}
// Wenn Berechtigung direkt beim der Vorlage angegeben ist
if (count($vorlagestudiengang->berechtigung)>0)
//Darf der User Dokumente in einem NICHT-PDF-Format exportieren?
if (isset($_GET['output']) && $_GET['output'] != 'pdf')
{
$allowed = false;
foreach($vorlagestudiengang->berechtigung as $berechtigung_kurzbz)
if (!$rechte->isBerechtigt('system/change_outputformat',$oe_kurzbz))
{
if ($rechte->isBerechtigt($berechtigung_kurzbz))
$allowed = true;
$output = 'pdf';
}
if (!$allowed)
else
$output = $_GET['output'];
}
else
$output = 'pdf';
$vorlage = new vorlage();
if(!$vorlage->loadVorlage($xsl))
die('Vorlage wurde nicht gefunden');
//Berechtigung pruefen
if ($xsl == 'AccountInfo')
{
$isberechtigt = false;
$uids = explode(';',$_GET['uid']);
foreach ($uids as $uid)
{
echo 'unbekanntes Dokument oder keine Berechtigung';
//Berechtigung fuer das Drucken des Accountinfoblattes pruefen
$ma = new mitarbeiter();
if($ma->load($uid))
{
//Mitarbeiterrechte erforderlich
if ($rechte->isBerechtigt('admin', 0, 'suid') || $rechte->isBerechtigt('mitarbeiter', 0, 'suid'))
{
$isberechtigt = true;
}
}
$stud = new student();
if ($stud->load($uid))
{
//Rechte pruefen
if ($rechte->isBerechtigt('admin', $stud->studiengang_kz, 'suid') ||
$rechte->isBerechtigt('admin', 0, 'suid') ||
$rechte->isBerechtigt('assistenz', $stud->studiengang_kz, 'suid') ||
$rechte->isBerechtigt('assistenz', 0, 'suid') ||
$rechte->isBerechtigt('support', 0, 'suid'))
{
$isberechtigt=true;
}
}
}
if (!$isberechtigt)
{
echo 'Sie haben keine Berechtigung um dieses AccountInfoBlatt zu drucken';
exit;
}
}
else
{
echo 'unbekanntes Dokument oder keine Berechtigung';
exit;
}
}
//wenn uid gefunden wird, dann den Nachnamen zum Dateinamen dazuhaengen
$nachname = '';
if (isset($_GET['uid']) && $_GET['uid']!='')
{
$uid = str_replace(';','',$_GET['uid']);
$benutzer_obj = new benutzer();
if ($benutzer_obj->load($uid))
$nachname = '_'.convertProblemChars($benutzer_obj->nachname);
}
$filename = $xsl.$nachname;
if ($xsl_oe_kurzbz == '')
{
if ($xsl_stg_kz == '')
$xsl_stg_kz = '0';
$stg_obj = new studiengang();
if (!$stg_obj->load($xsl_stg_kz))
die($stg_obj->errormsg);
$xsl_oe_kurzbz = $stg_obj->oe_kurzbz;
}
if($sign === true && $vorlage->signierbar === false)
{
die('Diese Vorlage darf nicht signiert werden');
}
if (!isset($_REQUEST["archive"]))
{
if (mb_strstr($vorlage->mimetype, 'application/vnd.oasis.opendocument'))
{
$dokument = new dokument_export($xsl, $xsl_oe_kurzbz, $version);
$dokument->addDataURL($xml, $params);
/**
* Get Filename
* TODO cleanup
*/
if ($vorlage->bezeichnung!='')
$filename = $vorlage->bezeichnung.$nachname;
else
$filename = $vorlage->vorlage_kurzbz.$nachname;
switch($xsl)
$vorlagestudiengang = new vorlage();
if ($xsl_oe_kurzbz != '')
{
case 'LV_Informationen':
$studiengang = new studiengang($_GET['stg_kz']);
$studiensemester = new studiensemester($_GET['ss']);
$filename = $filename.'_'.$studiengang->kurzbzlang.'_'.$studiensemester->studiensemester_kurzbz;
break;
case 'Honorarvertrag':
$filename = $filename.'_'.$benutzer_obj->nachname.'_'.$benutzer_obj->vorname;
break;
case 'Studienordnung':
$studienordnung = new studienordnung();
$studienordnung->loadStudienordnung($_GET['studienordnung_id']);
$filename = 'Studienordnung-Studienplan-'. sprintf("%'.04d",$studienordnung->studiengang_kz).'-'.$studienordnung->studiengangkurzbzlang;
break;
$vorlagestudiengang->getAktuelleVorlage($xsl_oe_kurzbz, $xsl, $version);
}
$dokument->setFilename($filename);
if ($sign === true)
{
$dokument->sign($user);
}
if ($dokument->create($output))
$dokument->output();
else
echo $dokument->errormsg;
$dokument->close();
}
}
else
{
if(!$vorlage->archivierbar)
die('Dieses Dokument ist nicht archivierbar');
// Archivieren von Dokumenten
$uid = $_REQUEST["uid"];
$heute = date('Y-m-d');
$student = new student();
$student->load($uid);
if (isset($_REQUEST['ss']))
{
$ss = $_REQUEST["ss"];
$prestudent = new prestudent();
$prestudent->getLastStatus($student->prestudent_id,$ss);
$semester = $prestudent->ausbildungssemester;
$query = "SELECT
tbl_studiengang.studiengang_kz, tbl_studentlehrverband.semester, tbl_studiengang.typ,
tbl_studiengang.kurzbz, tbl_person.person_id FROM tbl_person, tbl_benutzer,
tbl_studentlehrverband, tbl_studiengang
WHERE
tbl_studentlehrverband.student_uid = tbl_benutzer.uid
AND tbl_benutzer.person_id = tbl_person.person_id
AND tbl_studentlehrverband.studiengang_kz = tbl_studiengang.studiengang_kz
AND tbl_studentlehrverband.student_uid = ".$db->db_add_param($uid)."
AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($ss);
if ($result = $db->db_query($query))
{
if ($row = $db->db_fetch_object($result))
if ($xsl_stg_kz == '')
$xsl_stg_kz = '0';
$vorlagestudiengang->getAktuelleVorlage($xsl_stg_kz, $xsl, $version);
}
// Wenn Berechtigung direkt beim der Vorlage angegeben ist
if (count($vorlagestudiengang->berechtigung)>0)
{
$allowed = false;
foreach($vorlagestudiengang->berechtigung as $berechtigung_kurzbz)
{
$person_id = $row->person_id;
$titel = $xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester;
$bezeichnung = $xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester";
$studiengang_kz = $row->studiengang_kz;
if ($rechte->isBerechtigt($berechtigung_kurzbz))
$allowed = true;
}
if (!$allowed)
{
echo 'unbekanntes Dokument oder keine Berechtigung';
exit;
}
}
else
{
echo 'unbekanntes Dokument oder keine Berechtigung';
exit;
}
}
//wenn uid gefunden wird, dann den Nachnamen zum Dateinamen dazuhaengen
$nachname = '';
if (isset($_GET['uid']) && $_GET['uid']!='')
{
$uid = str_replace(';','',$_GET['uid']);
$benutzer_obj = new benutzer();
if ($benutzer_obj->load($uid))
$nachname = '_'.convertProblemChars($benutzer_obj->nachname);
}
$filename = $xsl.$nachname;
if ($xsl_oe_kurzbz == '')
{
if ($xsl_stg_kz == '')
$xsl_stg_kz = '0';
$stg_obj = new studiengang();
if (!$stg_obj->load($xsl_stg_kz))
die($stg_obj->errormsg);
$xsl_oe_kurzbz = $stg_obj->oe_kurzbz;
}
if($sign === true && $vorlage->signierbar === false)
{
die('Diese Vorlage darf nicht signiert werden');
}
if (!isset($_REQUEST["archive"]))
{
if (mb_strstr($vorlage->mimetype, 'application/vnd.oasis.opendocument'))
{
$dokument = new dokument_export($xsl, $xsl_oe_kurzbz, $version);
$dokument->addDataURL($xml, $params);
/**
* Get Filename
* TODO cleanup
*/
if ($vorlage->bezeichnung!='')
$filename = $vorlage->bezeichnung.$nachname;
else
$filename = $vorlage->vorlage_kurzbz.$nachname;
switch($xsl)
{
die('Student hat keinen Status in diesem Semester');
case 'LV_Informationen':
$studiengang = new studiengang($_GET['stg_kz']);
$studiensemester = new studiensemester($_GET['ss']);
$filename = $filename.'_'.$studiengang->kurzbzlang.'_'.$studiensemester->studiensemester_kurzbz;
break;
case 'Honorarvertrag':
$filename = $filename.'_'.$benutzer_obj->nachname.'_'.$benutzer_obj->vorname;
break;
case 'Studienordnung':
$studienordnung = new studienordnung();
$studienordnung->loadStudienordnung($_GET['studienordnung_id']);
$filename = 'Studienordnung-Studienplan-'. sprintf("%'.04d",$studienordnung->studiengang_kz).'-'.$studienordnung->studiengangkurzbzlang;
break;
}
$dokument->setFilename($filename);
if ($sign === true)
{
$dokument->sign($user);
}
if ($dokument->create($output))
$dokument->output();
else
echo $dokument->errormsg;
$dokument->close();
}
}
else
{
$studiengang = new studiengang();
$studiengang->load($student->studiengang_kz);
$studiengang_kz=$student->studiengang_kz;
$person_id = $student->person_id;
$titel = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
$bezeichnung = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
}
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid')
|| $rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid'))
{
$dokument = new dokument_export($xsl, $xsl_oe_kurzbz, $version);
$dokument->addDataURL($xml, $params);
$dokument->setFilename($filename);
$error = false;
// Beim Archivieren wird das Dokument immer signiert wenn moeglich
if($vorlage->signierbar)
$sign = true;
if ($sign === true)
if(!$vorlage->archivierbar)
die('Dieses Dokument ist nicht archivierbar');
// Archivieren von Dokumenten
$uid = $_REQUEST["uid"];
$heute = date('Y-m-d');
$student = new student();
$student->load($uid);
if (isset($_REQUEST['ss']))
{
$dokument->sign($user);
$ss = $_REQUEST["ss"];
$prestudent = new prestudent();
$prestudent->getLastStatus($student->prestudent_id,$ss);
$semester = $prestudent->ausbildungssemester;
$query = "SELECT
tbl_studiengang.studiengang_kz, tbl_studentlehrverband.semester, tbl_studiengang.typ,
tbl_studiengang.kurzbz, tbl_person.person_id FROM tbl_person, tbl_benutzer,
tbl_studentlehrverband, tbl_studiengang
WHERE
tbl_studentlehrverband.student_uid = tbl_benutzer.uid
AND tbl_benutzer.person_id = tbl_person.person_id
AND tbl_studentlehrverband.studiengang_kz = tbl_studiengang.studiengang_kz
AND tbl_studentlehrverband.student_uid = ".$db->db_add_param($uid)."
AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($ss);
if ($result = $db->db_query($query))
{
if ($row = $db->db_fetch_object($result))
{
$person_id = $row->person_id;
$titel = $xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester;
$bezeichnung = $xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester";
$studiengang_kz = $row->studiengang_kz;
}
else
{
die('Student hat keinen Status in diesem Semester');
}
}
}
if ($dokument->create($output))
$doc = $dokument->output(false);
else
{
$errormsg = $dokument->errormsg;
$error = true;
$studiengang = new studiengang();
$studiengang->load($student->studiengang_kz);
$studiengang_kz=$student->studiengang_kz;
$person_id = $student->person_id;
$titel = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
$bezeichnung = $vorlage->bezeichnung.'_'.$studiengang->kuerzel;
}
$dokument->close();
if(!$error)
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid')
|| $rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid'))
{
$hex = base64_encode($doc);
$akte = new akte();
$akte->person_id = $person_id;
if($vorlage->dokument_kurzbz!='')
$akte->dokument_kurzbz = $vorlage->dokument_kurzbz;
else
$akte->dokument_kurzbz = 'Zeugnis';
$akte->inhalt = $hex;
$akte->mimetype = 'application/pdf';
$akte->erstelltam = $heute;
$akte->gedruckt = true;
$akte->titel = $titel.'.pdf';
$akte->bezeichnung = $bezeichnung;
$akte->updateamum = '';
$akte->updatevon = '';
$akte->insertamum = date('Y-m-d H:i:s');
$akte->insertvon = $user;
$akte->ext_id = '';
$akte->uid = $uid;
$akte->new = true;
$akte->archiv = true;
$akte->signiert = $sign;
$akte->stud_selfservice = $vorlage->stud_selfservice;
if (!$akte->save())
$dokument = new dokument_export($xsl, $xsl_oe_kurzbz, $version);
$dokument->addDataURL($xml, $params);
$dokument->setFilename($filename);
$error = false;
// Beim Archivieren wird das Dokument immer signiert wenn moeglich
if($vorlage->signierbar)
$sign = true;
if ($sign === true)
{
echo 'Erstellen Fehlgeschlagen: '.$akte->errormsg;
$dokument->sign($user);
}
if ($dokument->create($output))
$doc = $dokument->output(false);
else
{
$errormsg = $dokument->errormsg;
$error = true;
}
$dokument->close();
if(!$error)
{
$hex = base64_encode($doc);
$akte = new akte();
$akte->person_id = $person_id;
if($vorlage->dokument_kurzbz!='')
$akte->dokument_kurzbz = $vorlage->dokument_kurzbz;
else
$akte->dokument_kurzbz = 'Zeugnis';
$akte->inhalt = $hex;
$akte->mimetype = 'application/pdf';
$akte->erstelltam = $heute;
$akte->gedruckt = true;
$akte->titel = $titel.'.pdf';
$akte->bezeichnung = $bezeichnung;
$akte->updateamum = '';
$akte->updatevon = '';
$akte->insertamum = date('Y-m-d H:i:s');
$akte->insertvon = $user;
$akte->ext_id = '';
$akte->uid = $uid;
$akte->new = true;
$akte->archiv = true;
$akte->signiert = $sign;
$akte->stud_selfservice = $vorlage->stud_selfservice;
if (!$akte->save())
{
echo 'Erstellen Fehlgeschlagen: '.$akte->errormsg;
return false;
}
else
{
return true;
}
}
else
{
echo $errormsg;
return false;
}
else
{
return true;
}
}
else
{
echo $errormsg;
return false;
}
echo 'Keine Berechtigung zum Speichern';
}
else
echo 'Keine Berechtigung zum Speichern';
}
?>
+5
View File
@@ -75,6 +75,11 @@ else
<menuitem label="Student aus dieser Gruppe entfernen" oncommand="StudentGruppeDel();" id="student-tree-popup-gruppedel" hidden="false"/>
<menuitem label="EMail senden (intern)" oncommand="StudentSendMail(event);" id="student-tree-popup-mail" hidden="false" tooltiptext="STRG-Taste fuer BCC" />
<menuitem label="EMail senden (privat)" oncommand="StudentSendMailPrivat();" id="student-tree-popup-mailprivat" hidden="false"/>
<menu id="student-tree-popup-export-archiv" label="Archivdokument exportieren">
<menupopup id="student-tree-popup-export-popup">
<menuitem label="Bescheid" oncommand="StudentExportBescheid();" id="student-tree-popup-export-bescheid" hidden="false"/>
</menupopup>
</menu>
<menuseparator />
<menuitem label="Personendetails anzeigen" oncommand="StudentShowPersonendetails();" id="student-tree-popup-personendetails" hidden="false"/>
<!--
+37
View File
@@ -5575,3 +5575,40 @@ function StudentLVGesamtNotenTreeSort()
// da sonst nach dem sortieren falsche Eintraege markiert sind
window.setTimeout(StudentNotenTreeSelectDifferent,20);
}
//****
//* Exportiert den Bescheid fuer alle markierten Studierenden
//****
function StudentExportBescheid()
{
tree = document.getElementById('student-tree');
//Alle markierten Studenten holen
var start = new Object();
var end = new Object();
var numRanges = tree.view.selection.getRangeCount();
var paramList= '';
var anzahl=0;
for (var t = 0; t < numRanges; t++)
{
tree.view.selection.getRangeAt(t,start,end);
for (var v = start.value; v <= end.value; v++)
{
uid = getTreeCellText(tree, 'student-treecol-uid', v);
paramList += ';'+uid;
anzahl = anzahl+1;
}
}
if(paramList.replace(";",'') == '')
{
alert('Bitte einen Studenten auswaehlen');
return false;
}
if(anzahl>0)
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?archivdokument=Bescheid&uid='+paramList,'Bescheide', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
else
alert('Bitte einen Studenten auswaehlen');
}
+13 -5
View File
@@ -297,16 +297,21 @@ class akte extends basis_db
* @param $stg_kz -> wenn gesetzt werden nur Akten angezeigt die ZUSÄTZLICH zum Studiengang abgegeben worden sind ohne Zeugnis
* @param $prestudent_id -> gesetzt wenn auch stg_kz gesetzt ist um sicherzugehen, dass Akten, die er schon für seinen Studiengang abgegeben hat,
* nicht mehr angezeigt werden
* @param boolean $returnInhalt Wenn true, wird auch den Inhalt (base64-Code) geladen, sonst nur allgemeine Informationen
* @param string $order Sortierreihenfolge im SQL
* @return true wenn ok, sonst false
*/
public function getAkten($person_id, $dokument_kurzbz=null, $stg_kz = null, $prestudent_id = null)
public function getAkten($person_id, $dokument_kurzbz=null, $stg_kz = null, $prestudent_id = null, $returnInhalt = false, $order = 'erstelltam')
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt, titel_intern, anmerkung_intern,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid, dms_id, anmerkung, nachgereicht,
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden,
nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
nachgereicht_am, ausstellungsnation, formal_geprueft_amum, archiv, signiert, stud_selfservice";
if($returnInhalt === true)
$qry.=",inhalt ";
$qry.=" FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
if($dokument_kurzbz!=null)
$qry.=" AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz);
if($stg_kz != null && $prestudent_id != null)
@@ -315,7 +320,8 @@ class akte extends basis_db
(SELECT dokument_kurzbz FROM public.tbl_dokumentprestudent JOIN public.tbl_dokument USING(dokument_kurzbz)
WHERE prestudent_id=".$this->db_add_param($prestudent_id).")";
$qry.=" ORDER BY erstelltam";
if ($order != '')
$qry.=" ORDER BY ".$order;
$this->errormsg = $qry;
@@ -328,7 +334,9 @@ class akte extends basis_db
$akten->akte_id = $row->akte_id;
$akten->person_id = $row->person_id;
$akten->dokument_kurzbz = $row->dokument_kurzbz;
//$akte->inhalt = $row->inhalt;
if($returnInhalt === true)
$akten->inhalt = $row->inhalt;
$akten->inhalt_vorhanden = $this->db_parse_bool($row->inhalt_vorhanden);
$akten->mimetype = $row->mimetype;
$akten->erstelltam = $row->erstelltam;
+1 -1
View File
@@ -291,7 +291,7 @@
<!ENTITY menu-dokumente-pruefungszeugnis_englisch.label "Prüfungszeugnis Englisch">
<!ENTITY menu-dokumente-pruefungszeugnis_englisch.accesskey "G">
<!ENTITY menu-dokumente-bescheid_deutsch.label "Bescheid Deutsch">
<!ENTITY menu-dokumente-bescheid_deutsch.label "Bescheid (Nur Voransicht)">
<!ENTITY menu-dokumente-bescheid_deutsch.accesskey "D">
<!ENTITY menu-dokumente-bescheid_englisch.label "Bescheid Englisch">
+2 -2
View File
@@ -23,7 +23,7 @@
}
/*arrow toggle for panels*/
.panel-heading .accordion-toggle:before{
.panel-heading .accordion-toggle.arrowcollapse:before{
/* symbol for "opening" panels */
font-family: 'Glyphicons Halflings'; /* essential for enabling glyphicon */
content: "\e114"; /* adjust as needed, taken from bootstrap.css */
@@ -32,7 +32,7 @@
color: grey; /* adjust as needed */
}
.panel-heading .accordion-toggle.collapsed:before{
.panel-heading .accordion-toggle.collapsed.arrowcollapse:before{
/* symbol for "collapsed" panels */
content: "\e080"; /* adjust as needed, taken from bootstrap.css */
}
+23 -9
View File
@@ -32,7 +32,7 @@ function sideMenuHook()
{
if (typeof refreshSideMenu == 'function')
{
refreshSideMenu();
InfocenterPersonDataset.refreshSideMenu();
}
}
}
@@ -107,10 +107,10 @@ var FHC_FilterWidget = {
_resetAll: function() {
//
$("#dragAndDropFieldsArea").html("");
$("#addField").html("<option value=\"\">Select a field to add...</option>");
$("#addField").html('<option value="">' + FHC_PhraseLib.t('ui', 'bitteEintragWaehlen') + '</option>');
//
$("#appliedFilters").html("");
$("#addFilter").html("<option value=\"\">Select a filter to add...</option>");
$("#addFilter").html('<option value="">' + FHC_PhraseLib.t('ui', 'bitteEintragWaehlen') + '</option>');
},
/**
@@ -289,6 +289,9 @@ var FHC_FilterWidget = {
},
{
successCallback: function(data, textStatus, jqXHR) {
// Tablesorter filter local storage clean
$("#filterTableDataset").trigger("filterResetSaved");
FHC_FilterWidget._failOrRefresh(data, textStatus, jqXHR);
}
}
@@ -344,8 +347,7 @@ var FHC_FilterWidget = {
fieldToDisplay = data.columnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addField").append(strDropDown);
$("#addField").append('<option value="' + fieldName + '">' + fieldToDisplay + '</option>');
}
}
}
@@ -360,6 +362,9 @@ var FHC_FilterWidget = {
},
{
successCallback: function(data, textStatus, jqXHR) {
// Tablesorter filter local storage clean
$("#filterTableDataset").trigger("filterResetSaved");
FHC_FilterWidget._failOrRefresh(data, textStatus, jqXHR);
}
}
@@ -517,8 +522,7 @@ var FHC_FilterWidget = {
fieldToDisplay = data.columnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addFilter").append(strDropDown);
$("#addFilter").append('<option value="' + fieldName + '">' + fieldToDisplay + '</option>');
}
}
}
@@ -764,9 +768,19 @@ var FHC_FilterWidget = {
&& $('#filterTableDataset').hasClass('table-condensed'))
{
$("#filterTableDataset").tablesorter({
widgets: ["zebra", "filter"]
widgets: ["zebra", "filter"],
widgetOptions: {
filter_saveFilters : true
}
});
// reset filter storage if there is a filter id in url TODO: find better solution
var filter_id = FHC_AjaxClient.getUrlParameter("filter_id");
if (typeof filter_id !== 'undefined')
{
$("#filterTableDataset").trigger("filterResetSaved");
}
var config = $('#filterTableDataset')[0].config;
$.tablesorter.updateAll(config, true, null);
}
@@ -822,7 +836,7 @@ $(document).ready(function() {
filter_page: FHC_FilterWidget.getFilterPage()
},
{
successCallback: refreshSideMenu // NOTE: to be checked
successCallback: InfocenterPersonDataset.refreshSideMenu // NOTE: to be checked
}
);
}
+73
View File
@@ -0,0 +1,73 @@
/**
* FH-Complete
*
* @package
* @author
* @copyright Copyright (c) 2016 fhcomplete.org
* @license GPLv3
* @link https://fhcomplete.org
* @since Version 1.0.0
*/
/**
* Definition and initialization of object FHC_PhraseLib
*/
var FHC_PhraseLib = {
//------------------------------------------------------------------------------------------------------------------
// Public methods
/**
* Returns the phrase-text in the user's language
* @param {String} category : phrase-category
* @param {String} phrase : phrase-name
* @param {array} params : String-parameters to be set in variables in phrasentext
* @returns {String} : phrase-text
*/
t: function (category, phrase, params = []) {
// Checks if FHC_JS_PHRASES_STORAGE_OBJECT is an array
if ($.isArray(FHC_JS_PHRASES_STORAGE_OBJECT))
{
// loop through global JS PHRASES STORAGE OBJECT and search for phrase
for (i in FHC_JS_PHRASES_STORAGE_OBJECT)
{
var phraseObj = FHC_JS_PHRASES_STORAGE_OBJECT[i]; // Single phrase object
// If the single phrase match the given parameters and is not an empty string
if (phraseObj.category == category
&& phraseObj.phrase == phrase
&& phraseObj.text != null
&& phraseObj.text.trim() != '')
{
// If params is null or not an array
if (params == null || (params != null && !$.isArray(params)))
{
params = [];
}
return FHC_PhraseLib._replacePhraseVariable(phraseObj.text, params); // parsing
}
}
}
return '<< PHRASE ' + phrase + ' >>';
},
//------------------------------------------------------------------------------------------------------------------
// Private methods
/**
* Returns phrase with variables being replaced
* @param {String} phrase : phrasen-text (with one ore more variables)
* @param {array} replaceStringArr : String-array to be set in variables in phrasentext (order matters)
* @returns {String} : replaced phrasen-text
*/
_replacePhraseVariable: function (phrase, replaceStringArr) {
for (var i = 0; i < replaceStringArr.length; i++)
{
phrase = phrase.replace(/\{(.*?)\}/, replaceStringArr[i]);
}
return phrase;
}
};
+16 -21
View File
@@ -6,9 +6,8 @@ const CALLED_PATH = FHC_JS_DATA_STORAGE_OBJECT.called_path;
/**
* javascript file for infocenterDetails page
*/
$(document).ready(
function ()
{
$(document).ready(function ()
{
//initialise table sorter
Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
Tablesort.addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]);
@@ -133,7 +132,7 @@ $(document).ready(
var notizTitle = $(this).find("td:eq(1)").text();
var notizContent = this.title;
$("#notizform label:first").text("Notiz ändern").css("color", "red");
$("#notizform label:first").text(FHC_PhraseLib.t('infocenter', 'notizAendern')).css("color", "red");
$("#notizform :input[type='reset']").css("display", "inline-block");
$("#notizform :input[name='hiddenNotizId']").val(notizId);
@@ -209,8 +208,7 @@ var InfocenterDetails = {
{
FHC_AjaxClient.ajaxCallGet(
CALLED_PATH + "/getLastPrestudentWithZgvJson/" + encodeURIComponent(personid),
{
},
null,
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
@@ -243,7 +241,7 @@ var InfocenterDetails = {
saveZgv: function(data)
{
var zgvError = function(){
$("#zgvSpeichern_" + prestudentid).before("<span id='zgvSpeichernNotice' class='text-danger'>Fehler beim Speichern der ZGV!</span>&nbsp;&nbsp;");
$("#zgvSpeichern_" + prestudentid).before("<span id='zgvSpeichernNotice' class='text-danger'>" + FHC_PhraseLib.t('ui', 'fehlerBeimSpeichern') + "</span>&nbsp;&nbsp;");
};
var prestudentid = data.prestudentid;
@@ -258,7 +256,7 @@ var InfocenterDetails = {
if (FHC_AjaxClient.hasData(data))
{
InfocenterDetails._refreshLog();
$("#zgvSpeichern_" + prestudentid).before("<span id='zgvSpeichernNotice' class='text-success'>ZGV erfolgreich gespeichert!</span>&nbsp;&nbsp;");
$("#zgvSpeichern_" + prestudentid).before("<span id='zgvSpeichernNotice' class='text-success'>" + FHC_PhraseLib.t('ui', 'gespeichert') + "</span>&nbsp;&nbsp;");
}
else
{
@@ -319,13 +317,11 @@ var InfocenterDetails = {
{
FHC_AjaxClient.ajaxCallGet(
CALLED_PATH + "/getStudienjahrEnd",
{
},
null,
{
successCallback: function(data, textStatus, jqXHR) {
if (data)
{
console.log("studienjahr end executed");
var engdate = $.datepicker.parseDate("yy-mm-dd", data);
var gerdate = $.datepicker.formatDate("dd.mm.yy", engdate);
$("#parkdate").val(gerdate);
@@ -339,8 +335,7 @@ var InfocenterDetails = {
{
FHC_AjaxClient.ajaxCallGet(
CALLED_PATH + "/getParkedDate/"+encodeURIComponent(personid),
{
},
null,
{
successCallback: function(data, textStatus, jqXHR) {
InfocenterDetails._refreshParking(data);
@@ -392,11 +387,11 @@ var InfocenterDetails = {
if (data.length > 0)
InfocenterDetails.getParkedDate(personid);
else
$("#unparkmsg").removeClass().addClass("text-warning").text(" Nichts zum Ausparken.");
$("#unparkmsg").removeClass().addClass("text-warning").text(FHC_PhraseLib.t('infocenter', 'nichtsZumAusparken'));
}
},
errorCallback: function(){
$("#unparkmsg").removeClass().addClass("text-danger").text(" Fehler beim Ausparken!");
$("#unparkmsg").removeClass().addClass("text-danger").text(FHC_PhraseLib.t('infocenter', 'fehlerBeimAusparken'));
},
veilTimeout: 0
}
@@ -440,8 +435,8 @@ var InfocenterDetails = {
{
$("#parking").html(
'<div class="form-group form-inline">'+
'<button class="btn btn-default" id="parklink" type="button""><i class="fa fa-clock-o"></i>&nbsp;BewerberIn parken</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
'bis&nbsp;&nbsp;'+
'<button class="btn btn-default" id="parklink" type="button""><i class="fa fa-clock-o"></i>&nbsp;' + FHC_PhraseLib.t('infocenter', 'bewerberParken') + '</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
FHC_PhraseLib.t('global', 'bis') + '&nbsp;&nbsp;'+
'<input id="parkdate" type="text" class="form-control" placeholder="Parkdatum" style="height: 25px; width: 99px">&nbsp;'+
'<span class="text-danger" id="parkmsg"></span>'+
'</div>');
@@ -467,8 +462,8 @@ var InfocenterDetails = {
var parkdate = $.datepicker.parseDate("yy-mm-dd", date);
var gerparkdate = $.datepicker.formatDate("dd.mm.yy", parkdate);
$("#parking").html(
'BewerberIn geparkt bis '+gerparkdate+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
'<button class="btn btn-default" id="unparklink"><i class="fa fa-sign-out"></i>&nbsp;BewerberIn ausparken</button>&nbsp;'+
FHC_PhraseLib.t('infocenter', 'bewerberGeparktBis')+'&nbsp;&nbsp;'+gerparkdate+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
'<button class="btn btn-default" id="unparklink"><i class="fa fa-sign-out"></i>&nbsp;'+FHC_PhraseLib.t('infocenter', 'bewerberAusparken')+'</button>&nbsp;'+
'<span id="unparkmsg"></span>'
);
@@ -491,11 +486,11 @@ var InfocenterDetails = {
{
$("#notizmsg").empty();
$("#notizform :input[name='hiddenNotizId']").val("");
$("#notizform label:first").text("Notiz hinzufügen").css("color", "black");
$("#notizform label:first").text(FHC_PhraseLib.t('infocenter', 'notizHinzufuegen')).css("color", "black");
$("#notizform :input[type='reset']").css("display", "none");
},
_errorSaveNotiz: function()
{
$("#notizmsg").text("Fehler beim Speichern der Notiz!&nbsp;");
$("#notizmsg").text(FHC_PhraseLib.t('ui', 'fehlerBeimSpeichern'));
}
};
+116 -138
View File
@@ -3,151 +3,129 @@
*/
$(document).ready(function() {
appendTableActionsHtml();
InfocenterPersonDataset.appendTableActionsHtml();
// setTableActions();
});
/**
* adds person table additional actions html (above and beneath it)
*/
function appendTableActionsHtml()
{
var currurl = window.location.href;
var url = currurl.replace(/infocenter\/InfoCenter(.*)/, "Messages/write");
var InfocenterPersonDataset = {
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
$("#datasetActionsTop").before(formHtml);
var selectAllHtml =
'<a href="javascript:void(0)" class="selectAll">' +
'<i class="fa fa-check"></i>&nbsp;Alle</a>&nbsp;&nbsp;' +
'<a href="javascript:void(0)" class="unselectAll">' +
'<i class="fa fa-times"></i>&nbsp;Keinen</a>&nbsp;&nbsp;&nbsp;&nbsp;';
var actionHtml = 'Mit Ausgew&auml;hlten:&nbsp;&nbsp;' +
'<a href="javascript:void(0)" class="sendMsgsLink">' +
'<i class="fa fa-envelope"></i>&nbsp;Nachricht senden</a>';
var legendHtml = '<i class="fa fa-circle text-danger"></i> Gesperrt&nbsp;&nbsp;&nbsp;&nbsp;' +
'<i class="fa fa-circle text-info"></i> Geparkt';
var personcount = 0;
$.ajax({
url: window.location.pathname.replace('infocenter/InfoCenter', 'Filters/rowNumber'),
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id"),
filter_page: FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
if (data != null)
{
if (data.rowNumber != null)
{
personcount = data.rowNumber;
var persontext = personcount === 1 ? "Person" : "Personen";
var countHtml = personcount + " " + persontext;
$("#datasetActionsTop, #datasetActionsBottom").append(
"<div class='row'>"+
"<div class='col-xs-6'>" + selectAllHtml + "&nbsp;&nbsp;" + actionHtml + "</div>"+
"<div class='col-xs-4'>" + legendHtml + "</div>"+
"<div class='col-xs-2 text-right'>" + countHtml + "</div>"+
"<div class='clearfix'></div>"+
"</div>"
);
$("#datasetActionsBottom").append("<br><br>");
}
setTableActions();
}
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
/**
* sets functionality for the actions above and beneath the person table
*/
function setTableActions()
{
$(".sendMsgsLink").click(function() {
var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
if(idsel.length > 0)
{
var form = $("#sendMsgsForm");
form.find("input[type=hidden]").remove();
for (var i = 0; i < idsel.length; i++)
{
var id = $(idsel[i]).val();
form.append("<input type='hidden' name='person_id[]' value='" + id + "'>");
}
form.submit();
}
});
$(".selectAll").click(function()
{
//select only trs if not filtered by tablesorter
var trs = $("#filterTableDataset tbody tr").not(".filtered");
trs.find("input[name=PersonId\\[\\]]").prop("checked", true);
}
);
$(".unselectAll").click(function()
{
var trs = $("#filterTableDataset tbody tr").not(".filtered");
trs.find("input[name=PersonId\\[\\]]").prop("checked", false);
}
);
}
/**
*
*/
function getUrlParameter(sParam)
{
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++)
/**
* adds person table additional actions html (above and beneath it)
/*
*/
appendTableActionsHtml: function()
{
sParameterName = sURLVariables[i].split('=');
var currurl = window.location.href;
var url = currurl.replace(/infocenter\/InfoCenter(.*)/, "Messages/write");
if (sParameterName[0] === sParam)
{
return sParameterName[1];
}
}
}
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
$("#datasetActionsTop").before(formHtml);
/**
* Refreshes the side menu
*/
function refreshSideMenu()
{
$.ajax({
url: window.location.pathname+"/setNavigationMenuArray",
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
var selectAllHtml =
'<a href="javascript:void(0)" class="selectAll">' +
'<i class="fa fa-check"></i>&nbsp;Alle</a>&nbsp;&nbsp;' +
'<a href="javascript:void(0)" class="unselectAll">' +
'<i class="fa fa-times"></i>&nbsp;Keinen</a>&nbsp;&nbsp;&nbsp;&nbsp;';
FHC_NavigationWidget.renderSideMenu();
var actionHtml = 'Mit Ausgew&auml;hlten:&nbsp;&nbsp;' +
'<a href="javascript:void(0)" class="sendMsgsLink">' +
'<i class="fa fa-envelope"></i>&nbsp;Nachricht senden</a>';
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
var legendHtml = '<i class="fa fa-circle text-danger"></i> Gesperrt&nbsp;&nbsp;&nbsp;&nbsp;' +
'<i class="fa fa-circle text-info"></i> Geparkt';
var personcount = 0;
FHC_AjaxClient.ajaxCallGet(
'system/Filters/rowNumber',
{
filter_page: FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method
},
{
successCallback: function(data, textStatus, jqXHR) {
if (data != null)
{
if (data.rowNumber != null)
{
personcount = data.rowNumber;
var persontext = personcount === 1 ? "Person" : "Personen";
var countHtml = personcount + " " + persontext;
$("#datasetActionsTop, #datasetActionsBottom").append(
"<div class='row'>"+
"<div class='col-xs-6'>" + selectAllHtml + "&nbsp;&nbsp;" + actionHtml + "</div>"+
"<div class='col-xs-4'>" + legendHtml + "</div>"+
"<div class='col-xs-2 text-right'>" + countHtml + "</div>"+
"<div class='clearfix'></div>"+
"</div>"
);
$("#datasetActionsBottom").append("<br><br>");
}
InfocenterPersonDataset.setTableActions();
}
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
}
);
},
/**
* sets functionality for the actions above and beneath the person table
*/
setTableActions: function()
{
$(".sendMsgsLink").click(function() {
var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
if(idsel.length > 0)
{
var form = $("#sendMsgsForm");
form.find("input[type=hidden]").remove();
for (var i = 0; i < idsel.length; i++)
{
var id = $(idsel[i]).val();
form.append("<input type='hidden' name='person_id[]' value='" + id + "'>");
}
form.submit();
}
});
$(".selectAll").click(function()
{
//select only trs if not filtered by tablesorter
var trs = $("#filterTableDataset tbody tr").not(".filtered");
trs.find("input[name=PersonId\\[\\]]").prop("checked", true);
}
);
$(".unselectAll").click(function()
{
var trs = $("#filterTableDataset tbody tr").not(".filtered");
trs.find("input[name=PersonId\\[\\]]").prop("checked", false);
}
);
},
/**
* Refreshes the side menu
*/
refreshSideMenu: function()
{
FHC_AjaxClient.ajaxCallGet(
'system/infocenter/InfoCenter/setNavigationMenuArrayJson',
null,
{
successCallback: function(data, textStatus, jqXHR) {
FHC_NavigationWidget.renderSideMenu();
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
}
);
}
};
+1 -1
View File
@@ -61,7 +61,7 @@ var Tablesort = {
size: size,
cssDisabled: 'disabled',
savePages: false,
output: '{startRow} {endRow} / {totalRows} Zeilen'
output: '{startRow} {endRow} / {totalRows} ' + FHC_PhraseLib.t('global', 'zeilen')
}
);
}
+357 -27
View File
@@ -26,7 +26,7 @@
$new = false;
$phrases = array(
$phrases = array(
//******************* CORE/global
array(
'app' => 'core',
@@ -48,6 +48,26 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'zeilen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Zeilen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'lines',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',
@@ -909,6 +929,48 @@ $phrases = array(
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'mailAnXversandt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Mail an {email} versandt.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Mail was sent to {email}.',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'beschreibung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Beschreibung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'description',
'description' => '',
'insertvon' => 'system'
)
)
),
//******************************* CORE/ui
array(
@@ -1231,6 +1293,46 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'fehlerBeimSpeichern',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Fehler beim Speichern',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Error on Saving',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'gespeichert',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Gespeichert',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Saved',
'description' => '',
'insertvon' => 'system'
)
)
),
//*************************** CORE/filter
@@ -1255,6 +1357,70 @@ $phrases = array(
)
),
array(
'app' => 'core',
'category' => 'filter',
'phrase' => 'filterHinzufuegen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Filter hinzufügen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'add filter',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'filter',
'phrase' => 'feldHinzufuegen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Feld hinzufügen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'add field',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'filter',
'phrase' => 'filterBeschreibung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Filter Beschreibung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'filter description',
'description' => '',
'insertvon' => 'system'
)
)
),
//**************************** CORE/person
@@ -2184,6 +2350,46 @@ $phrases = array(
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zugangsvoraussetzungen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Zugangsvoraussetzungen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'keineZugangsvoraussetzungenTxt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Keine Zugangsvoraussetzungen für den Studiengang definiert',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
@@ -2273,8 +2479,8 @@ $phrases = array(
array(
'sprache' => 'German',
'text' => 'Bei Absage von InteressentInnen erhalten diese den Status "Abgewiesener" und deren '
. 'ZGV-Daten können im Infocenter nicht mehr bearbeitet oder freigegeben werden. '
. 'Alle nicht gespeicherten ZGV-Daten gehen verloren. Fortfahren?',
.'ZGV-Daten können im Infocenter nicht mehr bearbeitet oder freigegeben werden. '
.'Alle nicht gespeicherten ZGV-Daten gehen verloren. Fortfahren?',
'description' => '',
'insertvon' => 'system'
),
@@ -2380,7 +2586,7 @@ $phrases = array(
),
array(
'sprache' => 'English',
'text' => '',
'text' => 'Approve applicant',
'description' => '',
'insertvon' => 'system'
)
@@ -2483,7 +2689,7 @@ $phrases = array(
),
array(
'sprache' => 'English',
'text' => 'change note',
'text' => 'Change note',
'description' => '',
'insertvon' => 'system'
)
@@ -2568,7 +2774,128 @@ $phrases = array(
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'bewerberParken',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'BewerberIn parken',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Park applicant',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'bewerberAusparken',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'BewerberIn ausparken',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Unpark applicant',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'nichtsZumAusparken',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Nichts zum ausparken',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'fehlerBeimAusparken',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Fehler beim Ausparken',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'fehlerBeimParken',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Fehler beim Parken',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'bewerberGeparktBis',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'BewerberIn geparkt bis',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Applicant parked until',
'description' => '',
'insertvon' => 'system'
)
)
)
);
@@ -2581,9 +2908,9 @@ foreach ($phrases as $phrase)
$qry = "SELECT phrase_id
FROM system.tbl_phrase
WHERE
app=" . $db->db_add_param($phrase['app']) . " AND
category=" . $db->db_add_param($phrase['category']) . " AND
phrase=" . $db->db_add_param($phrase['phrase']);
app=". $db->db_add_param($phrase['app']). " AND
category=". $db->db_add_param($phrase['category']). " AND
phrase=". $db->db_add_param($phrase['phrase']);
//*** CHECK PHRASE
if ($result = $db->db_query($qry))
@@ -2600,11 +2927,11 @@ foreach ($phrases as $phrase)
insertvon,
category)
VALUES(".
$db->db_add_param($phrase['app']) . ','.
$db->db_add_param($phrase['phrase']) . ','.
$db->db_add_param($phrase['app']). ','.
$db->db_add_param($phrase['phrase']). ','.
' now(),'.
$db->db_add_param($phrase['insertvon']) . ','.
$db->db_add_param($phrase['category']) . ');';
$db->db_add_param($phrase['insertvon']). ','.
$db->db_add_param($phrase['category']). ');';
if ($db->db_query($qry_insert))
{
@@ -2618,11 +2945,11 @@ foreach ($phrases as $phrase)
$phrase_id = $obj->id;
}
}
echo 'Kategorie/Phrase: <b>' . $phrase['category'] . '/' . $phrase['phrase'] . ' hinzugefügt</b><br>';
echo 'Kategorie/Phrase: <b>'. $phrase['category']. '/'. $phrase['phrase']. ' hinzugefügt</b><br>';
}
else
echo '<span class="error">Fehler: ' . $phrase['category'] . '/' . $phrase['phrase'] . ' hinzufügen nicht möglich</span><br>';
echo '<span class="error">Fehler: '. $phrase['category']. '/'.
$phrase['phrase']. ' hinzufügen nicht möglich</span><br>';
}
//phrase existing -> get phrase_id
else
@@ -2631,23 +2958,23 @@ foreach ($phrases as $phrase)
{
$phrase_id = $obj->phrase_id;
}
echo 'Kategorie/Phrase: ' . $phrase['category'] . '/' . $phrase['phrase'] . ' vorhanden.<br>';
echo 'Kategorie/Phrase: '. $phrase['category']. '/'. $phrase['phrase']. ' vorhanden.<br>';
}
//*** CHECK PHRASENTEXT
//loop through languages
foreach ($phrase['phrases'] as $phrase_phrases)
{
{
$language = $phrase_phrases['sprache'];
//query phrasentext in certain language
$qry_language =
$qry_language =
"SELECT *
FROM system.tbl_phrasentext
WHERE
phrase_id=" . $phrase_id . " AND
sprache='" . $language . "'";
phrase_id=". $phrase_id. " AND
sprache='". $language. "'";
if ($result_language = $db->db_query($qry_language))
@@ -2665,22 +2992,25 @@ foreach ($phrases as $phrase)
insertamum,
insertvon)
VALUES(".
$db->db_add_param($phrase_id, FHC_INTEGER) . ','.
$db->db_add_param($phrase_phrases['sprache']) . ','.
$db->db_add_param($phrase_id, FHC_INTEGER). ','.
$db->db_add_param($phrase_phrases['sprache']). ','.
' NULL,'.
' NULL,'.
$db->db_add_param($phrase_phrases['text']) . ','.
$db->db_add_param($phrase_phrases['description']) . ','.
$db->db_add_param($phrase_phrases['text']). ','.
$db->db_add_param($phrase_phrases['description']). ','.
' now(),'.
$db->db_add_param($phrase_phrases['insertvon']) . ');';
$db->db_add_param($phrase_phrases['insertvon']). ');';
if ($db->db_query($qry_insert))
{
echo '-- Phrasentext ' . strtoupper(substr($phrase_phrases['sprache'], 0, 3)) . ': <b>' . $phrase_phrases['text'] . ' hinzugefügt</b><br>';
echo '-- Phrasentext '. strtoupper(substr($phrase_phrases['sprache'], 0, 3)). ': <b>'.
$phrase_phrases['text']. ' hinzugefügt</b><br>';
}
else
{
echo '<span class="error">Fehler: Phrasentext ' . strtoupper(substr($phrase_phrases['sprache'], 0, 3)) . ': '. $phrase_phrases['text'] . ' hinzufügen nicht möglich</span><br>';
echo '<span class="error">Fehler: Phrasentext '.
strtoupper(substr($phrase_phrases['sprache'], 0, 3)). ': '. $phrase_phrases['text'].
' hinzufügen nicht möglich</span><br>';
}
}
}
+236 -93
View File
@@ -18,10 +18,45 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="abschlusspruefung">
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">
<office:document-content
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
xmlns:ooo="http://openoffice.org/2004/office"
xmlns:ooow="http://openoffice.org/2004/writer"
xmlns:oooc="http://openoffice.org/2004/calc"
xmlns:dom="http://www.w3.org/2001/xml-events"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rpt="http://openoffice.org/2005/report"
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:grddl="http://www.w3.org/2003/g/data-view#"
xmlns:officeooo="http://openoffice.org/2009/office"
xmlns:tableooo="http://openoffice.org/2009/table"
xmlns:drawooo="http://openoffice.org/2010/draw"
xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
xmlns:css3t="http://www.w3.org/TR/css3-text/"
office:version="1.2">
<office:scripts/>
<office:font-face-decls>
<style:font-face style:name="Helvetica" svg:font-family="Helvetica"/>
<style:font-face style:name="Mangal1" svg:font-family="Mangal"/>
<style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
<style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/>
@@ -31,26 +66,72 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
</office:font-face-decls>
<office:automatic-styles>
<style:style style:name="Tabelle1" style:family="table">
<style:table-properties style:width="17cm" table:align="margins" style:shadow="none" style:writing-mode="page"/>
</style:style>
<style:style style:name="Tabelle1.A" style:family="table-column">
<style:table-column-properties style:column-width="8.5cm" style:rel-column-width="32767*"/>
</style:style>
<style:style style:name="Tabelle1.A1" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0.6cm" fo:padding-top="0cm" fo:padding-bottom="0cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle1.B1" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0.6cm" fo:padding-right="0cm" fo:padding-top="0cm" fo:padding-bottom="0cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="none"/>
</style:style>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="122%" fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="8.75pt" style:font-size-complex="10pt"/>
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:line-height="120%" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="28pt" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
</style:style>
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="122%" fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="28pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:line-height="120%" fo:text-indent="0cm" style:auto-text-indent="false" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="122%" fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="16pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="16pt" style:font-size-complex="16pt"/>
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:line-height="120%" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="122%" fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:color="#ff3333" fo:font-weight="bold" fo:font-size="16pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="16pt" style:font-size-complex="16pt"/>
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:line-height="120%" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:line-height="120%" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="16pt" style:font-size-asian="16pt" style:font-size-complex="16pt"/>
</style:style>
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:line-height="120%" fo:text-align="justify" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" fo:break-before="column" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:line-height="120%" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" fo:font-weight="bold" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:line-height="120%" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="Seitenumbruch" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:break-before="page" fo:line-height="122%" fo:text-align="center" style:justify-single-word="false"/>
<style:paragraph-properties fo:break-before="page" fo:margin-left="0cm" fo:margin-right="0cm" fo:line-height="120%" fo:text-align="center" style:justify-single-word="false" fo:text-indent="0cm" style:auto-text-indent="false" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="28pt" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
</style:style>
<style:style style:name="Warning" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:line-height="122%" fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="28pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
<style:text-properties style:font-name="Arial" fo:color="#ff3333" fo:font-weight="bold" fo:font-size="16pt" style:font-size-asian="16pt" style:font-size-complex="16pt"/>
</style:style>
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties fo:margin-left="0.319cm" fo:margin-right="0.319cm" style:run-through="background" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" fo:padding="0.026cm" fo:border="none" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style>
<style:style style:name="fr2" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:run-through="background" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="page" style:horizontal-pos="center" style:horizontal-rel="page" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style>
<style:style style:name="Sect1" style:family="section">
<style:section-properties text:dont-balance-text-columns="true" style:editable="false">
<style:columns fo:column-count="2" fo:column-gap="1.199cm">
<style:column-sep style:width="0.009cm" style:color="#000000" style:height="100%" style:style="solid"/>
<style:column style:rel-width="4819*" fo:start-indent="0cm" fo:end-indent="0.6cm"/>
<style:column style:rel-width="4819*" fo:start-indent="0.6cm" fo:end-indent="0cm"/>
</style:columns>
</style:section-properties>
</style:style>
</office:automatic-styles>
@@ -66,102 +147,164 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Diese wird als erstes vom RDF geliefert
-->
<xsl:if test="position()=1">
<office:text text:use-soft-page-breaks="true" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
<text:sequence-decls>
<office:text
text:use-soft-page-breaks="true"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
<text:sequence-decls
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:p text:style-name="Seitenumbruch">Bescheid</text:p>
<!-- Ueberprueft ob benoetigte Datenfelder leer sind -->
<xsl:if test="staatsbuergerschaft = ''"><text:p text:style-name="P4">Staatsbürgerschaft nicht angegeben</text:p></xsl:if>
<xsl:if test="datum = ''"><text:p text:style-name="P4">Datum der Abschlussprüfung nicht gesetzt</text:p></xsl:if>
<xsl:if test="titel = ''"><text:p text:style-name="P4">Kein akademischer Grad ausgewählt</text:p></xsl:if>
<xsl:if test="sponsion = ''"><text:p text:style-name="P4">Sponsionsdatum nicht gesetzt</text:p></xsl:if>
<text:p text:style-name="Seitenumbruch">
<draw:frame xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" draw:style-name="fr2" draw:name="Bild2" text:anchor-type="paragraph" svg:y="8.819cm" svg:width="11.449cm" svg:height="12.61cm" draw:z-index="1">
<draw:image xlink:href="Pictures/100000000000087900000955F5761520DAB70522.jpg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>Bescheid</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">Das Kollegium der Fachhochschule Technikum Wien verleiht</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P3"><xsl:value-of select="anrede" /><xsl:text> </xsl:text><xsl:value-of select="name" /></text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">geboren am <xsl:value-of select="gebdatum" /> in
<xsl:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" />
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:value-of select="geburtsnation" /></text:p>
<text:p text:style-name="P1">
<xsl:choose>
<xsl:when test="contains(anrede, 'err')">
<xsl:text>der</xsl:text>
</xsl:when>
<xsl:when test="contains(anrede, 'rau')">
<xsl:text>die</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>die/der</xsl:text>
</xsl:otherwise>
</xsl:choose>
durch Ablegung der
<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</xsl:when>
<xsl:when test="stg_art='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
</xsl:choose>prüfung am
<xsl:value-of select="datum" /> den</text:p>
<text:p text:style-name="P1">
<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</xsl:when>
<xsl:when test="stg_art='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
</xsl:choose>studiengang</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P3"><xsl:value-of select="stg_bezeichnung" /></text:p>
<text:p text:style-name="P1">(Studiengangskennzahl <xsl:value-of select="studiengang_kz" />)</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">ordnungsgemäß abgeschlossen hat,</text:p>
<text:p text:style-name="P1">gemäß § 6 Abs 1 FHStG, BGBl. Nr. 340/1993, idgF,</text:p>
<text:p text:style-name="P1">den akademischen Grad</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P3"><xsl:value-of select="titel" /></text:p>
<text:p text:style-name="P1">abgekürzt</text:p>
<text:p text:style-name="P3"><xsl:value-of select="akadgrad_kurzbz" />.</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">Rechtsmittelbelehrung: Gegen diesen Bescheid ist gemäß § 10 Abs 6 FHStG, BGBl. Nr.</text:p>
<text:p text:style-name="P1">340/1993, idgF, eine Beschwerde beim Bundesverwaltungsgericht zulässig. Sie ist innerhalb</text:p>
<text:p text:style-name="P1">von vier Wochen ab Zustellung bei der belangten Behörde (Kollegium der Fachhochschule</text:p>
<text:p text:style-name="P1">Technikum Wien) einzubringen.</text:p>
<text:p text:style-name="P1"/>
<!-- Ueberprueft ob benoetigte Datenfelder leer sind -->
<xsl:if test="gebdatum = ''"><text:p text:style-name="Warning">Geburtsdatum fehlt</text:p></xsl:if>
<xsl:if test="datum = ''"><text:p text:style-name="Warning">Datum der Abschlussprüfung nicht gesetzt</text:p></xsl:if>
<xsl:if test="titel = ''"><text:p text:style-name="Warning">Kein akademischer Grad ausgewählt</text:p></xsl:if>
<xsl:if test="geburtsnation = ''"><text:p text:style-name="Warning">Geburtsnation fehlt</text:p></xsl:if>
<xsl:if test="rektor = ''"><text:p text:style-name="Warning">Name des Rektors fehlt</text:p></xsl:if>
<xsl:if test="geburtsnation_engl = ''"><text:p text:style-name="Warning">Englische Geburtsnation fehlt</text:p></xsl:if>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3">Das Kollegium der Fachhochschule Technikum Wien verleiht</text:p>
<text:p text:style-name="P3"/>
<text:p text:style-name="P5"><xsl:value-of select="anrede" /><xsl:text> </xsl:text><xsl:value-of select="name" /></text:p>
<text:p text:style-name="P3"/>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A" table:number-columns-repeated="2"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P4">geboren am <xsl:value-of select="gebdatum" /> in
<xsl:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" />
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:value-of select="geburtsnation" />
<xsl:choose>
<xsl:when test="contains(anrede, 'err')">
<xsl:text> der</xsl:text>
</xsl:when>
<xsl:when test="contains(anrede, 'rau')">
<xsl:text> die</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> die/der</xsl:text>
</xsl:otherwise>
</xsl:choose>
durch Ablegung der
<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</xsl:when>
<xsl:when test="stg_art='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
</xsl:choose>prüfung am <xsl:value-of select="datum" /> den
<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</xsl:when>
<xsl:when test="stg_art='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
</xsl:choose>studiengang</text:p>
<text:p text:style-name="P4"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P6">born on <xsl:value-of select="gebdatum" /> in
<xsl:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" />
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:value-of select="geburtsnation_engl" />
who, by taking the
<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diploma</xsl:when>
<xsl:when test="stg_art='l'">Course</xsl:when>
<xsl:when test="stg_art='k'">Short study</xsl:when>
</xsl:choose> examination on <xsl:value-of select="datum" />, has duly completed the
<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diploma</xsl:when>
<xsl:when test="stg_art='l'">Course</xsl:when>
<xsl:when test="stg_art='k'">Short study</xsl:when>
</xsl:choose><xsl:if test="stg_art != 'l' or 'k'" >'s</xsl:if> degree program</text:p>
<text:p text:style-name="P4"/>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P5"><xsl:value-of select="stg_bezeichnung" /></text:p>
<text:p text:style-name="P3">(Studiengangskennzahl <xsl:value-of select="studiengang_kz" />)</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P5"><xsl:value-of select="stg_bezeichnung_engl" /></text:p>
<text:p text:style-name="P3">(Degree Program Code <xsl:value-of select="studiengang_kz" />)</text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P3"/>
<text:p text:style-name="P3">ordnungsgemäß abgeschlossen hat,</text:p>
<text:p text:style-name="P3">gemäß § 6 Abs 1 FHStG, BGBl. Nr. 340/1993, idgF, den akademischen Grad</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P3"/>
<text:p text:style-name="P3">according to § 6 Abs 1 FHStG, BGBl. No. 340/1993, as amended, the academic degree of</text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P5"><xsl:value-of select="titel" /> (<xsl:value-of select="akadgrad_kurzbz" />)</text:p>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:section text:style-name="Sect1" text:name="Bereich2">
<text:p text:style-name="P4">Rechtsmittelbelehrung: Gegen diesen Bescheid ist gemäß § 10 Abs 6 FHStG, BGBl. Nr. 340/1993, idgF, eine Beschwerde beim Bundesverwaltungsgericht zulässig. Sie ist innerhalb von vier Wochen ab Zustellung bei der belangten Behörde (Kollegium der Fachhochschule Technikum Wien) einzubringen.</text:p>
<text:p text:style-name="P6">Appeal notice: An appeal against this decision may be lodged with the Federal Administrative Court (Bundesverwaltungsgericht) in accordance with Section 10 (6) of the FHStG, Federal Law Gazette no. 340/1993, as amended. It must be submitted to the relevant authority (Council of the University of Applied Sciences Technikum Wien) within four weeks of notification.</text:p>
</text:section>
<text:p text:style-name="P3"/>
<xsl:choose>
<xsl:when test="../signed">
<text:p text:style-name="P1">
<draw:frame draw:style-name="fr1" draw:name="Bild1" text:anchor-type="paragraph" svg:width="17cm" svg:height="4.235cm" draw:z-index="0">
<draw:image xlink:href="Pictures/Platzhalter_QR_FHC_GROSS_AMT_DE.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3">
<draw:frame draw:style-name="fr3" draw:name="Bild1" text:anchor-type="paragraph" svg:width="17cm" svg:height="4.235cm" draw:z-index="0">
<draw:image xlink:href="Pictures/Platzhalter_QR_FHC_GROSS_AMT_DE.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P1">Wien, <xsl:value-of select="sponsion" /></text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">Für das Fachhochschulkollegium</text:p>
<text:p text:style-name="P1">Der Rektor</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"><xsl:value-of select="rektor" /></text:p>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3">Wien, <xsl:value-of select="ort_datum" /></text:p>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3">Für das Fachhochschulkollegium</text:p>
<text:p text:style-name="P3">Der Rektor</text:p>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"><xsl:value-of select="rektor" /></text:p>
</xsl:otherwise>
</xsl:choose>
</office:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+44 -38
View File
@@ -31,13 +31,13 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<office:styles>
<style:default-style style:family="graphic">
<style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="false"/>
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:font-independent-line-spacing="false">
<style:tab-stops/>
</style:paragraph-properties>
<style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="de" fo:country="AT" style:letter-kerning="true" style:font-name-asian="SimSun" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Mangal" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
</style:default-style>
<style:default-style style:family="paragraph">
<style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
<style:paragraph-properties fo:orphans="2" fo:widows="2" fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
<style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="de" fo:country="AT" style:letter-kerning="true" style:font-name-asian="SimSun" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Mangal" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/>
</style:default-style>
<style:default-style style:family="table">
@@ -65,28 +65,13 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<style:paragraph-properties text:number-lines="false" text:line-number="0"/>
<style:text-properties style:font-size-asian="12pt" style:font-name-complex="Mangal1" style:font-family-complex="Mangal"/>
</style:style>
<style:style style:name="Quotations" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
<style:paragraph-properties fo:margin-left="1cm" fo:margin-right="1cm" fo:margin-top="0cm" fo:margin-bottom="0.499cm" loext:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
</style:style>
<style:style style:name="Title" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="28pt" fo:font-weight="bold" style:font-size-asian="28pt" style:font-weight-asian="bold" style:font-size-complex="28pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
</style:style>
<style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="1" style:class="text">
<style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="130%" fo:font-weight="bold" style:font-size-asian="130%" style:font-weight-asian="bold" style:font-size-complex="130%" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="2" style:class="text">
<style:paragraph-properties fo:margin-top="0.353cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="115%" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="3" style:class="text">
<style:paragraph-properties fo:margin-top="0.247cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="101%" fo:font-weight="bold" style:font-size-asian="101%" style:font-weight-asian="bold" style:font-size-complex="101%" style:font-weight-complex="bold"/>
<style:style style:name="Header" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
<style:paragraph-properties text:number-lines="false" text:line-number="0">
<style:tab-stops>
<style:tab-stop style:position="8.5cm" style:type="center"/>
<style:tab-stop style:position="17cm" style:type="right"/>
</style:tab-stops>
</style:paragraph-properties>
</style:style>
<style:style style:name="Graphics" style:family="graphic">
<style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="dynamic" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
@@ -94,52 +79,52 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:outline-style style:name="Outline">
<text:outline-level-style text:level="1" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.762cm" fo:text-indent="-0.762cm" fo:margin-left="0.762cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="2" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.016cm" fo:text-indent="-1.016cm" fo:margin-left="1.016cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="3" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.27cm" fo:text-indent="-1.27cm" fo:margin-left="1.27cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="4" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.524cm" fo:text-indent="-1.524cm" fo:margin-left="1.524cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="5" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.778cm" fo:text-indent="-1.778cm" fo:margin-left="1.778cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="6" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.032cm" fo:text-indent="-2.032cm" fo:margin-left="2.032cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="7" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.286cm" fo:text-indent="-2.286cm" fo:margin-left="2.286cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="8" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.54cm" fo:text-indent="-2.54cm" fo:margin-left="2.54cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="9" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.794cm" fo:text-indent="-2.794cm" fo:margin-left="2.794cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="10" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.048cm" fo:text-indent="-3.048cm" fo:margin-left="3.048cm"/>
<style:list-level-label-alignment text:label-followed-by="listtab"/>
</style:list-level-properties>
</text:outline-level-style>
</text:outline-style>
@@ -148,17 +133,38 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
</office:styles>
<office:automatic-styles>
<style:style style:name="MP1" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:line-height="120%" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" fo:font-weight="bold" style:font-size-asian="10pt" style:font-weight-asian="bold" style:font-size-complex="10pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="MP2" style:family="paragraph" style:parent-style-name="Header">
<style:paragraph-properties fo:line-height="120%" style:writing-mode="page"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="Mfr1" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties fo:margin-left="0.319cm" fo:margin-right="0.319cm" style:run-through="background" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="paragraph" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" fo:padding="0.026cm" fo:border="none" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style>
<style:page-layout style:name="Mpm1">
<!--seitenränder hier angepasst: margin-top auf 5.5cm-->
<style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="5.5cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
<style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="1.27cm" fo:margin-bottom="1.4cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
<style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
</style:page-layout-properties>
<style:header-style/>
<style:header-style>
<style:header-footer-properties fo:min-height="2.801cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-bottom="2.501cm" fo:background-color="transparent" style:dynamic-spacing="false" draw:fill="none"/>
</style:header-style>
<style:footer-style/>
</style:page-layout>
</office:automatic-styles>
<office:master-styles>
<style:master-page style:name="Standard" style:page-layout-name="Mpm1"/>
<style:master-page style:name="Standard" style:page-layout-name="Mpm1">
<style:header>
<text:p text:style-name="MP1">
<draw:frame draw:style-name="Mfr1" draw:name="Bild4" text:anchor-type="char" svg:x="13.259cm" svg:y="0cm" svg:width="4.193cm" svg:height="2.17cm" draw:z-index="0">
<draw:image xlink:href="Pictures/1000020100000185000000C8D52FE05B715D2B9D.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>Kollegium der FH Technikum Wien</text:p>
<text:p text:style-name="MP2">Höchstädtplatz 6</text:p>
<text:p text:style-name="MP2">A-1200 Wien</text:p>
</style:header>
</style:master-page>
</office:master-styles>
</office:document-styles>
</xsl:template>