This commit is contained in:
cris-technikum
2018-02-12 14:54:25 +01:00
59 changed files with 2417 additions and 85584 deletions
-5
View File
@@ -116,7 +116,6 @@ $config['fhc_acl'] = array
'lehre.tbl_vertrag' => 'basis/vertrag',
'lehre.tbl_vertragsstatus' => 'basis/vertragsstatus',
'lehre.tbl_vertragstyp' => 'basis/vertragstyp',
'lehre.tbl_zeitfenster' => 'basis/zeitfenster',
'lehre.tbl_zeugnis' => 'basis/zeugnis',
'lehre.tbl_zeugnisnote' => 'basis/zeugnisnote',
'lehre.vw_studienplan' => 'lehre/studienplan',
@@ -125,8 +124,6 @@ $config['fhc_acl'] = array
'public.tbl_ampel' => 'basis/ampel',
'public.tbl_aufmerksamdurch' => 'basis/aufmerksamdurch',
'public.tbl_aufnahmeschluessel' => 'basis/aufnahmeschluessel',
'public.tbl_aufnahmetermin' => 'basis/aufnahmetermin',
'public.tbl_aufnahmetermintyp' => 'basis/aufnahmetermintyp',
'public.tbl_bankverbindung' => 'basis/bankverbindung',
'public.tbl_benutzer' => 'basis/benutzer',
'public.tbl_benutzerfunktion' => 'basis/benutzerfunktion',
@@ -240,8 +237,6 @@ $config['fhc_acl'] = array
DMS_PATH => 'fs/dms',
'public.tbl_sprache' => 'admin',
'PhrasesLib.getPhrase' => 'system/PhrasesLib'
);
+1 -1
View File
@@ -55,7 +55,7 @@ $config['roles'] = array
(
'basis/adresse','basis/akte','basis/kontakt','basis/log','basis/nation','basis/notiz','basis/notizzuordnung',
'basis/person','basis/prestudent','basis/prestudentstatus','basis/status','basis/zgv','basis/zgvmaster',
'lehre/studienplan','system/filters','fs/dms'
'lehre/studienplan','system/filters','fs/dms','basis/message','basis/benutzerrolle', 'basis/sprache'
)
)
);
+181 -43
View File
@@ -4,6 +4,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class Messages extends VileSci_Controller
{
private $uid; // contains the UID of the logged user
/**
*
*/
@@ -18,14 +20,33 @@ class Messages extends VileSci_Controller
$this->load->library('WidgetLib');
$this->load->model('person/Person_model', 'PersonModel');
$this->_setAuthUID(); // sets property uid
}
/**
* write
*/
public function write($sender_id, $msg_id = null, $receiver_id = null)
public function write($sender_id = null, $msg_id = null, $receiver_id = null)
{
if ($sender_id === null)
{
$user_person = $this->PersonModel->getByUid($this->uid);
if (isError($user_person))
{
show_error($user_person->retval);
}
$sender_id = $user_person->retval[0]->person_id;
}
$prestudent_id = $this->input->post('prestudent_id');
$person_id = $this->input->post('person_id');
$personOnly = false;
if (isset($person_id) && !isset($prestudent_id))
$personOnly = true;
$msg = null;
// Get message data if possible
@@ -42,30 +63,15 @@ class Messages extends VileSci_Controller
}
}
$variablesArray = array();
$msgVarsData = array();
// Get variables
$this->load->model('system/Message_model', 'MessageModel');
$msgVarsDataByPrestudentId = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id);
if ($msgVarsDataByPrestudentId->error)
{
show_error($msgVarsDataByPrestudentId->retval);
}
if (!hasData($variables = $this->MessageModel->getMessageVars()))
{
unset($variables);
}
if ($personOnly === true)
$this->getPersonMsgData($person_id, $variablesArray, $msgVarsData);
else
{
$variablesArray = array();
// Skip person_id and prestudent_id
for($i = 2; $i < count($variables->retval); $i++)
{
$variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i];
}
}
array_shift($variables->retval); // Remove person_id
array_shift($variables->retval); // Remove prestudent_id
$this->getPrestudentMsgData($prestudent_id, $variablesArray, $msgVarsData);
// Organisation units used to get the templates
$oe_kurzbz = array(); // A person can have more organisation units
@@ -73,7 +79,7 @@ class Messages extends VileSci_Controller
$benutzerResult = $this->BenutzerfunktionModel->getByPersonId($sender_id);
if (hasData($benutzerResult))
{
foreach($benutzerResult->retval as $val)
foreach ($benutzerResult->retval as $val)
{
$oe_kurzbz[] = $val->oe_kurzbz;
}
@@ -89,26 +95,101 @@ class Messages extends VileSci_Controller
$data = array (
'sender_id' => $sender_id,
'receivers' => $msgVarsDataByPrestudentId->retval,
'receivers' => isset($msgVarsData->retval) ? $msgVarsData->retval : $msgVarsData,
'message' => $msg,
'variables' => $variablesArray,
'oe_kurzbz' => $oe_kurzbz, // used to get the templates
'isAdmin' => $isAdmin->retval
'isAdmin' => $isAdmin->retval,
'personOnly' => $personOnly//indicates if sent only to persons
);
$v = $this->load->view('system/messageWrite', $data);
}
/**
* gets Message Variables and their data for Prestudent
* @param $prestudent_id
* @param $variablesArray to be filled with variable names
* @param $msgVarsData to be filled with variable data
*/
private function getPrestudentMsgData($prestudent_id, &$variablesArray, &$msgVarsData)
{
$msgVarsData = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id);
if ($msgVarsData->error)
{
show_error($msgVarsData->retval);
}
if (!hasData($variables = $this->MessageModel->getMessageVars()))
{
unset($variables);
}
else
{
$variablesArray = array();
// Skip person_id and prestudent_id
for ($i = 2; $i < count($variables->retval); $i++)
{
$variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i];
}
}
array_shift($variables->retval); // Remove person_id
array_shift($variables->retval); // Remove prestudent_id
}
/**
* gets Message Variables and their data for Person
* @param $person_id
* @param $variablesArray to be filled with variable names
* @param $msgVarsData to be filled with variable data
*/
private function getPersonMsgData($person_id, &$variablesArray, &$msgVarsData)
{
$msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($person_id);
if ($msgVarsData->error)
{
show_error($msgVarsData->retval);
}
if (!hasData($variables = $this->MessageModel->getMessageVarsPerson()))
{
unset($variables);
}
else
{
$variablesArray = array();
// Skip person_id
for ($i = 1; $i < count($variables->retval); $i++)
{
$variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i];
}
array_shift($variables->retval); // Remove person_id
}
}
/**
* send
*/
public function send($sender_id)
public function send($sender_id = null)
{
if ($sender_id === null)
{
$user_person = $this->PersonModel->getByUid($this->uid);
if (isError($user_person))
{
show_error($user_person->retval);
}
$sender_id = $user_person->retval[0]->person_id;
}
$error = false;
$subject = $this->input->post('subject');
$body = $this->input->post('body');
$prestudents = $this->input->post('prestudents');
$persons = $this->input->post('persons');
$relationmessage_id = $this->input->post('relationmessage_id');
if (!isset($relationmessage_id) || $relationmessage_id == '')
@@ -116,21 +197,26 @@ class Messages extends VileSci_Controller
$relationmessage_id = null;
}
//
$data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents);
// get message data of prestudents or persons
$prestudentsData = array();
if ($prestudents !== null)
{
$data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents);
//
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents);
}
else
$data = $this->MessageModel->getMsgVarsDataByPersonId($persons);
//
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents);
//
if (hasData($data) && hasData($prestudentsData))
// send message(s)
if (hasData($data))
{
for ($i = 0; $i < count($data->retval); $i++)
{
$parsedText = "";
$dataArray = (array)$data->retval[$i];
foreach($dataArray as $key => $val)
foreach ($dataArray as $key => $val)
{
$newKey = str_replace(" ", "_", strtolower($key));
$dataArray[$newKey] = $dataArray[$key];
@@ -138,12 +224,15 @@ class Messages extends VileSci_Controller
$parsedText = $this->messagelib->parseMessageText($body, $dataArray);
$oe_kurzbz = '';
for ($p = 0; $p < count($prestudentsData->retval); $p++)
$oe_kurzbz = null;
if (hasData($prestudentsData))
{
if ($prestudentsData->retval[$p]->prestudent_id == $data->retval[$i]->prestudent_id)
for ($p = 0; $p < count($prestudentsData->retval); $p++)
{
$oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz;
if ($prestudentsData->retval[$p]->prestudent_id == $data->retval[$i]->prestudent_id)
{
$oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz;
}
}
}
@@ -154,6 +243,24 @@ class Messages extends VileSci_Controller
$error = true;
break;
}
// Loads the person log library
$this->load->library('PersonLogLib');
//write log entry
$this->personloglib->log(
$dataArray['person_id'],
'Action',
array(
'name' => 'Message sent',
'message' => 'Message sent from person '.$sender_id.' to '.$dataArray['person_id'].', messageid '.$msg->retval,
'success' => 'true'
),
'kommunikation',
'core',
null,
$this->uid
);
}
}
@@ -174,7 +281,7 @@ class Messages extends VileSci_Controller
{
$person_id = $this->input->get('person_id');
}
else if ($this->input->post('person_id') !== null)
elseif ($this->input->post('person_id') !== null)
{
$person_id = $this->input->get('person_id');
}
@@ -187,6 +294,16 @@ class Messages extends VileSci_Controller
return $person_id;
}
/**
* Retrieve the UID of the logged user and checks if it is valid
*/
private function _setAuthUID()
{
$this->uid = getAuthUID();
if (!$this->uid) show_error('User authentification failed');
}
/**
* getVorlage
*/
@@ -211,17 +328,23 @@ class Messages extends VileSci_Controller
public function parseMessageText()
{
$prestudent_id = $this->input->get('prestudent_id');
$person_id = $this->input->get('person_id');
$text = $this->input->get('text');
if (isset($prestudent_id))
{
$data = null;
if (isset($person_id) && !isset($prestudent_id))
$data = $this->MessageModel->getMsgVarsDataByPersonId($person_id);
elseif (isset($prestudent_id))
$data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id);
if (isset($data))
{
$parsedText = "";
if (hasData($data))
{
$dataArray = (array)$data->retval[0];
foreach($dataArray as $key => $val)
foreach ($dataArray as $key => $val)
{
$newKey = str_replace(" ", "_", strtolower($key));
$dataArray[$newKey] = $dataArray[$key];
@@ -235,4 +358,19 @@ class Messages extends VileSci_Controller
->set_output(json_encode($parsedText));
}
}
/**
* Outputs message data for a message (identified my msg id and receiver id) in JSON format
* @param $msg_id
* @param $receiver_id
*/
public function getMessageFromIds($msg_id, $receiver_id)
{
$msg = $this->messagelib->getMessage($msg_id, $receiver_id);
$this->output
->set_content_type('application/json')
->set_output(json_encode(array($msg->retval[0])));
}
}
@@ -11,16 +11,17 @@ class InfoCenter extends VileSci_Controller
// App and Verarbeitungstaetigkeit name for logging
const APP = 'infocenter';
const TAETIGKEIT = 'bewerbung';
const FILTER_ID = 'filter_id';
// URL prefix for this controller
const URL_PREFIX = '/system/infocenter/InfoCenter/';
const URL_PREFIX = '/system/infocenter/InfoCenter';
// Used to log with PersonLogLib
private $logparams = array(
'saveformalgep' => array(
'logtype' => 'Action',
'name' => 'document formally checked',
'message' => 'document %s formally checked, set to %s'
'name' => 'Document formally checked',
'message' => 'Document %s formally checked, set to %s'
),
'savezgv' => array(
'logtype' => 'Action',
@@ -35,12 +36,12 @@ class InfoCenter extends VileSci_Controller
'freigegeben' => array(
'logtype' => 'Processstate',
'name' => 'Interessent confirmed',
'message' => 'status Interessent for prestudentid %s was confirmed for degree program %s'
'message' => 'Status Interessent for prestudentid %s was confirmed for degree program %s'
),
'savenotiz' => array(
'logtype' => 'Action',
'name' => 'note added',
'message' => 'note with title %s was added'
'name' => 'Note added',
'message' => 'Note with title %s was added'
)
);
private $uid; // contains the UID of the logged user
@@ -61,7 +62,8 @@ class InfoCenter extends VileSci_Controller
$this->load->model('crm/statusgrund_model', 'StatusgrundModel');
$this->load->model('person/notiz_model', 'NotizModel');
$this->load->model('person/person_model', 'PersonModel');
$this->load->model('system/Filters_model', 'FiltersModel');
$this->load->model('system/message_model', 'MessageModel');
$this->load->model('system/filters_model', 'FiltersModel');
// Loads libraries
$this->load->library('DmsLib');
@@ -164,7 +166,7 @@ class InfoCenter extends VileSci_Controller
)
);
redirect(self::URL_PREFIX.'showDetails/'.$person_id.'#DokPruef');
redirect(self::URL_PREFIX.'/showDetails/'.$person_id.'#DokPruef');
}
/**
@@ -232,40 +234,43 @@ class InfoCenter extends VileSci_Controller
show_error($lastStatus->retval);
}
$result = $this->PrestudentstatusModel->insert(
array(
'prestudent_id' => $prestudent_id,
'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz,
'ausbildungssemester' => $lastStatus->retval[0]->ausbildungssemester,
'datum' => date('Y-m-d'),
'orgform_kurzbz' => $lastStatus->retval[0]->orgform_kurzbz,
'studienplan_id' => $lastStatus->retval[0]->studienplan_id,
'status_kurzbz' => 'Abgewiesener',
'statusgrund_id' => $statusgrund,
'insertvon' => $this->uid,
'insertamum' => date('Y-m-d H:i:s')
)
);
if (isError($result))
//check if still Interessent and not freigegeben yet
if($lastStatus->retval[0]->status_kurzbz === 'Interessent' && !isset($lastStatus->retval[0]->bestaetigtam))
{
show_error($result->retval);
$result = $this->PrestudentstatusModel->insert(
array(
'prestudent_id' => $prestudent_id,
'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz,
'ausbildungssemester' => $lastStatus->retval[0]->ausbildungssemester,
'datum' => date('Y-m-d'),
'orgform_kurzbz' => $lastStatus->retval[0]->orgform_kurzbz,
'studienplan_id' => $lastStatus->retval[0]->studienplan_id,
'status_kurzbz' => 'Abgewiesener',
'statusgrund_id' => $statusgrund,
'insertvon' => $this->uid,
'insertamum' => date('Y-m-d H:i:s')
)
);
if (isError($result))
{
show_error($result->retval);
}
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
//statusgrund bezeichnung for logging
$this->StatusgrundModel->addSelect('bezeichnung_mehrsprachig');
$result = $this->StatusgrundModel->load($statusgrund);
if (isError($result))
{
show_error($result->retval);
}
$statusgrund_bez = $result->retval[0]->bezeichnung_mehrsprachig[1];
$this->_log($logdata['person_id'], 'abgewiesen', array($prestudent_id, $logdata['studiengang_kurzbz'], $statusgrund_bez));
}
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
//statusgrund bezeichnung for logging
$this->StatusgrundModel->addSelect('bezeichnung_mehrsprachig');
$result = $this->StatusgrundModel->load($statusgrund);
if (isError($result))
{
show_error($result->retval);
}
$statusgrund_bez = $result->retval[0]->bezeichnung_mehrsprachig[1];
$this->_log($logdata['person_id'], 'abgewiesen', array($prestudent_id, $logdata['studiengang_kurzbz'], $statusgrund_bez));
$this->_redirectToStart($prestudent_id, 'ZgvPruef');
}
@@ -282,31 +287,35 @@ class InfoCenter extends VileSci_Controller
{
$lastStatus = $lastStatus->retval[0];
$result = $this->PrestudentstatusModel->update(
array(
'prestudent_id' => $prestudent_id,
'status_kurzbz' => $lastStatus->status_kurzbz,
'studiensemester_kurzbz' => $lastStatus->studiensemester_kurzbz,
'ausbildungssemester' => $lastStatus->ausbildungssemester
),
array(
'bestaetigtvon' => $this->uid,
'bestaetigtam' => date('Y-m-d'),
'updatevon' => $this->uid,
'updateamum' => date('Y-m-d H:i:s')
)
);
if (isError($result))
//check if still Interessent and not freigegeben yet
if($lastStatus->status_kurzbz === 'Interessent' && !isset($lastStatus->bestaetigtam))
{
show_error($result->retval);
$result = $this->PrestudentstatusModel->update(
array(
'prestudent_id' => $prestudent_id,
'status_kurzbz' => $lastStatus->status_kurzbz,
'studiensemester_kurzbz' => $lastStatus->studiensemester_kurzbz,
'ausbildungssemester' => $lastStatus->ausbildungssemester
),
array(
'bestaetigtvon' => $this->uid,
'bestaetigtam' => date('Y-m-d'),
'updatevon' => $this->uid,
'updateamum' => date('Y-m-d H:i:s')
)
);
if (isError($result))
{
show_error($result->retval);
}
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
$this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz']));
}
}
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
$this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz']));
$this->_redirectToStart($prestudent_id, 'ZgvPruef');
}
@@ -329,7 +338,7 @@ class InfoCenter extends VileSci_Controller
$this->_log($person_id, 'savenotiz', array($titel));
redirect(self::URL_PREFIX.'showDetails/'.$person_id.'#NotizAkt');
redirect(self::URL_PREFIX.'/showDetails/'.$person_id.'#NotizAkt');
}
/**
@@ -360,6 +369,21 @@ class InfoCenter extends VileSci_Controller
->_display();
}
/**
*
*/
public function deleteCustomFilter()
{
$filter_id = $this->input->get('filter_id');
if (is_numeric($filter_id))
{
$this->FiltersModel->deleteCustomFilter($filter_id);
redirect(self::URL_PREFIX);
}
}
// -----------------------------------------------------------------------------------------------------------------
// Private methods
@@ -378,6 +402,9 @@ class InfoCenter extends VileSci_Controller
*/
private function _setNavigationMenuArray()
{
$listFiltersSent = array();
$listFiltersNotSent = array();
$filtersSent = $this->FiltersModel->getFilterList('infocenter', 'PersonActions', '%InfoCenterSentApplication%');
if (hasData($filtersSent))
{
@@ -400,6 +427,17 @@ class InfoCenter extends VileSci_Controller
}
}
$customFilters = $this->FiltersModel->getCustomFiltersList('infocenter', 'PersonActions', $this->uid);
if (hasData($customFilters))
{
for ($filtersCounter = 0; $filtersCounter < count($customFilters->retval); $filtersCounter++)
{
$filter = $customFilters->retval[$filtersCounter];
$listCustomFilters[$filter->filter_id] = $filter->description[0];
}
}
$filtersarray = array(
'abgeschickt' => array(
'link' => '#',
@@ -418,6 +456,18 @@ class InfoCenter extends VileSci_Controller
$this->_fillFilters($listFiltersSent, $filtersarray['abgeschickt']);
$this->_fillFilters($listFiltersNotSent, $filtersarray['nichtabgeschickt']);
if (isset($listCustomFilters) && is_array($listCustomFilters) && count($listCustomFilters) > 0)
{
$filtersarray['personal'] = array(
'link' => '#',
'description' => 'Personal filters',
'expand' => true,
'children' => array()
);
$this->_fillCustomFilters($listCustomFilters, $filtersarray['personal']);
}
$this->navigationMenuArray = array(
'dashboard' => array(
'link' => '#',
@@ -440,12 +490,26 @@ class InfoCenter extends VileSci_Controller
{
$toPrint = "%s=%s";
$tofill['children'][] = array(
'link' => sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filterId'), $filterId),
'link' => sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filter_id'), $filterId),
'description' => $description
);
}
}
private function _fillCustomFilters($filters, &$tofill)
{
foreach ($filters as $filterId => $description)
{
$toPrint = "%s=%s";
$tofill['children'][] = array(
'link' => sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filter_id'), $filterId),
'description' => $description,
'subscriptLink' => sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter/deleteCustomFilter?filter_id'), $filterId),
'subscriptDescription' => 'Remove'
);
}
}
/**
* Loads all necessary Person data: Stammdaten (name, svnr, contact, ...), Dokumente, Logs and Notizen
* @param $person_id
@@ -453,7 +517,7 @@ class InfoCenter extends VileSci_Controller
*/
private function _loadPersonData($person_id)
{
$stammdaten = $this->PersonModel->getPersonStammdaten($person_id);
$stammdaten = $this->PersonModel->getPersonStammdaten($person_id, true);
if (isError($stammdaten))
{
@@ -474,7 +538,14 @@ class InfoCenter extends VileSci_Controller
if (isError($dokumente_nachgereicht))
{
show_error($dokumente->retval);
show_error($dokumente_nachgereicht->retval);
}
$messages = $this->MessageModel->getMessagesOfPerson($person_id, 1);
if (isError($messages))
{
show_error($messages->retval);
}
$logs = $this->personloglib->getLogs($person_id);
@@ -486,12 +557,23 @@ class InfoCenter extends VileSci_Controller
show_error($notizen->retval);
}
$user_person = $this->PersonModel->getByUid($this->uid);
if (isError($user_person))
{
show_error($user_person->retval);
}
$messagelink = base_url('/index.ci.php/system/Messages/write/'.$user_person->retval[0]->person_id);
$data = array (
'stammdaten' => $stammdaten->retval,
'dokumente' => $dokumente->retval,
'dokumente_nachgereicht' => $dokumente_nachgereicht->retval,
'messages' => $messages->retval,
'logs' => $logs,
'notizen' => $notizen->retval
'notizen' => $notizen->retval,
'messagelink' => $messagelink
);
return $data;
@@ -578,7 +660,7 @@ class InfoCenter extends VileSci_Controller
$this->PrestudentModel->addSelect('person_id');
$person_id = $this->PrestudentModel->load($prestudent_id)->retval[0]->person_id;
redirect(self::URL_PREFIX.'showDetails/'.$person_id.'#'.$section);
redirect(self::URL_PREFIX.'/showDetails/'.$person_id.'#'.$section);
}
/**
+12 -11
View File
@@ -9,7 +9,7 @@
* @license GPLv3
* @since Version 1.0.0
*/
/**
* FHC Helper
*
@@ -33,7 +33,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
function generateToken($length = 64)
{
// For PHP 7 you can use random_bytes()
if(function_exists('random_bytes'))
if (function_exists('random_bytes'))
{
$token = base64_encode(random_bytes($length));
//base64 is about 33% longer, so we need to truncate the result
@@ -41,7 +41,7 @@ function generateToken($length = 64)
}
// for PHP >=5.3 and <7
if(function_exists('openssl_random_pseudo_bytes'))
if (function_exists('openssl_random_pseudo_bytes'))
{
$token = base64_encode(openssl_random_pseudo_bytes($length, $strong));
// is the token strong enough?
@@ -51,12 +51,13 @@ function generateToken($length = 64)
//fallback to mt_rand if php < 5.3 or no openssl available
$characters = '0123456789';
$characters .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/+';
$characters .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/+';
$charactersLength = strlen($characters)-1;
$token = '';
//select some random characters
for ($i = 0; $i < $length; $i++)
$token .= $characters[mt_rand(0, $charactersLength)];
return $token;
}
@@ -96,18 +97,18 @@ function loadResource($path, $resources = null, $subdir = false)
{
$path .= '/';
}
// Loads in $tmpResources all the given resources
$tmpResources = $resources;
if ($resources == null)
{
$tmpResources = array();
}
else if (!is_array($resources))
elseif (!is_array($resources))
{
$tmpResources = array($resources);
}
// Loads in $tmpPaths path and eventually the subdirectories
$tmpPaths = array($path);
// NOTE: Used @ to prevent ugly error messages
@@ -133,12 +134,12 @@ function loadResource($path, $resources = null, $subdir = false)
}
closedir($dirHandler);
}
// Loops through the resources
foreach($tmpResources as $tmpResource)
foreach ($tmpResources as $tmpResource)
{
// Loops through the paths
foreach($tmpPaths as $tmpPath)
foreach ($tmpPaths as $tmpPath)
{
$fileName = $tmpPath.$tmpResource.'.php'; // Php extension
if (file_exists($fileName))
@@ -147,4 +148,4 @@ function loadResource($path, $resources = null, $subdir = false)
}
}
}
}
}
+1 -1
View File
@@ -45,7 +45,7 @@ class MessageLib
}
/**
* getMessage() - returns the spicified received message for a specified person
* getMessage() - returns the specified received message for a specified person
*/
public function getMessage($msg_id, $person_id)
{
@@ -1,14 +0,0 @@
<?php
class Aufnahmetermin_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_aufnahmetermin';
$this->pk = 'aufnahmetermin_id';
}
}
@@ -1,14 +0,0 @@
<?php
class Aufnahmetermintyp_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_aufnahmetermintyp';
$this->pk = 'aufnahmetermintyp_kurzbz';
}
}
@@ -11,4 +11,11 @@ class Benutzer_model extends DB_Model
$this->dbTable = 'public.tbl_benutzer';
$this->pk = 'uid';
}
public function getFromPersonId($person_id)
{
/*$this->addSelect('uid, aktiv, alias');*/
$this->loadWhere(array('person_id' => $person_id));
}
}
+24 -8
View File
@@ -157,13 +157,14 @@ class Person_model extends DB_Model
* gets Stammdaten for a person, including contactdata in textform from other tables
* nation, kontakt, adresse
* @param $person_id
* @return array
* @param bool $zustellung_only, when true, retrieve only Zustellkontakte
* @return array, null when no person found
*/
public function getPersonStammdaten($person_id)
public function getPersonStammdaten($person_id, $zustellung_only = false)
{
$this->addSelect('tbl_person.*, s.kurztext as staatsbuergerschaft, g.kurztext as geburtsnation');
$this->addJoin('bis.tbl_nation s', 'tbl_person.staatsbuergerschaft = s.nation_code', 'LEFT');
$this->addJoin('bis.tbl_nation g', 'tbl_person.geburtsnation = g.nation_code', 'LEFT');
$this->addSelect('public.tbl_person.*, s.kurztext as staatsbuergerschaft, g.kurztext as geburtsnation');
$this->addJoin('bis.tbl_nation s', 'public.tbl_person.staatsbuergerschaft = s.nation_code', 'LEFT');
$this->addJoin('bis.tbl_nation g', 'public.tbl_person.geburtsnation = g.nation_code', 'LEFT');
$person = $this->load($person_id);
@@ -180,11 +181,12 @@ class Person_model extends DB_Model
$this->KontaktModel->addDistinct();
$this->KontaktModel->addSelect('kontakttyp, anmerkung, kontakt, zustellung');
$this->KontaktModel->addOrder('kontakttyp');
$kontakte = $this->KontaktModel->loadWhere(array('person_id' => $person_id));
$where = $zustellung_only === true ? array('person_id' => $person_id, 'zustellung' => true) : array('person_id' => $person_id);
$kontakte = $this->KontaktModel->loadWhere($where);
if($kontakte->error)
return error($kontakte->retval);
$adressen = $this->AdresseModel->loadWhere(array('person_id' => $person_id));
$where = $zustellung_only === true ? array('person_id' => $person_id, 'zustelladresse' => true) : array('person_id' => $person_id);
$adressen = $this->AdresseModel->loadWhere($where);
if($adressen->error)
return error($adressen->retval);
@@ -194,4 +196,18 @@ class Person_model extends DB_Model
return success($stammdaten);
}
/**
* gets person data from uid
* @param $uid
* @return array
*/
public function getByUid($uid)
{
$this->addSelect('vorname, nachname, gebdatum, person_id');
$this->addJoin('tbl_benutzer', 'person_id');
return $this->loadWhere(array('uid' => $uid));
}
}
@@ -1,14 +0,0 @@
<?php
class Zeitfenster_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'lehre.tbl_zeitfenster';
$this->pk = array('wochentag', 'studiengang_kz', 'ort_kurzbz', 'stunde');
}
}
+29 -1
View File
@@ -29,6 +29,34 @@ class Filters_model extends DB_Model
'filter_kurzbz ILIKE' => $filter_kurzbz
);
return $this->FiltersModel->loadWhere($filterParametersArray);
return $this->loadWhere($filterParametersArray);
}
/**
*
*/
public function getCustomFiltersList($app, $dataset_name, $uid)
{
$this->addSelect('filter_id, description');
$this->addJoin('public.tbl_benutzer', 'person_id');
$this->addOrder('sort', 'ASC');
$filterParametersArray = array(
'app' => $app,
'dataset_name' => $dataset_name,
'default_filter' => false,
'array_length(description, 1) >' => 0,
'uid' => $uid
);
return $this->loadWhere($filterParametersArray);
}
/**
*
*/
public function deleteCustomFilter($filter_id)
{
return $this->delete($filter_id);
}
}
@@ -85,6 +85,77 @@ class Message_model extends DB_Model
return $this->execQuery($sql, $parametersArray);
}
/**
* Gets massages with a person being sender OR receiver.
* @param $person_id
* @param null $status message status. by default, latest status is returned
* @return array|null
*/
public function getMessagesOfPerson($person_id, $status = null)
{
// Checks if the operation is permitted by the API caller
if (isError($ent = $this->isEntitled('public.tbl_person', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)))
return $ent;
if (isError($ent = $this->isEntitled('public.tbl_msg_status', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)))
return $ent;
if (isError($ent = $this->isEntitled('public.tbl_msg_message', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)))
return $ent;
if (isError($ent = $this->isEntitled('public.tbl_msg_recipient', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)))
return $ent;
$sql = 'SELECT m.message_id,
m.person_id,
m.subject,
m.body,
m.priority,
m.insertamum,
m.relationmessage_id,
m.oe_kurzbz,
se.person_id AS sepersonid,
se.anrede AS seanrede,
se.titelpost AS setitelpost,
se.titelpre AS setitelpre,
se.nachname AS senachname,
se.vorname AS sevorname,
se.vornamen AS sevornamen,
re.person_id AS repersonid,
re.anrede AS reanrede,
re.titelpost AS retitelpost,
re.titelpre AS retitelpre,
re.nachname AS renachname,
re.vorname AS revorname,
re.vornamen AS revornamen,
s.status,
s.statusinfo,
s.insertamum AS statusamum
FROM public.tbl_msg_message m
JOIN public.tbl_msg_recipient r ON m.message_id = r.message_id
JOIN public.tbl_person se ON (m.person_id = se.person_id)
JOIN public.tbl_person re ON (r.person_id = re.person_id)
LEFT JOIN (
SELECT message_id, person_id, status, statusinfo, insertamum
FROM public.tbl_msg_status
%s
ORDER BY insertamum DESC
) s ON (m.message_id = s.message_id AND re.person_id = s.person_id)
WHERE se.person_id = ?
OR re.person_id = ?
';
if (is_numeric($status))
{
$sql = sprintf($sql, 'WHERE status = '.$status);
}
else
{
$sql = sprintf($sql, '');
}
$parametersArray = array($person_id, $person_id);
return $this->execQuery($sql, $parametersArray);
}
/**
* getMessageVars
*/
@@ -102,6 +173,23 @@ class Message_model extends DB_Model
}
}
/**
* getMessageVars for person
*/
public function getMessageVarsPerson()
{
$result = $this->db->query('SELECT * FROM public.vw_msg_vars_person WHERE 0 = 1');
if ($result)
{
return success($result->list_fields());
}
else
{
return error($this->db->error(), FHC_DB_ERROR);
}
}
/**
* getMsgVarsDataByPrestudentId
*/
@@ -111,4 +199,14 @@ class Message_model extends DB_Model
return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id));
}
/**
* getMsgVarsDataByPersonId
*/
public function getMsgVarsDataByPersonId($person_id)
{
$query = 'SELECT * FROM public.vw_msg_vars_person WHERE person_id %s ?';
return $this->execQuery(sprintf($query, is_array($person_id) ? 'IN' : '='), array($person_id));
}
}
@@ -0,0 +1,19 @@
<form method="post" action="../saveNotiz/<?php echo $stammdaten->person_id ?>">
<div class="form-group">
<div class="text-center">
<label>Notiz hinzuf&uuml;gen</label>
</div>
<div class="form-group">
<label>Titel: </label><input type="text" class="form-control"
name="notiztitel"/>
</div>
<div class="form-group">
<label>Text: </label><textarea name="notiz" class="form-control"
rows="10"
cols="32"></textarea>
</div>
<div class="text-right">
<button type="submit" class="btn btn-default">Speichern</button>
</div>
</div>
</form>
@@ -0,0 +1,65 @@
<div class="table-responsive">
<table id="doctable" class="table table-bordered">
<thead>
<tr>
<th>Name</th>
<th>Typ</th>
<th>Uploaddatum</th>
<th>Ausstellungsnation</th>
<th>Formal gepr&uuml;ft</th>
</tr>
</thead>
<tbody>
<?php
foreach ($dokumente as $dokument):
$geprueft = isset($dokument->formal_geprueft_amum) ? "checked" : "";
?>
<tr>
<td>
<a href="../outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo empty($dokument->titel) ? $dokument->bezeichnung : $dokument->titel ?></a>
</td>
<td><?php echo $dokument->dokument_bezeichnung ?></td>
<td><?php echo date_format(date_create($dokument->erstelltam), 'd.m.Y') ?></td>
<td><?php echo $dokument->langtext ?></td>
<td>
<input type="checkbox" class="form-check-input"
id="prchkbx<?php echo $dokument->akte_id ?>" <?php echo $geprueft ?> />
<?php echo isset($dokument->formal_geprueft_amum) ? date_format(date_create($dokument->formal_geprueft_amum), 'd.m.Y') : ''; ?>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
<?php if (count($dokumente_nachgereicht) > 0): ?>
<br/>
<p>Nachzureichende Dokumente:</p>
<table id="nachgdoctable" class="table table-bordered">
<thead>
<tr>
<th>Typ</th>
<th>Nachzureichen am</th>
<th>Ausstellungsnation</th>
<th>Anmerkung</th>
</tr>
</thead>
<tbody>
<?php
foreach ($dokumente_nachgereicht as $dokument):
?>
<tr>
<td><?php echo $dokument->dokument_bezeichnung ?></td>
<td>
<?php echo isset($dokument->nachgereicht_am) ? date_format(date_create($dokument->nachgereicht_am), 'd.m.Y') : ''; ?>
</td>
<td>
<?php echo $dokument->langtext ?>
</td>
<td>
<?php echo $dokument->anmerkung; ?>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<?php endif; ?>
@@ -8,7 +8,8 @@
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'customCSSs' => 'skin/tablesort_bootstrap.css'
'customCSSs' => 'skin/tablesort_bootstrap.css',
'customJSs' => array('include/js/infocenterPersonDataset.js', 'include/js/bootstrapper.js')
)
);
?>
@@ -40,11 +41,7 @@
</div>
</div>
<script>
//javascript hacks for bootstrap
$("select").addClass("form-control");
$("input[type=text]").addClass("form-control");
$("input[type=button]").addClass("btn btn-default");
$("#tableDataset").addClass('table table-bordered table-responsive table-condensed');
$("#tableDataset").addClass('table table-bordered table-responsive');
</script>
</body>
@@ -94,8 +94,8 @@
)
ORDER BY "LastAction" DESC
',
'hideHeader' => true,
'hideSave' => true,
'hideHeader' => false,
'hideSave' => false,
'checkboxes' => array('PersonId'),
'additionalColumns' => array('Details'),
'formatRaw' => function($fieldName, $fieldValue, $datasetRaw) {
@@ -139,11 +139,11 @@
}
);
$filterId = isset($_GET['filterId']) ? $_GET['filterId'] : null;
$filterId = isset($_GET[InfoCenter::FILTER_ID]) ? $_GET[InfoCenter::FILTER_ID] : null;
if (isset($filterId) && is_numeric($filterId))
{
$filterWidgetArray['filterId'] = $filterId;
$filterWidgetArray[InfoCenter::FILTER_ID] = $filterId;
}
else
{
@@ -8,8 +8,10 @@ $this->load->view(
'fontawesome' => true,
'jqueryui' => true,
'tablesorter' => true,
'tinymce' => true,
'sbadmintemplate' => true,
'customCSSs' => array('skin/admintemplate.css', 'skin/tablesort_bootstrap.css')
'customCSSs' => array('skin/admintemplate.css', 'skin/tablesort_bootstrap.css'),
'customJSs' => 'include/js/bootstrapper.js'
)
);
?>
@@ -29,7 +31,8 @@ $this->load->view(
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">Infocenter
Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?></h3>
Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?>
</h3>
</div>
</div>
<section>
@@ -39,105 +42,7 @@ $this->load->view(
<div class="panel-heading text-center"><h4>Stammdaten</h4></div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6 table-responsive">
<table class="table">
<tr>
<td><strong>Vorname</strong></td>
<td><?php echo $stammdaten->vorname ?></td>
</tr>
<tr>
<td><strong>Nachname</strong></td>
<td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<tr>
<td><strong>Geburtsdatum</strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
</tr>
<tr>
<td><strong>Sozialversicherungsnr</strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
</tr>
<tr>
<td><strong>Staatsb&uuml;rgerschaft</strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
</tr>
<tr>
<td><strong>Geschlecht</strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
</tr>
<tr>
<td><strong>Geburtsnation</strong></td>
<td>
<?php echo $stammdaten->geburtsnation ?></td>
</tr>
<tr>
<td><strong>Geburtsort</strong></td>
<td><?php echo $stammdaten->gebort ?></td>
</tr>
</table>
</div>
<div class="col-lg-6 table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th colspan="4" class="text-center">Kontakte</th>
</tr>
<tr>
<th class="text-center">Typ</th>
<th class="text-center">Kontakt</th>
<th class="text-center">Zustellung</th>
<th class="text-center">Anmerkung</th>
</tr>
</thead>
<tbody>
<?php foreach ($stammdaten->kontakte as $kontakt): ?>
<tr>
<td><?php echo ucfirst($kontakt->kontakttyp); ?></td>
<td>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php
endif;
echo $kontakt->kontakt;
if ($kontakt->kontakttyp === 'email'):
?>
</a>
<?php endif; ?>
</td>
<td class="text-center"><?php echo $kontakt->zustellung === true ? '<span class="glyphicon glyphicon-ok"></span>' : ''; ?></td>
<td><?php echo $kontakt->anmerkung; ?></td>
</tr>
<?php endforeach; ?>
<?php foreach ($stammdaten->adressen as $adresse): ?>
<tr>
<td>
Adresse
</td>
<td>
<?php echo isset($adresse) ? $adresse->strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
</td>
<td class="text-center">
<?php echo $adresse->zustelladresse === true ? '<span class="glyphicon glyphicon-ok"></span>' : '' ?>
</td>
<td>
<?php echo ($adresse->heimatadresse === true ? 'Heimatadresse' : '').($adresse->heimatadresse === true && $adresse->rechnungsadresse === true ? ', ' : '').($adresse->rechnungsadresse === true ? 'Rechnungsadresse' : ''); ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php if (isset($stammdaten->zugangscode)): ?>
Zugang Bewerbung: <a
href="<?php echo base_url('addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode)) ?>"
target='_blank'><?php echo html_escape($stammdaten->zugangscode) ?></a>
<?php endif; ?>
</div> <!-- ./column -->
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
</div> <!-- ./row -->
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
@@ -151,67 +56,7 @@ $this->load->view(
<a name="DokPruef"></a><!-- anchor for jumping to the section -->
<div class="panel-heading text-center"><h4>Dokumentenpr&uuml;fung</h4></div>
<div class="panel-body">
<div class="table-responsive">
<table id="doctable" class="table table-bordered">
<thead>
<th>Name</th>
<th>Typ</th>
<th>Uploaddatum</th>
<th>Ausstellungsnation</th>
<th>Formal gepr&uuml;ft</th>
</thead>
<tbody>
<?php
foreach ($dokumente as $dokument):
$geprueft = isset($dokument->formal_geprueft_amum) ? "checked" : "";
?>
<tr>
<td>
<a href="../outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo empty($dokument->titel) ? $dokument->bezeichnung : $dokument->titel ?></a>
</td>
<td><?php echo $dokument->dokument_bezeichnung ?></td>
<td><?php echo date_format(date_create($dokument->erstelltam), 'd.m.Y') ?></td>
<td><?php echo $dokument->langtext ?></td>
<td>
<input type="checkbox" class="form-check-input"
id="prchkbx<?php echo $dokument->akte_id ?>" <?php echo $geprueft ?> />
<?php echo isset($dokument->formal_geprueft_amum) ? date_format(date_create($dokument->formal_geprueft_amum), 'd.m.Y') : ''; ?>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
<?php if (count($dokumente_nachgereicht) > 0): ?>
<br/>
<p>Nachzureichende Dokumente:</p>
<table id="nachgdoctable" class="table table-bordered">
<thead>
<th>Typ</th>
<th>Nachzureichen am</th>
<th>Ausstellungsnation</th>
<th>Anmerkung</th>
</thead>
<tbody>
<?php
foreach ($dokumente_nachgereicht as $dokument):
?>
<tr>
<td><?php echo $dokument->dokument_bezeichnung ?></td>
<td>
<?php echo isset($dokument->nachgereicht_am) ? date_format(date_create($dokument->nachgereicht_am), 'd.m.Y') : ''; ?>
</td>
<td>
<?php echo $dokument->langtext ?>
</td>
<td>
<?php echo $dokument->anmerkung; ?>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<?php endif; ?>
<?php $this->load->view('system/infocenter/dokpruefung.php'); ?>
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./column -->
@@ -226,358 +71,31 @@ $this->load->view(
<h4>ZGV-Pr&uuml;fung</h4>
</div>
<div class="panel-body">
<div class="panel-group">
<?php
foreach ($zgvpruefungen as $zgvpruefung):
$infoonly = $zgvpruefung->infoonly;
//set bootstrap columns
$columns = array(4, 3, 2, 3);
?>
<br/>
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-lg-8">
<h4 class="panel-title">
<a data-toggle="collapse"
href="#collapse<?php echo $zgvpruefung->prestudent_id ?>"><?php echo $zgvpruefung->studiengang.' - '.$zgvpruefung->studiengangbezeichnung.' | '.(isset($zgvpruefung->prestudentstatus->status_kurzbz) ? $zgvpruefung->prestudentstatus->status_kurzbz : '');
?></a>
</h4>
</div>
<?php if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent' && !$infoonly): ?>
<div class="col-lg-4 text-right">
<?php echo 'Bewerbung abgeschickt: '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check" style="color:green"></i>' : '<i class="fa fa-times" style="color:red"></i>'); ?>
</div>
<?php endif ?>
</div>
</div>
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
class="panel-collapse collapse<?php echo $infoonly ? '' : ' in' ?>">
<div class="panel-body">
<form method="post"
action="../saveZgvPruefung/<?php echo $zgvpruefung->prestudent_id ?>">
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group">
<label>Letzter Status: </label>
<?php
if (isset($zgvpruefung->prestudentstatus->status_kurzbz))
{
echo $zgvpruefung->prestudentstatus->status_kurzbz.(isset($zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0]) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Abgewiesener' ? ' ('.$zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0].')' : '');
}
?>
</div>
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>Studiensemester: </label>
<?php echo isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz) ? $zgvpruefung->prestudentstatus->studiensemester_kurzbz : '' ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label><span style="display: inline-block">Ausbildungs</span><span
style="display: inline-block">semester: </span></label>
<?php echo isset($zgvpruefung->prestudentstatus->ausbildungssemester) ? $zgvpruefung->prestudentstatus->ausbildungssemester : '' ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group">
<label>Orgform: </label>
<span style="display: inline-block">
<?php
$separator = (isset($zgvpruefung->prestudentstatus->orgform)) ? ', ' : '';
echo (isset($zgvpruefung->prestudentstatus->orgform) ? $zgvpruefung->prestudentstatus->orgform : '')
.(isset($zgvpruefung->prestudentstatus->sprachedetails->bezeichnung) ? $separator.$zgvpruefung->prestudentstatus->sprachedetails->bezeichnung[0] : '')
.(isset($zgvpruefung->prestudentstatus->alternative) ? ' ('.$zgvpruefung->prestudentstatus->alternative.')' : '') ?>
</span>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group">
<label>ZGV: </label>
<?php if ($infoonly)
echo $zgvpruefung->zgv_bez;
else
echo $this->widgetlib->widget(
'Zgv_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code),
array('name' => 'zgv', 'id' => 'zgv')
); ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>ZGV Ort: </label>
<?php if ($infoonly):
echo html_escape($zgvpruefung->zgvort);
else:
?>
<input type="text" class="form-control"
value="<?php echo $zgvpruefung->zgvort ?>"
name="zgvort">
<?php endif; ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label>ZGV Datum: </label>
<?php if ($infoonly):
echo date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y');
else:
?>
<input type="text"
class="dateinput form-control"
value="<?php echo empty($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y') ?>"
name="zgvdatum">
<?php endif; ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group">
<label>ZGV Nation: </label>
<?php if ($infoonly)
echo $zgvpruefung->zgvnation_bez;
else
echo $this->widgetlib->widget(
'Nation_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvnation_code),
array('name' => 'zgvnation', 'id' => 'zgvnation')
); ?>
</div>
</div>
</div>
<!-- show only master zgv if master studiengang - start -->
<?php if ($zgvpruefung->studiengangtyp === 'm') : ?>
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group"><label>ZGV Master: </label>
<?php
if ($infoonly)
echo $zgvpruefung->zgvmas_bez;
else
echo $this->widgetlib->widget(
'Zgvmaster_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmas_code),
array('name' => 'zgvmas', 'id' => 'zgvmas')
); ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>ZGV Master Ort: </label>
<?php if ($infoonly):
echo $zgvpruefung->zgvmaort;
else:
?>
<input type="text" class="form-control"
value="<?php echo $zgvpruefung->zgvmaort ?>"
name="zgvmaort">
<?php endif; ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label>ZGV Master Datum: </label>
<?php if ($infoonly):
echo date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y');
else:
?>
<input type="text"
class="dateinput form-control"
value="<?php echo empty($zgvpruefung->zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y') ?>"
name="zgvmadatum">
<?php endif; ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group"><label>ZGV Master
Nation: </label>
<?php
if ($infoonly)
echo $zgvpruefung->zgvmanation_bez;
else
echo $this->widgetlib->widget(
'Nation_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmanation_code),
array('name' => 'zgvmanation', 'id' => 'zgvmanation')
); ?>
</div>
</div>
</div>
<!-- show only master zgv if master studiengang - end -->
<?php endif; ?>
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-lg-12 text-right">
<button type="submit" class="btn btn-default">
Speichern
</button>
</div>
</div>
<?php endif; ?>
</form>
</div>
<?php
//Prestudenten cannot be abgewiesen or freigegeben if already done
if (!$infoonly) :
?>
<div class="panel-footer" style="border-top: 1px solid #ddd">
<div class="row">
<div class="col-lg-6 text-left">
<div class="form-inline">
<form method="post"
action="../saveAbsage/<?php echo $zgvpruefung->prestudent_id ?>">
<div class="input-group" id="statusgrselect">
<select name="statusgrund"
class="d-inline float-right"
required>
<option value="null"
selected="selected">Absagegrund
w&auml;hlen...
</option>
<?php foreach ($statusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button id="absageBtn" type="button"
class="btn btn-default"
data-toggle="modal"
data-target="#absageModal">
Absage
</button>
</span>
</div>
<div class="modal fade" id="absageModal"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel">Absage
best&auml;tigen</h4>
</div>
<div class="modal-body">
Bei Absage von InteressentInnen
erhalten
diese den Status "Abgewiesener"
und<br/>deren
Zgvdaten können
im Infocenter nicht mehr
bearbeitet
oder
freigegeben werden.
<br/>Alle nicht gespeicherten
Zgvdaten
gehen
verloren. Fortfahren?
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
Abbrechen
</button>
<button type="submit"
class="btn btn-primary">
InteressentIn abweisen
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
</form>
</div>
</div><!-- /.column-absage -->
<div class="col-lg-6 text-right">
<div>
<button type="button" class="btn btn-default"
data-toggle="modal"
data-target="#freigabeModal">
Freigabe an Studiengang
</button>
</div>
</div>
<div class="modal fade" id="freigabeModal" tabindex="-1"
role="dialog"
aria-labelledby="freigabeModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal"
aria-hidden="true">&times;
</button>
<h4 class="modal-title"
id="freigabeModalLabel">
Freigabe
best&auml;tigen</h4>
</div>
<div class="modal-body">
Bei Freigabe von InteressentInnen wird deren
Interessentenstatus bestätigt und<br/>deren
Zgvdaten
können im
Infocenter nicht mehr bearbeitet oder
freigegeben
werden.
<br/>Alle nicht gespeicherten Zgvdaten gehen
verloren.
Fortfahren?
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">Abbrechen
</button>
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>">
<button type="button"
class="btn btn-primary">
InteressentIn freigeben
</button>
</a>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
</div><!-- /.row -->
</div><!-- /.panel-footer -->
<?php elseif (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?>
<div class="panel-footer" style="border-top: 1px solid #ddd">
<div class="row">
<div class="col-lg-12 text-left">
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? '<i class="fa fa-check" style="color: green"></i>' : '<i class="fa fa-check" style="color: red"></i>' ?>
<label>An Studiengang freigegeben</label>
</div>
</div><!-- /.row -->
</div><!-- /.panel-footer -->
<?php endif; //end if infoonly
?>
</div><!-- /.div collapse -->
</div><!-- /.panel -->
<?php endforeach; // end foreach zgvpruefungen?>
</div><!-- /.panel-group -->
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
</div><!-- /.main panel body -->
</div> <!-- /.main panel-->
</div> <!-- /.column freigabe-->
</div> <!-- /.row freigabe-->
</section>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="Nachrichten"></a>
<h4 class="text-center">Nachrichten</h4>
</div>
<div class="panel-body">
<div class="row">
<?php
$this->load->view('system/messageList.php', $messages);
?>
</div>
</div>
</div>
</div>
</div>
</section>
<section>
<div class="row">
<div class="col-lg-12">
@@ -589,62 +107,11 @@ $this->load->view(
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<form method="post" action="../saveNotiz/<?php echo $stammdaten->person_id ?>">
<div class="form-group">
<div class="text-center">
<label>Notiz hinzuf&uuml;gen</label>
</div>
<div class="form-group">
<label>Titel: </label><input type="text" class="form-control"
name="notiztitel"/>
</div>
<div class="form-group">
<label>Text: </label><textarea name="notiz" class="form-control"
rows="10"
cols="32"></textarea>
</div>
<div class="text-right">
<button type="submit" class="btn btn-default">Speichern</button>
</div>
</div>
</form>
<table id="notiztable" class="table table-bordered table-hover">
<thead>
<th>Datum</th>
<th>Notiz</th>
<th>User</th>
</thead>
<tbody>
<?php foreach ($notizen as $notiz): ?>
<tr data-toggle="tooltip"
title="<?php echo isset($notiz->text) ? $notiz->text : '' ?>">
<td><?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?></td>
<td><?php echo html_escape($notiz->titel) ?></td>
<td><?php echo $notiz->verfasser_uid ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<?php $this->load->view('system/infocenter/addNotiz.php'); ?>
<?php $this->load->view('system/infocenter/notizen.php'); ?>
</div>
<div class="col-lg-6">
<table id="logtable" class="table table-bordered table-hover">
<thead>
<th>Datum</th>
<th>Aktivit&auml;t</th>
<th>User</th>
</thead>
<tbody>
<?php foreach ($logs as $log): ?>
<tr data-toggle="tooltip"
title="<?php echo isset($log->logdata->message) ? $log->logdata->message : '' ?>">
<td><?php echo date_format(date_create($log->zeitpunkt), 'd.m.Y H:i:s') ?></td>
<td><?php echo isset($log->logdata->name) ? $log->logdata->name : '' ?></td>
<td><?php echo $log->insertvon ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<?php $this->load->view('system/infocenter/logs.php'); ?>
</div> <!-- ./column -->
</div> <!-- ./row -->
</div> <!-- ./panel-body -->
@@ -658,11 +125,13 @@ $this->load->view(
<script>
$(document).ready(function ()
$(document).ready(
function ()
{
//initialise table sorter
addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]);
addTablesorter("msgtable", [[0, 1], [2, 0]], ["zebra", "filter"]);
addTablesorter("logtable", [[0, 1]], ["filter"]);
addTablesorter("notiztable", [[0, 1]], ["filter"]);
@@ -670,68 +139,12 @@ $this->load->view(
togglePager(23, "logtable", "logpager");
togglePager(10, "notiztable", "notizpager");
function addTablesorter(tableid, sortList, widgets)
{
$("#" + tableid).tablesorter(
{
theme: "default",
dateFormat: "ddmmyyyy",
sortList: sortList,
widgets: widgets
}
);
//hide filters if less than 2 datarows (+ 2 for headings and filter row itself)
if ($("#" + tableid + " tr").length < 4)
{
$("#" + tableid + " tr.tablesorter-filter-row").hide();
}
}
function togglePager(size, tableid, pagerid)
{
var html =
'<div id="' + pagerid + '" class="pager"> ' +
'<form class="form-inline">' +
'<i class="fa fa-step-backward first"></i>&nbsp;' +
'<i class="fa fa-backward prev"></i>' +
'<span class="pagedisplay"></span>' +
'<i class="fa fa-forward next"></i>&nbsp;' +
'<i class="fa fa-step-forward last"></i>' +
'</form>' +
'</div>';
var rowcount = $("#" + tableid + " tr").length;
//not show pager if on first table page
if (rowcount > size)
{
var table = $("#" + tableid);
table.after(html);
table.tablesorterPager(
{
container: $("#" + pagerid),
size: size,
cssDisabled: 'disabled',
savePages: false,
output: '{startRow} {endRow} / {totalRows} Zeilen'
}
);
}
}
//initialise datepicker
$.datepicker.setDefaults($.datepicker.regional['de']);
$(".dateinput").datepicker({
"dateFormat": "dd.mm.yy"
});
//javascript hack - not nice!
$("select").addClass('form-control');
$("table").addClass('table-condensed');
$("#logtable, #notiztable").addClass('table-hover');
//add click events to "formal geprüft" checkboxes
<?php foreach($dokumente as $dokument): ?>
@@ -762,6 +175,57 @@ $this->load->view(
);
}
);
function addTablesorter(tableid, sortList, widgets)
{
$("#" + tableid).tablesorter(
{
theme: "default",
dateFormat: "ddmmyyyy",
sortList: sortList,
widgets: widgets
}
);
//hide filters if less than 2 datarows (+ 2 for headings and filter row itself)
if ($("#" + tableid + " tr").length < 4)
{
$("#" + tableid + " tr.tablesorter-filter-row").hide();
}
}
function togglePager(size, tableid, pagerid)
{
var html =
'<div id="' + pagerid + '" class="pager"> ' +
'<form class="form-inline">' +
'<i class="fa fa-step-backward first"></i>&nbsp;' +
'<i class="fa fa-backward prev"></i>' +
'<span class="pagedisplay"></span>' +
'<i class="fa fa-forward next"></i>&nbsp;' +
'<i class="fa fa-step-forward last"></i>' +
'</form>' +
'</div>';
var rowcount = $("#" + tableid + " tr").length;
//not show pager if on first table page
if (rowcount > size)
{
var table = $("#" + tableid);
table.after(html);
table.tablesorterPager(
{
container: $("#" + pagerid),
size: size,
cssDisabled: 'disabled',
savePages: false,
output: '{startRow} {endRow} / {totalRows} Zeilen'
}
);
}
}
</script>
</body>
@@ -0,0 +1,19 @@
<table id="logtable" class="table table-bordered table-hover">
<thead>
<tr>
<th>Datum</th>
<th>Aktivit&auml;t</th>
<th>User</th>
</tr>
</thead>
<tbody>
<?php foreach ($logs as $log): ?>
<tr data-toggle="tooltip"
title="<?php echo isset($log->logdata->message) ? $log->logdata->message : '' ?>">
<td><?php echo date_format(date_create($log->zeitpunkt), 'd.m.Y H:i:s') ?></td>
<td><?php echo isset($log->logdata->name) ? $log->logdata->name : '' ?></td>
<td><?php echo $log->insertvon ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
@@ -0,0 +1,19 @@
<table id="notiztable" class="table table-bordered table-hover">
<thead>
<tr>
<th>Datum</th>
<th>Notiz</th>
<th>User</th>
</tr>
</thead>
<tbody>
<?php foreach ($notizen as $notiz): ?>
<tr data-toggle="tooltip"
title="<?php echo isset($notiz->text) ? strip_tags($notiz->text) : '' ?>">
<td><?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?></td>
<td><?php echo html_escape($notiz->titel) ?></td>
<td><?php echo $notiz->verfasser_uid ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
@@ -0,0 +1,115 @@
<div class="col-lg-6 table-responsive">
<table class="table">
<tr>
<td><strong>Vorname</strong></td>
<td><?php echo $stammdaten->vorname ?></td>
</tr>
<tr>
<td><strong>Nachname</strong></td>
<td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<tr>
<td><strong>Geburtsdatum</strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
</tr>
<tr>
<td><strong>Sozialversicherungsnr</strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
</tr>
<tr>
<td><strong>Staatsb&uuml;rgerschaft</strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
</tr>
<tr>
<td><strong>Geschlecht</strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
</tr>
<tr>
<td><strong>Geburtsnation</strong></td>
<td>
<?php echo $stammdaten->geburtsnation ?></td>
</tr>
<tr>
<td><strong>Geburtsort</strong></td>
<td><?php echo $stammdaten->gebort ?></td>
</tr>
</table>
</div>
<div class="col-lg-6 table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th colspan="4" class="text-center">Kontakte</th>
</tr>
<tr>
<th class="text-center">Typ</th>
<th class="text-center">Kontakt</th>
<th class="text-center">Anmerkung</th>
</tr>
</thead>
<tbody>
<?php foreach ($stammdaten->kontakte as $kontakt): ?>
<tr>
<td><?php echo ucfirst($kontakt->kontakttyp); ?></td>
<td>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php
endif;
echo $kontakt->kontakt;
if ($kontakt->kontakttyp === 'email'):
?>
</a>
<?php endif; ?>
</td>
<td><?php echo $kontakt->anmerkung; ?></td>
</tr>
<?php endforeach; ?>
<?php foreach ($stammdaten->adressen as $adresse): ?>
<tr>
<td>
Adresse
</td>
<td>
<?php echo isset($adresse) ? $adresse->strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
</td>
<td>
<?php echo ($adresse->heimatadresse === true ? 'Heimatadresse' : '').($adresse->heimatadresse === true && $adresse->rechnungsadresse === true ? ', ' : '').($adresse->rechnungsadresse === true ? 'Rechnungsadresse' : ''); ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="row">
<div class="col-lg-6">
<form id="sendmsgform" method="post" action="<?php echo $messagelink ?>"
target="_blank">
<input type="hidden" name="person_id"
value="<?php echo $stammdaten->person_id ?>">
<a id="sendmsglink" href="javascript:void(0);"><i
class="fa fa-envelope"></i>&nbsp;Nachricht senden</a>
</form>
</div>
<?php if (isset($stammdaten->zugangscode)): ?>
<div class="col-lg-6 text-right">
<a href="<?php echo base_url('addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode)) ?>"
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;Zugang Bewerbung</a>
</div>
<?php endif; ?>
</div>
</div>
<script>
//add submit event to message send link
$("#sendmsglink").click(
function ()
{
$("#sendmsgform").submit();
}
);
</script>
@@ -0,0 +1,347 @@
<div class="panel-group">
<?php
foreach ($zgvpruefungen as $zgvpruefung):
$infoonly = $zgvpruefung->infoonly;
//set bootstrap columns
$columns = array(4, 3, 2, 3);
?>
<br/>
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-lg-8">
<h4 class="panel-title">
<a data-toggle="collapse"
href="#collapse<?php echo $zgvpruefung->prestudent_id ?>"><?php echo $zgvpruefung->studiengang.' - '.$zgvpruefung->studiengangbezeichnung.' | '.(isset($zgvpruefung->prestudentstatus->status_kurzbz) ? $zgvpruefung->prestudentstatus->status_kurzbz : '');
?></a>
</h4>
</div>
<?php if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent' && !$infoonly): ?>
<div class="col-lg-4 text-right">
<?php echo 'Bewerbung abgeschickt: '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check" style="color:green"></i>' : '<i class="fa fa-times" style="color:red"></i>'); ?>
</div>
<?php endif ?>
</div>
</div>
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
class="panel-collapse collapse<?php echo $infoonly ? '' : ' in' ?>">
<div class="panel-body">
<form method="post"
action="../saveZgvPruefung/<?php echo $zgvpruefung->prestudent_id ?>">
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group">
<label>Letzter Status: </label>
<?php
if (isset($zgvpruefung->prestudentstatus->status_kurzbz))
{
echo $zgvpruefung->prestudentstatus->status_kurzbz.(isset($zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0]) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Abgewiesener' ? ' ('.$zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0].')' : '');
}
?>
</div>
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>Studiensemester: </label>
<?php echo isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz) ? $zgvpruefung->prestudentstatus->studiensemester_kurzbz : '' ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label><span style="display: inline-block">Ausbildungs</span><span
style="display: inline-block">semester: </span></label>
<?php echo isset($zgvpruefung->prestudentstatus->ausbildungssemester) ? $zgvpruefung->prestudentstatus->ausbildungssemester : '' ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group">
<label>Orgform: </label>
<span style="display: inline-block">
<?php
$separator = (isset($zgvpruefung->prestudentstatus->orgform)) ? ', ' : '';
echo (isset($zgvpruefung->prestudentstatus->orgform) ? $zgvpruefung->prestudentstatus->orgform : '')
.(isset($zgvpruefung->prestudentstatus->sprachedetails->bezeichnung) ? $separator.$zgvpruefung->prestudentstatus->sprachedetails->bezeichnung[0] : '')
.(isset($zgvpruefung->prestudentstatus->alternative) ? ' ('.$zgvpruefung->prestudentstatus->alternative.')' : '') ?>
</span>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group">
<label>ZGV: </label>
<?php if ($infoonly)
echo $zgvpruefung->zgv_bez;
else
echo $this->widgetlib->widget(
'Zgv_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code),
array('name' => 'zgv', 'id' => 'zgv')
); ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>ZGV Ort: </label>
<?php if ($infoonly):
echo html_escape($zgvpruefung->zgvort);
else:
?>
<input type="text" class="form-control"
value="<?php echo $zgvpruefung->zgvort ?>"
name="zgvort">
<?php endif; ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label>ZGV Datum: </label>
<?php if ($infoonly):
echo date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y');
else:
?>
<input type="text"
class="dateinput form-control"
value="<?php echo empty($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y') ?>"
name="zgvdatum">
<?php endif; ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group">
<label>ZGV Nation: </label>
<?php if ($infoonly)
echo $zgvpruefung->zgvnation_bez;
else
echo $this->widgetlib->widget(
'Nation_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvnation_code),
array('name' => 'zgvnation', 'id' => 'zgvnation')
); ?>
</div>
</div>
</div>
<!-- show only master zgv if master studiengang - start -->
<?php if ($zgvpruefung->studiengangtyp === 'm') : ?>
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group"><label>ZGV Master: </label>
<?php
if ($infoonly)
echo $zgvpruefung->zgvmas_bez;
else
echo $this->widgetlib->widget(
'Zgvmaster_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmas_code),
array('name' => 'zgvmas', 'id' => 'zgvmas')
); ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>ZGV Master Ort: </label>
<?php if ($infoonly):
echo $zgvpruefung->zgvmaort;
else:
?>
<input type="text" class="form-control"
value="<?php echo $zgvpruefung->zgvmaort ?>"
name="zgvmaort">
<?php endif; ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label>ZGV Master Datum: </label>
<?php if ($infoonly):
echo date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y');
else:
?>
<input type="text"
class="dateinput form-control"
value="<?php echo empty($zgvpruefung->zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y') ?>"
name="zgvmadatum">
<?php endif; ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group"><label>ZGV Master
Nation: </label>
<?php
if ($infoonly)
echo $zgvpruefung->zgvmanation_bez;
else
echo $this->widgetlib->widget(
'Nation_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmanation_code),
array('name' => 'zgvmanation', 'id' => 'zgvmanation')
); ?>
</div>
</div>
</div>
<!-- show only master zgv if master studiengang - end -->
<?php endif; ?>
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-lg-12 text-right">
<button type="submit" class="btn btn-default">
Speichern
</button>
</div>
</div>
<?php endif; ?>
</form>
</div>
<?php
//Prestudenten cannot be abgewiesen or freigegeben if already done
if (!$infoonly) :
?>
<div class="panel-footer" style="border-top: 1px solid #ddd">
<div class="row">
<div class="col-lg-6 text-left">
<div class="form-inline">
<form method="post"
action="../saveAbsage/<?php echo $zgvpruefung->prestudent_id ?>">
<div class="input-group" id="statusgrselect">
<select name="statusgrund"
class="d-inline float-right"
required>
<option value="null"
selected="selected">Absagegrund
w&auml;hlen...
</option>
<?php foreach ($statusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button id="absageBtn" type="button"
class="btn btn-default"
data-toggle="modal"
data-target="#absageModal">
Absage
</button>
</span>
</div>
<div class="modal fade" id="absageModal"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel">Absage
best&auml;tigen</h4>
</div>
<div class="modal-body">
Bei Absage von InteressentInnen
erhalten
diese den Status "Abgewiesener"
und<br/>deren
Zgvdaten können
im Infocenter nicht mehr
bearbeitet
oder
freigegeben werden.
<br/>Alle nicht gespeicherten
Zgvdaten
gehen
verloren. Fortfahren?
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
Abbrechen
</button>
<button type="submit"
class="btn btn-primary">
InteressentIn abweisen
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
</form>
</div>
</div><!-- /.column-absage -->
<div class="col-lg-6 text-right">
<div>
<button type="button" class="btn btn-default"
data-toggle="modal"
data-target="#freigabeModal">
Freigabe an Studiengang
</button>
</div>
</div>
<div class="modal fade" id="freigabeModal" tabindex="-1"
role="dialog"
aria-labelledby="freigabeModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal"
aria-hidden="true">&times;
</button>
<h4 class="modal-title"
id="freigabeModalLabel">
Freigabe
best&auml;tigen</h4>
</div>
<div class="modal-body">
Bei Freigabe von InteressentInnen wird deren
Interessentenstatus bestätigt und<br/>deren
Zgvdaten
können im
Infocenter nicht mehr bearbeitet oder
freigegeben
werden.
<br/>Alle nicht gespeicherten Zgvdaten gehen
verloren.
Fortfahren?
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">Abbrechen
</button>
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>">
<button type="button"
class="btn btn-primary">
InteressentIn freigeben
</button>
</a>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
</div><!-- /.row -->
</div><!-- /.panel-footer -->
<?php elseif (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?>
<div class="panel-footer" style="border-top: 1px solid #ddd">
<div class="row">
<div class="col-lg-12 text-left">
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? '<i class="fa fa-check" style="color: green"></i>' : '<i class="fa fa-check" style="color: red"></i>' ?>
<label>An Studiengang freigegeben</label>
</div>
</div><!-- /.row -->
</div><!-- /.panel-footer -->
<?php endif; //end if infoonly
?>
</div><!-- /.div collapse -->
</div><!-- /.panel -->
<?php endforeach; // end foreach zgvpruefungen?>
</div><!-- /.panel-group -->
+97
View File
@@ -0,0 +1,97 @@
<?php
$msgExists = count($messages) > 0;
$widthColumn = $msgExists === true ? 8 : 12;
?>
<div class="col-lg-<?php echo $widthColumn ?>">
<table id="msgtable" class="table table-bordered table-condensed tablesort-hover tablesort-active">
<thead>
<tr>
<th>Gelesen am</th>
<th>Sender</th>
<th>Empf&auml;nger</th>
<th>Betreff</th>
<th>Gelesen am</th>
</tr>
</thead>
<tbody>
<?php foreach ($messages as $message): ?>
<tr id="<?php echo $message->message_id.'_'.$message->repersonid ?>" style="cursor: pointer">
<td><?php echo isset($message->insertamum) ? date_format(date_create($message->insertamum), 'd.m.Y H:i:s') : '' ?></td>
<td><?php echo $message->sevorname.' '.$message->senachname ?></td>
<td><?php echo $message->revorname.' '.$message->renachname ?></td>
<td><?php echo $message->subject ?></td>
<td><?php echo isset($message->statusamum) ? date_format(date_create($message->statusamum), 'd.m.Y H:i:s') : '' ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php if ($msgExists === true): ?>
<div class="col-lg-4">
<br>
<div class="text-center"><label for="msgbody" id="msgsubject"></label></div>
<div>
<textarea id="msgbody"></textarea>
</div>
</div>
<?php endif; ?>
<script>
tinymce.init({
menubar: false,
toolbar: false,
readonly: 1,
selector: "#msgbody",
statusbar: false,
plugins: "autoresize",
//callback to avoid conflict with ajax (for getting body of first message)
init_instance_callback: "initMsgBody"
});
function initMsgBody()
{
var tblrows = $("#msgtable tbody tr");
if (tblrows.length > 0)
{
//in the begging last sent message is shown
var firstelement = tblrows.first();
var id = firstelement.attr('id');
getMsgBody(id);
firstelement.find("td").addClass("tablesort-active");
//add click event on message table for message preview
tblrows.click(
function ()
{
$("#msgtable").find("td").removeClass("tablesort-active");
$(this).find("td").addClass("tablesort-active");
getMsgBody(this.id);
}
);
}
}
//retrieve message data from message and reiver id via AJAX
function getMsgBody(id)
{
var msgid = id.substr(0, id.indexOf('_'));
var recid = id.substr(id.indexOf('_') + 1);
$.ajax(
{
dataType: "json",
url: "<?php echo base_url("/index.ci.php/system/Messages/getMessageFromIds/") ?>" + msgid + "/" + recid,
success: function (data, textStatus, jqXHR)
{
$("#msgsubject").text(data[0].subject);
tinyMCE.get("msgbody").setContent(data[0].body);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
}
)
}
</script>
+284 -246
View File
@@ -1,20 +1,48 @@
<?php $this->load->view("templates/header", array("title" => "MessageReply", "jqueryV1" => true, "tinymce" => true)); ?>
<body>
<?php
$href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER["REQUEST_URI"]);
?>
<form id="sendForm" method="post" action="<?php echo $href; ?>">
<table>
<tr>
<td>
<strong>To:</strong>
</td>
<td>
<?php
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'MessageReply',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
'tinymce' => true,
'sbadmintemplate' => true,
'customCSSs' => 'skin/admintemplate_contentonly.css',
'customJSs' => 'include/js/bootstrapper.js'
)
);
?>
<body>
<style>
input[type=text] {
height: 28px;
padding: 0px;
}
.msgfield label {
margin-bottom: 0px !important;
margin-top: 3px;
}
</style>
<?php
$href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER["REQUEST_URI"]);
?>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">Send Message</h3>
</div>
</div>
<form id="sendForm" method="post" action="<?php echo $href; ?>">
<div class="row">
<div class="form-group">
<div class="col-lg-1">
<label>To:</label>
</div>
<div class="col-lg-11">
<?php
for ($i = 0; $i < count($receivers); $i++)
{
$receiver = $receivers[$i];
@@ -23,264 +51,274 @@
{
echo '<br>';
}
echo $receiver->Vorname . " " . $receiver->Nachname . "; ";
echo $receiver->Vorname." ".$receiver->Nachname."; ";
}
?>
</td>
</tr>
<tr>
<td height="3px"></td>
</tr>
<tr>
<td>
<strong>Subject:</strong>&nbsp;
</td>
<td>
?>
</div>
</div>
</div>
<div class="row">
<div class="form-group form-inline">
<div class="col-lg-1 msgfield">
<label>Subject:</label>
</div>&nbsp;
<?php
$subject = '';
if (isset($message))
{
$subject = 'Re: '.$message->subject;
}
$subject = '';
if (isset($message))
{
$subject = 'Re: '.$message->subject;
}
?>
<input id="subject" type="text" value="<?php echo $subject; ?>" name="subject" size="70">
</td>
</tr>
</table>
<table width="100%">
<tr>
<td width="80%">
<strong>Message:</strong><br>
<div class="col-lg-10">
<input id="subject" class="form-control" type="text" value="<?php echo $subject; ?>"
name="subject" size="70">
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-lg-10">
<label>Message:</label>
<?php
$body = '';
if (isset($message))
{
$body = $message->body;
}
$body = '';
if (isset($message))
{
$body = $message->body;
}
?>
<textarea id="bodyTextArea" name="body"><?php echo $body; ?></textarea>
</td>
<td width="3%">&nbsp;</td>
<td width="17%">
<?php
if (isset($variables))
{
</div>
<?php
if (isset($variables)):
?>
<div>
<strong>Variables:</strong><br>
<select id="variables" size="14" style="min-width:200px;">
<?php
foreach($variables as $key => $val)
<div class="col-lg-2">
<div class="form-group">
<label>Variables:</label>
<select id="variables" class="form-control" size="14" multiple="multiple">
<?php
foreach ($variables as $key => $val)
{
?>
?>
<option value="<?php echo $key; ?>"><?php echo $val; ?></option>
<?php
<?php
}
?>
?>
</select>
</div>
<?php
}
?>
</td>
</tr>
</table>
<table>
<tr>
<td>
<?php
echo $this->widgetlib->widget(
'Vorlage_widget',
array('oe_kurzbz' => $oe_kurzbz, 'isAdmin' => $isAdmin),
array('name' => 'vorlage', 'id' => 'vorlageDnD')
);
?>
</td>
<td>
&nbsp;
</td>
<td>
<button id="sendButton" type="button">Send</button>
</td>
</tr>
</table>
<br>
<?php
if (isset($receivers) && count($receivers) > 0)
{
?>
<div>
Preview:
</div>
<?php endif; ?>
</div>
<div style="border: 1px; border-style: solid;">
<table width="100%" style="margin: 3px;">
<tr>
<td>
<strong>Recipient:</strong>
<select id="recipients">
<option value="-1">Select...</option>
<?php
foreach($receivers as $receiver)
{
?>
<option value="<?php echo $receiver->prestudent_id; ?>"><?php echo $receiver->Nachname . " " . $receiver->Vorname; ?></option>
<?php
}
?>
</select>
&nbsp;
<strong><a href="#" id="refresh">Refresh</a></strong>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td width="100%">
<textarea id="tinymcePreview"></textarea>
</td>
</tr>
</table>
<br>
<div class="row">
<div class="col-lg-3 text-right">
<?php
echo $this->widgetlib->widget(
'Vorlage_widget',
array('oe_kurzbz' => $oe_kurzbz, 'isAdmin' => $isAdmin),
array('name' => 'vorlage', 'id' => 'vorlageDnD')
);
?>
</div>
<div class="col-lg-offset-6 col-lg-1 text-right">
<button id="sendButton" class="btn btn-default" type="button">Send</button>
</div>
</div>
<?php
}
?>
<?php if (isset($receivers) && count($receivers) > 0): ?>
<hr>
<div class="row">
<div class="col-lg-12">
<label>Preview:</label>
</div>
</div>
<div class="well">
<div class="row">
<div class="col-lg-5">
<div class="form-grop form-inline">
<label>Recipient:</label>
<select id="recipients">
<option value="-1">Select...</option>
<?php
$idtype = $personOnly === true ? 'person_id' : 'prestudent_id';
foreach ($receivers as $receiver)
{
?>
<option value="<?php echo $receiver->{$idtype}; ?>"><?php echo $receiver->Vorname." ".$receiver->Nachname; ?></option>
<?php
}
?>
</select>
&nbsp;
<strong><a href="#" id="refresh">Refresh</a></strong>
</div>
</div>
<div class="col-lg-2">
<?php
for($i = 0; $i < count($receivers); $i++)
</div>
</div>
<br>
<textarea id="tinymcePreview"></textarea>
</div>
<?php
endif;
?>
<?php
for ($i = 0; $i < count($receivers); $i++)
{
$receiver = $receivers[$i];
echo '<input type="hidden" name="prestudents[]" value="' . $receiver->prestudent_id . '">' . "\n";
}
?>
<?php
if (isset($message))
{
?>
<input type="hidden" name="relationmessage_id" value="<?php echo $message->message_id; ?>">
<?php
}
?>
</form>
<script>
tinymce.init({
selector: "#bodyTextArea"
});
tinymce.init({
menubar: false,
toolbar: false,
readonly: 1,
selector: "#tinymcePreview",
statusbar: true
});
$(document).ready(function() {
if ($("#variables"))
{
$("#variables").dblclick(function() {
if ($("#bodyTextArea"))
if ($personOnly === true)
{
tinyMCE.get("bodyTextArea").setContent(tinyMCE.get("bodyTextArea").getContent() + $(this).children(":selected").val());
}
});
}
if ($("#recipients"))
{
$("#recipients").change(tinymcePreviewSetContent);
}
if ($("#refresh"))
{
$("#refresh").click(tinymcePreviewSetContent);
}
if ($("#sendButton") && $("#sendForm"))
{
$("#sendButton").click(function() {
if ($("#subject") && $("#subject").val() != '' && tinyMCE.get("bodyTextArea").getContent() != '')
{
$("#sendForm").submit();
$receiverid = $receiver->person_id;
$fieldname = 'persons[]';
}
else
{
alert("Subject and text are required fields!");
$receiverid = $receiver->prestudent_id;
$fieldname = 'prestudents[]';
}
});
}
if ($("#vorlageDnD"))
{
$("#vorlageDnD").change(function() {
if (this.value != '')
{
<?php
$url = str_replace("/system/Messages/write", "/system/Messages/getVorlage", $_SERVER["REQUEST_URI"]);
?>
$.ajax({
dataType: "json",
url: "<?php echo $url; ?>",
data: {"vorlage_kurzbz": this.value},
success: function(data, textStatus, jqXHR) {
tinyMCE.get("bodyTextArea").setContent(data.retval[0].text);
$("#subject").val(data.retval[0].subject);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown);
}
});
}
});
}
});
function tinymcePreviewSetContent()
{
if ($("#tinymcePreview"))
{
if ($("#recipients").children(":selected").val() > -1)
{
parseMessageText($("#recipients").children(":selected").val(), tinyMCE.get("bodyTextArea").getContent());
echo '<input type="hidden" name="'.$fieldname.'" value="'.$receiverid.'">'."\n";
}
else
?>
<?php
if (isset($message))
{
tinyMCE.get("tinymcePreview").setContent("");
?>
<input type="hidden" name="relationmessage_id" value="<?php echo $message->message_id; ?>">
<?php
}
}
}
?>
function parseMessageText(prestudent_id, text)
</form>
</div>
</div>
</div>
<script>
tinymce.init({
selector: "#bodyTextArea",
height: 155
});
tinymce.init({
menubar: false,
toolbar: false,
readonly: 1,
selector: "#tinymcePreview",
statusbar: true,
plugins: "autoresize"
});
$(document).ready(function ()
{
if ($("#variables"))
{
<?php
$url = str_replace("/system/Messages/write", "/system/Messages/parseMessageText", $_SERVER["REQUEST_URI"]);
$url = substr($url, 0, strrpos($url, '/'));
?>
$.ajax({
dataType: "json",
url: "<?php echo $url; ?>",
data: {"prestudent_id": prestudent_id, "text" : text},
success: function(data, textStatus, jqXHR) {
tinyMCE.get("tinymcePreview").setContent(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
$("#variables").dblclick(function ()
{
if ($("#bodyTextArea"))
{
//if editor active add at cursor position, otherwise at end
if (tinymce.activeEditor.id === "bodyTextArea")
tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).children(":selected").val());
else
tinyMCE.get("bodyTextArea").setContent(tinyMCE.get("bodyTextArea").getContent() + $(this).children(":selected").val());
}
});
}
</script>
</body>
if ($("#recipients"))
{
$("#recipients").change(tinymcePreviewSetContent);
}
<?php $this->load->view("templates/footer"); ?>
if ($("#refresh"))
{
$("#refresh").click(tinymcePreviewSetContent);
}
if ($("#sendButton") && $("#sendForm"))
{
$("#sendButton").click(function ()
{
if ($("#subject") && $("#subject").val() != '' && tinyMCE.get("bodyTextArea").getContent() != '')
{
$("#sendForm").submit();
}
else
{
alert("Subject and text are required fields!");
}
});
}
if ($("#vorlageDnD"))
{
$("#vorlageDnD").change(function ()
{
if (this.value != '')
{
<?php
$url = str_replace("/system/Messages/write", "/system/Messages/getVorlage", $_SERVER["REQUEST_URI"]);
?>
$.ajax({
dataType: "json",
url: "<?php echo $url; ?>",
data: {"vorlage_kurzbz": this.value},
success: function (data, textStatus, jqXHR)
{
tinyMCE.get("bodyTextArea").setContent(data.retval[0].text);
$("#subject").val(data.retval[0].subject);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus + " - " + errorThrown);
}
});
}
});
}
});
function tinymcePreviewSetContent()
{
if ($("#tinymcePreview"))
{
if ($("#recipients").children(":selected").val() > -1)
{
parseMessageText($("#recipients").children(":selected").val(), tinyMCE.get("bodyTextArea").getContent());
}
else
{
tinyMCE.get("tinymcePreview").setContent("");
}
}
}
function parseMessageText(receiver_id, text)
{
<?php
//replacing url (can have sender id at end)
$url = preg_replace("/\/system\/Messages\/write(\/.*)?/", "/system/Messages/parseMessageText", $_SERVER["REQUEST_URI"]);
$idtype = $personOnly === true ? 'person_id' : 'prestudent_id';
?>
$.ajax({
dataType: "json",
url: "<?php echo $url; ?>",
data: {"<?php echo $idtype ?>": receiver_id, "text": text},
success: function (data, textStatus, jqXHR)
{
tinyMCE.get("tinymcePreview").setContent(data);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
});
}
</script>
</body>
<?php $this->load->view("templates/FHC-Footer"); ?>
@@ -13,6 +13,7 @@ $jqueryui = isset($jqueryui) ? $jqueryui : false;
$bootstrap = isset($bootstrap) ? $bootstrap : false;
$fontawesome = isset($fontawesome) ? $fontawesome : false;
$tablesorter = isset($tablesorter) ? $tablesorter : false;
$tinymce = isset($tinymce) ? $tinymce : false;
$sbadmintemplate = isset($sbadmintemplate) ? $sbadmintemplate : false;
/**
@@ -131,6 +132,9 @@ function _generateJSsInclude($JSs)
_generateJSsInclude('vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js');
_generateJSsInclude('vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js');
}
//tinymce JS
if($tinymce === true) _generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js') ;
// sb admin template JS
if ($sbadmintemplate === true)
{
+17 -14
View File
@@ -1,16 +1,13 @@
<style>
.filters-hidden-panel {
margin: 0 10px 10px 10px;
}
</style>
<script language="Javascript" type="text/javascript">
$(document).ready(function() {
// Checks if the table contains data (rows)
if ($('#tableDataset').find('tbody:empty').length == 0
&& $('#tableDataset').find('tr:empty').length == 0)
{
$("#tableDataset").tablesorter(
{
widgets: ["zebra", "filter"]
});
}
$("#addField").change(function() {
$("#filterForm").submit();
});
@@ -49,6 +46,10 @@
$("#filterForm").submit();
});
$("#applyFilter").click(function() {
$("#filterForm").submit();
});
});
</script>
<div class="row">
@@ -58,23 +59,25 @@
<?php FilterWidget::loadViewSelectFields($listFields); ?>
</div>
<br>
<div>
<?php FilterWidget::loadViewSelectFilters($metaData); ?>
</div>
<br>
<div>
<?php FilterWidget::loadViewSaveFilter(); ?>
</div>
<br>
<div id="datasetActionsTop">
</div>
<div>
<?php FilterWidget::loadViewTableDataset($dataset); ?>
</div>
<div id="datasetActionsBottom">
</div>
</form>
</div>
</div>
@@ -1,5 +1,5 @@
<div>
Filter short description: <input type="text" id="customFilterKurzbz" name="customFilterKurzbz" value="">
Filter description: <input type="text" id="customFilterDescription" name="customFilterDescription" value="">
</div>
<div>
<input type="button" id="saveCustomFilterButton" value="Save filter">
@@ -1,33 +1,63 @@
<div>
<?php
$selectedFields = FilterWidget::getSelectedFields();
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" href="#collapseSelectFields">Select columns</a>
</h4>
</div>
<div id="collapseSelectFields" class="panel-collapse collapse">
<div class="filters-hidden-panel">
<div>
<?php
$selectedFields = FilterWidget::getSelectedFields();
$columnsAliases = FilterWidget::getColumnsAliases();
for ($selectedFieldsCounter = 0; $selectedFieldsCounter < count($selectedFields); $selectedFieldsCounter++)
{
$selectedField = $selectedFields[$selectedFieldsCounter];
?>
<input type="button" value="<?php echo $selectedField; ?> X" class="remove-field" fieldToRemove="<?php echo $selectedField; ?>">
<?php
}
?>
<input type="hidden" id="<?php echo FilterWidget::CMD_REMOVE_FIELD; ?>" name="<?php echo FilterWidget::CMD_REMOVE_FIELD; ?>" value="">
</div>
<div>
<span>
Add field:
</span>
<span>
<select id="<?php echo FilterWidget::CMD_ADD_FIELD; ?>" name="<?php echo FilterWidget::CMD_ADD_FIELD; ?>">
<option value="">Select a field to add..</option>
<?php
for ($listFieldsCounter = 0; $listFieldsCounter < count($listFields); $listFieldsCounter++)
{
$listField = $listFields[$listFieldsCounter];
?>
<option value="<?php echo $listField; ?>"><?php echo $listField; ?></option>
<?php
}
?>
</select>
</span>
</div>
for ($selectedFieldsCounter = 0; $selectedFieldsCounter < count($selectedFields); $selectedFieldsCounter++)
{
$selectedField = $selectedFields[$selectedFieldsCounter];
$selectedFieldAlias = $selectedField;
if ($columnsAliases != null)
{
$indx = array_search($selectedField, $listFields);
if ($indx !== false)
{
$selectedFieldAlias = $columnsAliases[$indx];
}
}
?>
<input type="button" value="<?php echo $selectedFieldAlias; ?> X" class="remove-field" fieldToRemove="<?php echo $selectedField; ?>">
<?php
}
?>
<input type="hidden" id="<?php echo FilterWidget::CMD_REMOVE_FIELD; ?>" name="<?php echo FilterWidget::CMD_REMOVE_FIELD; ?>" value="">
</div>
<div>
<span>
Add field:
</span>
<span>
<select id="<?php echo FilterWidget::CMD_ADD_FIELD; ?>" name="<?php echo FilterWidget::CMD_ADD_FIELD; ?>">
<option value="">Select a field to add..</option>
<?php
for ($listFieldsCounter = 0; $listFieldsCounter < count($listFields); $listFieldsCounter++)
{
$listField = $listFields[$listFieldsCounter];
$listFieldAlias = $listField;
if ($columnsAliases != null)
{
$listFieldAlias = $columnsAliases[$listFieldsCounter];
}
?>
<option value="<?php echo $listField; ?>"><?php echo $listFieldAlias; ?></option>
<?php
}
?>
</select>
</span>
</div>
</div>
</div>
</div>
</div>
@@ -1,47 +1,82 @@
<div>
<?php
$selectedFilters = FilterWidget::getSelectedFilters();
for ($filtersCounter = 0; $filtersCounter < count($selectedFilters); $filtersCounter++)
{
$selectedFilter = $selectedFilters[$filtersCounter];
$md = FilterWidget::getFilterMetaData($selectedFilter, $metaData);
?>
<div>
<span>
<?php echo $md->name; ?>
</span>
<?php echo FilterWidget::renderFilterType($md); ?>
<span>
<input type="button" value="X" class="remove-filter" filterToRemove="<?php echo $md->name; ?>">
</span>
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" href="#collapseSelectFilters">Select filters</a>
</h4>
</div>
<?php
}
?>
<input type="hidden" id="<?php echo FilterWidget::CMD_REMOVE_FILTER; ?>" name="<?php echo FilterWidget::CMD_REMOVE_FILTER; ?>" value="">
</div>
<div>
<span>
Add filter:
</span>
<span>
<select id="<?php echo FilterWidget::CMD_ADD_FILTER; ?>" name="<?php echo FilterWidget::CMD_ADD_FILTER; ?>">
<option value="">Select a filter to add...</option>
<?php
for ($listFieldsCounter = 0; $listFieldsCounter < count($listFields); $listFieldsCounter++)
{
$field = $listFields[$listFieldsCounter];
?>
<option value="<?php echo $field; ?>"><?php echo $field; ?></option>
<?php
}
?>
</select>
</span>
<div id="collapseSelectFilters" class="panel-collapse collapse">
<div class="filters-hidden-panel">
<div>
<?php
$selectedFilters = FilterWidget::getSelectedFilters();
$columnsAliases = FilterWidget::getColumnsAliases();
for ($filtersCounter = 0; $filtersCounter < count($selectedFilters); $filtersCounter++)
{
$selectedFilter = $selectedFilters[$filtersCounter];
$md = FilterWidget::getFilterMetaData($selectedFilter, $metaData);
$selectedFieldAlias = $md->name;
if ($columnsAliases != null)
{
$indx = array_search($selectedFilter, $listFields);
if ($indx !== false)
{
$selectedFieldAlias = $columnsAliases[$indx];
}
}
?>
<div>
<span>
<?php echo $selectedFieldAlias; ?>
</span>
<?php echo FilterWidget::renderFilterType($md); ?>
<span>
<input type="button" value="X" class="remove-filter" filterToRemove="<?php echo $md->name; ?>">
</span>
</div>
<?php
}
?>
<input type="hidden" id="<?php echo FilterWidget::CMD_REMOVE_FILTER; ?>" name="<?php echo FilterWidget::CMD_REMOVE_FILTER; ?>" value="">
</div>
<div>
<span>
Add filter:
</span>
<span>
<select id="<?php echo FilterWidget::CMD_ADD_FILTER; ?>" name="<?php echo FilterWidget::CMD_ADD_FILTER; ?>">
<option value="">Select a filter to add...</option>
<?php
for ($listFieldsCounter = 0; $listFieldsCounter < count($listFields); $listFieldsCounter++)
{
$field = $listFields[$listFieldsCounter];
$listFieldAlias = $field;
if ($columnsAliases != null)
{
$listFieldAlias = $columnsAliases[$listFieldsCounter];
}
?>
<option value="<?php echo $field; ?>"><?php echo $listFieldAlias; ?></option>
<?php
}
?>
</select>
</span>
<span>
<input id="applyFilter" name="applyFilter" type="button" value="Apply">
</span>
</div>
</div>
</div>
</div>
</div>
@@ -4,6 +4,7 @@
$selectedFields = FilterWidget::getSelectedFields();
$additionalColumns = FilterWidget::getAdditionalColumns();
$checkboxes = FilterWidget::getCheckboxes();
$columnsAliases = FilterWidget::getColumnsAliases();
?>
<div>
@@ -21,8 +22,19 @@
for ($selectedFieldsCounter = 0; $selectedFieldsCounter < count($selectedFields); $selectedFieldsCounter++)
{
$selectedField = $selectedFields[$selectedFieldsCounter];
$selectedFieldAlias = $selectedField;
if ($columnsAliases != null)
{
$indx = array_search($selectedField, $listFields);
if ($indx !== false)
{
$selectedFieldAlias = $columnsAliases[$indx];
}
}
?>
<th title="<?php echo $selectedField; ?>"><?php echo $selectedField; ?></th>
<th title="<?php echo $selectedField; ?>"><?php echo $selectedFieldAlias; ?></th>
<?php
}
?>
+42 -21
View File
@@ -1,8 +1,8 @@
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav" id="side-menu">
<li id="collapseicon" class="text-right" style="cursor: pointer; color: #337ab7"><i
class="fa fa-angle-double-left fa-fw"></i>
<li id="collapseicon" class="text-right" style="cursor: pointer; color: #337ab7">
<i class="fa fa-angle-double-left fa-fw"></i>
</li>
<?php NavigationMenuWidget::printNavigationMenu(); ?>
</ul>
@@ -10,7 +10,7 @@
<i id="collapseinicon" class="fa fa-angle-double-right fa-fw"></i>
</div>
<style>
#collapseinicon{
#collapseinicon {
display: none;
cursor: pointer;
color: #337ab7;
@@ -22,25 +22,46 @@
height: 20px;
background-color: #F8F8F8;
}
.nav > li > span {
position: relative;
display: block;
}
.nav > li > span > a {
display: inline;
padding-top: 10px;
padding-bottom: 10px;
padding-right: 123px;
}
.menuSubscriptLink {
font-size: 10px;
padding-left: 0px !important;
padding-right: 0px !important;
}
.sidebar ul li span a.active {
background-color: transparent;
font-weight: bold;
text-decoration: underline;
}
</style>
<script>
//hiding/showing navigation menu - works only with sb admin 2 template!!
$("#collapseicon").click(
function ()
{
$("#page-wrapper").css('margin-left', '0px');
$("#side-menu").hide();
$("#collapseinicon").show();
}
);
$("#collapseinicon").click(
function ()
{
$("#page-wrapper").css('margin-left', '250px');
$("#side-menu").show();
$("#collapseinicon").hide();
}
);
// Hiding/showing navigation menu - works only with sb admin 2 template!!
</script>
$("#collapseicon").click(function() {
$("#page-wrapper").css('margin-left', '0px');
$("#side-menu").hide();
$("#collapseinicon").show();
});
$("#collapseinicon").click(function() {
$("#page-wrapper").css('margin-left', '250px');
$("#side-menu").show();
$("#collapseinicon").hide();
});
</script>
+77 -28
View File
@@ -8,7 +8,7 @@ class FilterWidget extends Widget
const APP_PARAMETER = 'app';
const DATASET_NAME_PARAMETER = 'datasetName';
const FILTER_KURZBZ = 'filterKurzbz';
const FILTER_ID = 'filterId';
const FILTER_ID = 'filter_id';
const QUERY_PARAMETER = 'query';
const DB_RESULT = 'dbResult';
const ADDITIONAL_COLUMNS = 'additionalColumns';
@@ -16,6 +16,7 @@ class FilterWidget extends Widget
const CHECKBOXES = 'checkboxes';
const HIDE_HEADER = 'hideHeader';
const HIDE_SAVE = 'hideSave';
const COLUMNS_ALIASES = 'columnsAliases';
const DATASET_PARAMETER = 'dataset';
const METADATA_PARAMETER = 'metaData';
@@ -67,6 +68,7 @@ class FilterWidget extends Widget
private $additionalColumns;
private $formatRaw;
private $checkboxes;
private $columnsAliases;
private $dataset;
private $metaData;
@@ -128,18 +130,27 @@ class FilterWidget extends Widget
//
$this->listFields = $this->FiltersModel->getExecutedQueryListFields();
//
$filterSessionArray = $this->session->userdata(self::SESSION_NAME);
if (isset($filterSessionArray[self::SELECTED_FIELDS]))
{
$selectedFields = $filterSessionArray[self::SELECTED_FIELDS];
}
//
if (count($selectedFields) == 0)
{
$filterSessionArray[self::SELECTED_FIELDS] = $this->listFields;
$this->session->set_userdata(self::SESSION_NAME, $filterSessionArray);
}
//
if ($this->columnsAliases != null && count($this->listFields) != count($this->columnsAliases))
{
show_error('Parameter columnsAliases does not have a number of items equal to those returned by the query');
}
//
$this->metaData = $this->FiltersModel->getExecutedQueryMetaData();
@@ -171,6 +182,14 @@ class FilterWidget extends Widget
return self::_getFromSession(self::ADDITIONAL_COLUMNS);
}
/**
*
*/
public static function getColumnsAliases()
{
return self::_getFromSession(self::COLUMNS_ALIASES);
}
/**
*
*/
@@ -178,7 +197,12 @@ class FilterWidget extends Widget
{
if (self::$FilterWidgetInstance->hideHeader != true)
{
self::_loadView(self::WIDGET_URL_SELECT_FIELDS, array(self::LIST_FIELDS_PARAMETER => self::$FilterWidgetInstance->listFields));
self::_loadView(
self::WIDGET_URL_SELECT_FIELDS,
array(
self::LIST_FIELDS_PARAMETER => self::$FilterWidgetInstance->listFields
)
);
}
}
@@ -189,7 +213,13 @@ class FilterWidget extends Widget
{
if (self::$FilterWidgetInstance->hideHeader != true)
{
self::_loadView(self::WIDGET_URL_SELECT_FILTERS, array(self::METADATA_PARAMETER => self::$FilterWidgetInstance->metaData));
self::_loadView(
self::WIDGET_URL_SELECT_FILTERS,
array(
self::LIST_FIELDS_PARAMETER => self::$FilterWidgetInstance->listFields,
self::METADATA_PARAMETER => self::$FilterWidgetInstance->metaData
)
);
}
}
@@ -209,7 +239,13 @@ class FilterWidget extends Widget
*/
public static function loadViewTableDataset()
{
self::_loadView(self::WIDGET_URL_TABLE_DATASET, array(self::DATASET_PARAMETER => self::$FilterWidgetInstance->dataset));
self::_loadView(
self::WIDGET_URL_TABLE_DATASET,
array(
self::LIST_FIELDS_PARAMETER => self::$FilterWidgetInstance->listFields,
self::DATASET_PARAMETER => self::$FilterWidgetInstance->dataset
)
);
}
/**
@@ -510,6 +546,11 @@ class FilterWidget extends Widget
$filterSessionArray[self::FILTER_ID] = -1;
}
if (!isset($filterSessionArray[self::COLUMNS_ALIASES]))
{
$filterSessionArray[self::COLUMNS_ALIASES] = array();
}
$this->session->set_userdata(self::SESSION_NAME, $filterSessionArray);
}
@@ -528,6 +569,7 @@ class FilterWidget extends Widget
$this->checkboxes = null;
$this->hideHeader = false;
$this->hideSave = false;
$this->columnsAliases = null;
if (!is_array($args) || (is_array($args) && count($args) == 0))
{
@@ -604,6 +646,13 @@ class FilterWidget extends Widget
{
$this->hideSave = $args[self::HIDE_SAVE];
}
if (isset($args[self::COLUMNS_ALIASES])
&& is_array($args[self::COLUMNS_ALIASES])
&& count($args[self::COLUMNS_ALIASES]) > 0)
{
$this->columnsAliases = $args[self::COLUMNS_ALIASES];
}
}
}
@@ -776,10 +825,17 @@ class FilterWidget extends Widget
}
}
$desc = $_POST['customFilterDescription'];
$descPGArray = '{"'.$desc.'", "'.$desc.'", "'.$desc.'", "'.$desc.'"}';
$resultBenutzer = $this->BenutzerModel->load(getAuthUID());
$personId = $resultBenutzer->retval[0]->person_id;
$result = $this->FiltersModel->loadWhere(array(
'app' => $this->app,
'dataset_name' => $this->datasetName,
'filter_kurzbz' => $_POST['customFilterKurzbz']
'description' => $descPGArray,
'person_id' => $personId
));
if (hasData($result))
@@ -788,35 +844,27 @@ class FilterWidget extends Widget
array(
'app' => $this->app,
'dataset_name' => $this->datasetName,
'filter_kurzbz' => $_POST['customFilterKurzbz']
'description' => $descPGArray,
'person_id' => $personId
),
array(
'description' => '{}',
'sort' => null,
'default_filter' => false,
'filter' => json_encode($objToBeSaved),
'oe_kurzbz' => null
'filter' => json_encode($objToBeSaved)
)
);
}
else
{
$result = $this->BenutzerModel->load(getAuthUID());
if (hasData($result))
{
$this->FiltersModel->insert(array(
'app' => $this->app,
'dataset_name' => $this->datasetName,
'filter_kurzbz' => $_POST['customFilterKurzbz'],
'person_id' => $result->retval[0]->person_id,
'description' => '{}',
'sort' => null,
'default_filter' => false,
'filter' => json_encode($objToBeSaved),
'oe_kurzbz' => null
));
}
$this->FiltersModel->insert(array(
'app' => $this->app,
'dataset_name' => $this->datasetName,
'filter_kurzbz' => uniqid($personId, true),
'person_id' => $personId,
'description' => $descPGArray,
'sort' => null,
'default_filter' => false,
'filter' => json_encode($objToBeSaved),
'oe_kurzbz' => null
));
}
}
}
@@ -967,7 +1015,8 @@ class FilterWidget extends Widget
$filterSessionArray = array(
self::SELECTED_FIELDS => $this->_getSelectedFieldsFromPost(),
self::SELECTED_FILTERS => $this->_getSelectedFiltersFromPost(),
self::ADDITIONAL_COLUMNS => $this->additionalColumns
self::ADDITIONAL_COLUMNS => $this->additionalColumns,
self::COLUMNS_ALIASES => $this->columnsAliases
);
$filterSessionArray[self::ACTIVE_FILTERS] = array();
+38 -5
View File
@@ -7,7 +7,7 @@ class NavigationMenuWidget extends Widget
{
private $navigationMenu;
private static $NavigationMenuWidgetInstance;
private static $navigationMenuWidgetInstance;
/**
*
@@ -16,7 +16,7 @@ class NavigationMenuWidget extends Widget
{
$this->navigationMenu = $widgetData;
self::$NavigationMenuWidgetInstance = $this;
self::$navigationMenuWidgetInstance = $this;
$this->view('widgets/navigationMenu');
}
@@ -26,7 +26,7 @@ class NavigationMenuWidget extends Widget
*/
public static function printNavigationMenu()
{
foreach (self::$NavigationMenuWidgetInstance->navigationMenu as $item)
foreach (self::$navigationMenuWidgetInstance->navigationMenu as $item)
{
self::printNavItem($item);
}
@@ -38,8 +38,40 @@ class NavigationMenuWidget extends Widget
public static function printNavItem($item, $depth = 1)
{
$expanded = isset($item['expand']) && $item['expand'] === true ? ' active' : '';
echo '<li class="'.$expanded.'">
<a href="'.$item['link'].'"'.$expanded.'>'.(isset($item['icon']) ? '<i class="fa fa-'.$item['icon'].' fa-fw"></i> ' : '').$item['description'].(!empty($item['children']) ? '<span class="fa arrow"></span>':'').'</a>';
echo '<li class="'.$expanded.'">';
if (isset($item['subscriptLink']) && isset($item['subscriptDescription']))
{
echo '<span>';
}
echo '<a href="'.$item['link'].'"'.$expanded.'>';
if (isset($item['icon']))
{
echo '<i class="fa fa-'.$item['icon'].' fa-fw"></i> ';
}
echo $item['description'];
if (!empty($item['children']))
{
echo '<span class="fa arrow"></span>';
}
echo '</a>';
if (isset($item['subscriptLink']) && isset($item['subscriptDescription']))
{
echo '<a class="menuSubscriptLink" href="'.$item['subscriptLink'].'">'.$item['subscriptDescription'].'</a>';
}
if (isset($item['subscriptLink']) && isset($item['subscriptDescription']))
{
echo '</span>';
}
if (!empty($item['children']))
{
$level = '';
@@ -53,6 +85,7 @@ class NavigationMenuWidget extends Widget
self::printNavItem($child, ++$depth);
echo '</ul>';
}
echo '</li>';
}
}
+56 -52
View File
@@ -56,7 +56,7 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
include('../../../include/meta/jquery.php');
include('../../../include/meta/jquery-tablesorter.php');
echo '<title>Globale Suche</title>
</head>
<body>';
@@ -109,27 +109,27 @@ $searchContent = searchContent($searchItems);
if (!$searchPerson && !$searchOrt && !$searchDms && !$searchContent && !$searchOE)
echo $p->t('tools/esWurdenKeineErgebnisseGefunden');
function searchPerson($searchItems)
{
global $db, $p, $noalias;
$bn = new benutzer();
$bn->search($searchItems, 21);
if(count($bn->result)>0)
{
echo '<h2 style="padding-bottom: 10px;">',$p->t('global/personen'),'</h2>';
echo '
<script type="text/javascript">
$(document).ready(function()
{
<script type="text/javascript">
$(document).ready(function()
{
$("#personentable").tablesorter(
{
sortList: [[3,0],[1,0],[0,0]],
widgets: [\'zebra\'],
headers: {8:{sorter:false}}
});
}
});
}
);
</script>';
if(count($bn->result)>20)
@@ -158,7 +158,7 @@ function searchPerson($searchItems)
{
$bisverwendung = new bisverwendung();
$bisverwendung->getLastAktVerwendung($row->uid);
echo '<tr>';
//echo '<td>',$row->titelpre,'</td>';
echo '<td>',$row->vorname,'</td>';
@@ -185,14 +185,14 @@ function searchPerson($searchItems)
}
echo '</tbody></table><br>';
return true;
}
else
return false;
}
else
return false;
}
function searchOE($searchItems)
{
global $db, $p, $noalias;
//Suche nach Studiengaengen mit dem Suchbegriff und merge mit $searchItems
$stg_oe_array = array();
$stg = new studiengang();
@@ -203,17 +203,17 @@ function searchOE($searchItems)
$stg_oe_array[].= $row->oe_kurzbz;
}
$searchItems = array_merge_recursive($stg_oe_array,$searchItems);
$oe = new organisationseinheit();
$oe->search($searchItems);
if(count($oe->result)>0)
{
echo '<h2 style="padding-bottom: 10px;">',$p->t('global/organisationseinheiten'),'</h2>';
echo '
<script type="text/javascript">
$(document).ready(function()
{
<script type="text/javascript">
$(document).ready(function()
{
$(".tablesorter").each(function(i,v)
{
$("#"+v.id).tablesorter(
@@ -223,10 +223,10 @@ function searchOE($searchItems)
headers: {8:{sorter:false}}
})
});
}
}
);
</script>';
foreach($oe->result as $row)
{
if($row->aktiv==true)
@@ -271,7 +271,7 @@ function searchOE($searchItems)
if($bisverwendung->beschausmasscode=='5')
echo '<span style="color: orange"> (karenziert)</span>';
echo '</td>';
echo '<td>',($mitarbeiter->telefonklappe!=''?$kontakt->kontakt.'-'.$mitarbeiter->telefonklappe:'-'),'</td>';
echo '<td>',($mitarbeiter->ort_kurzbz!=''?$mitarbeiter->ort_kurzbz:'-'),'</td>';
//if($row->alias!='' && !in_array($row->studiengang_kz, $noalias)) ??? Was macht $noalias?
@@ -292,16 +292,16 @@ function searchOE($searchItems)
}
}
return true;
}
else
return false;
}
else
return false;
}
function searchOrt($search)
{
global $db, $p, $noalias;
$ort = new ort();
$ort->filter($search, true, true, true);
$uid = get_uid();
$berechtigung=new benutzerberechtigung();
$berechtigung->getBerechtigungen($uid);
@@ -309,21 +309,21 @@ function searchOrt($search)
$raumres=true;
else
$raumres=false;
if(count($ort->result)>0)
{
echo '<h2 style="padding-bottom: 10px;">',$p->t('lvplan/ort'),'</h2>';
echo '
<script type="text/javascript">
$(document).ready(function()
{
<script type="text/javascript">
$(document).ready(function()
{
$("#orttable").tablesorter(
{
sortList: [[1,0]],
widgets: [\'zebra\'],
headers: {8:{sorter:false}}
});
}
});
}
);
</script>
<table class="tablesorter" id="orttable">
@@ -335,7 +335,7 @@ function searchOrt($search)
<th>',$p->t('tools/telefonklappe'),'</th>';
if ($raumres)
echo '<th>',$p->t('tools/reservieren'),'</th>';
else
else
echo '<th>',$p->t('lvplan/lvPlan'),'</th>';
echo '</tr>
</thead>
@@ -349,9 +349,9 @@ function searchOrt($search)
echo '<td>',$row->telefonklappe,'</td>';
if ($raumres)
echo '<td><a href="../../../cis/private/lvplan/stpl_week.php?type=ort&ort_kurzbz='.$row->ort_kurzbz.'">'.$p->t('tools/reservieren').'</a></td>';
else
else
echo '<td><a href="../../../cis/private/lvplan/stpl_week.php?type=ort&ort_kurzbz='.$row->ort_kurzbz.'">'.$p->t('lvplan/lvPlan').'</a></td>';
//else
//else
// echo '<td></td>';
echo '</tr>';
echo "\n";
@@ -359,7 +359,7 @@ function searchOrt($search)
echo '</tbody></table><br>';
return true;
}
else
else
return false;
}
function searchDms($searchItems)
@@ -383,21 +383,21 @@ function searchDms($searchItems)
global $db, $p, $uid;
$dms = new dms();
$dms->searchLastVersion($searchstring, 41);
if(count($dms->result)>0)
{
echo '<h2 style="padding-bottom: 10px;">'.$p->t("tools/dokumente").'</h2>';
echo '
<script type="text/javascript">
$(document).ready(function()
{
<script type="text/javascript">
$(document).ready(function()
{
$("#dmstable").tablesorter(
{
sortList: [[1,0]],
widgets: [\'zebra\'],
headers: {0:{sorter:false}}
});
}
});
}
);
</script>';
if(count($dms->result)>40)
@@ -409,7 +409,7 @@ function searchDms($searchItems)
<tr>
<th></th>
<th>',$p->t('global/titel'),'</th>
<th>',$p->t('tools/aktuelleVersion'),'</th>
<th>',$p->t('tools/aktuelleVersion'),'</th>
</tr>
</thead>
<tbody>
@@ -431,7 +431,7 @@ function searchDms($searchItems)
echo "\n";
}
}
else
else
{
echo '<tr>';
if(array_key_exists($row->mimetype,$mimetypes))
@@ -446,7 +446,7 @@ function searchDms($searchItems)
echo '</tbody></table><br>';
return true;
}
else
else
return false;
}
function searchContent($searchItems)
@@ -482,13 +482,13 @@ function searchContent($searchItems)
echo '<li><div class="suchergebnis">';
echo '<a href="../../../cms/content.php?content_id=',$db->convert_html_chars($row->content_id),'&sprache=',$db->convert_html_chars($row->sprache),'">',$db->convert_html_chars($row->titel),'</a><br>';
$preview = findAndMark($row->content, $searchItems);
echo $preview;
echo '<br /><br /></div></li>';
}
}
}
echo '</ul>';
echo '</ul>';
$anzeigesprache='';
foreach($cms->result as $row)
{
@@ -508,7 +508,7 @@ function searchContent($searchItems)
echo '<li><div class="suchergebnis">';
echo '<a href="../../../cms/content.php?content_id=',$db->convert_html_chars($row->content_id),'&sprache=',$db->convert_html_chars($row->sprache),'">',$db->convert_html_chars($row->titel),'</a><br>';
$preview = findAndMark($row->content, $searchItems);
echo $preview;
echo '<br /><br /></div></li>';
}
@@ -522,6 +522,7 @@ function searchContent($searchItems)
}
function findAndMark($content, $items)
{
$item = '';
foreach($items as $row)
{
if($row!='')
@@ -529,16 +530,19 @@ function findAndMark($content, $items)
$item = $row;
break;
}
}
}
if($item == '')
return '...';
//CDATA und HTML Tags entfernen
$content = mb_str_replace('<[CDATA[', '', $content);
$content = mb_str_replace(']]>', '', $content);
$content = strip_tags($content);
$item = mb_strtolower($item);
$beginn = mb_strpos(mb_strtolower($content), $item);
$len = mb_strlen($item);
//Im Content sind die Umlaute teilweise codiert gespeichert
//Wenn der Eintrag nicht gefunden wird, wird mit Codierten Zeichen nochmals gesucht
if($beginn=='')
@@ -546,7 +550,7 @@ function findAndMark($content, $items)
$beginn = mb_strpos(mb_strtolower($content), htmlentities($item,ENT_NOQUOTES,'UTF-8'));
$len = mb_strlen(htmlentities($item,ENT_NOQUOTES,'UTF-8'));
}
if($beginn=='')
{
$beginn=0;
@@ -558,7 +562,7 @@ function findAndMark($content, $items)
$preview='';
if($start!=0)
$preview='...';
$preview .= mb_substr($content, $start, ($beginn-$start));
$preview.='<span class="suchmarker">';
$preview.= mb_substr($content, $beginn, $len);
@@ -1,79 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/* Erstellt einen Lehrauftrag im PDF Format
*
* Erstellt ein XML File Transformiert dieses mit
* Hilfe der XSL-FO Vorlage aus der DB und generiert
* daraus ein PDF (xslfo2pdf)
*/
require_once('../../../config/vilesci.config.inc.php');
require_once 'auth.php';
require_once('../../../include/functions.inc.php');
require_once('../../../include/xslfo2pdf/xslfo2pdf.php');
require_once('../../../include/akte.class.php');
require_once('../../../include/vorlage.class.php');
require_once('../../../include/organisationseinheit.class.php');
require_once('../../../include/studiengang.class.php');
$db = new basis_db();
//Parameter setzen
$params='?xmlformat=xml';
if(isset($_GET['id']))
$params.='&id='.$_GET['id'];
$xml='learningagreement.rdf.php';
$xml_url=XML_ROOT.$xml.$params;
// Load the XML source
$xml_doc = new DOMDocument;
if(!$xml_doc->load($xml_url))
die('unable to load xml: '.$xml_url);
//XSL aus der DB holen
$vorlage = new vorlage();
$vorlage->getAktuelleVorlage('0', 'LearningAgree');
$xsl_content = $vorlage->text;
//Pdf erstellen
$filename='LearningAgreement';
$fo2pdf = new XslFo2Pdf();
// Load the XSL source
$xsl_doc = new DOMDocument;
if(!$xsl_doc->loadXML($xsl_content))
die('unable to load xsl');
// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl_doc); // attach the xsl rules
$buffer = $proc->transformToXml($xml_doc);
if (!$fo2pdf->generatePdf($buffer, $filename, "D"))
{
echo('Failed to generate PDF');
}
?>
-21
View File
@@ -127,7 +127,6 @@ foreach($addon_obj->result as $addon)
<command id="menu-dokumente-inskriptionsbestaetigung:command" oncommand="StudentPrintInskriptionsbestaetigung(event);"/>
<command id="menu-dokumente-zeugnis:command" oncommand="StudentCreateZeugnis('Zeugnis',event);"/>
<command id="menu-dokumente-zeugniseng:command" oncommand="StudentCreateZeugnis('ZeugnisEng',event);"/>
<!--<command id="menu-dokumente-sammelzeugnis:command" oncommand="StudentCreateSammelzeugnis('Sammelzeugnis');"/>-->
<command id="menu-dokumente-diplsupplement:command" oncommand="StudentCreateDiplSupplement(event);"/>
<command id="menu-dokumente-studienerfolg-normal:command" oncommand="StudentCreateStudienerfolg(event, 'Studienerfolg');"/>
<command id="menu-dokumente-studienerfolg-finanzamt:command" oncommand="StudentCreateStudienerfolg(event, 'Studienerfolg','finanzamt');"/>
@@ -741,26 +740,6 @@ foreach($addon_obj->result as $addon)
label = "&menu-dokumente-zeugniseng.label;"
command = "menu-dokumente-zeugniseng:command"
accesskey = "&menu-dokumente-zeugniseng.accesskey;"/>
<!-- <menuitem
id = "menu-dokumente-sammelzeugnis"
key = "&menu-dokumente-sammelzeugnis.key;"
label = "&menu-dokumente-sammelzeugnis.label;"
command = "menu-dokumente-sammelzeugnis:command"
accesskey = "&menu-dokumente-sammelzeugnis.accesskey;"/>
<menuitem
id = "menu-dokumente-pruefungsprotokoll"
key = "menu-dokumente-pruefungsprotokoll:key"
label = "&menu-dokumente-pruefungsprotokoll.label;"
command = "menu-dokumente-pruefungsprotokoll:command"
accesskey = "&menu-dokumente-pruefungsprotokoll.accesskey;"/>
<menuitem
id = "menu-dokumente-pruefungsprotokoll_englisch"
key = "menu-dokumente-pruefungsprotokoll_englisch:key"
label = "&menu-dokumente-pruefungsprotokoll_englisch.label;"
command = "menu-dokumente-pruefungsprotokoll_englisch:command"
accesskey = "&menu-dokumente-pruefungsprotokoll_englisch.accesskey;"/>
-->
</menupopup>
</menu>
<!-- ***** CIS ***** -->
+3 -38
View File
@@ -1124,7 +1124,7 @@ function StudentAuswahl()
document.getElementById('student-tab-zeugnis').collapsed=true;
document.getElementById('student-tab-betriebsmittel').collapsed=true;
document.getElementById('student-tab-io').collapsed=true;
document.getElementById('student-tab-mobilitaet').hidden=true;
document.getElementById('student-tab-mobilitaet').hidden=true;
document.getElementById('student-tab-noten').collapsed=true;
document.getElementById('student-tab-pruefung').collapsed=true;
document.getElementById('student-tab-abschlusspruefung').collapsed=true;
@@ -1540,7 +1540,7 @@ function StudentAuswahl()
{
document.getElementById('student-messages').setAttribute('src','messages.xul.php?person_id='+person_id);
}
// ***** UDF *****
if (document.getElementById('student-content-tabs').selectedItem == document.getElementById('student-tab-udf'))
{
@@ -2845,41 +2845,6 @@ function StudentCreateZeugnis(xsl,event)
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zeugnis.rdf.php&output='+output+'&xsl='+xsl+'&uid='+paramList+'&ss='+ss+'&xsl_stg_kz='+xsl_stg_kz,'Zeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
}
// ****
// * Erstellt das Sammelzeugnis fuer einen Studenten
// ****
function StudentCreateSammelzeugnis(xsl)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
tree = document.getElementById('student-tree');
//Markierte Studenten holen
var start = new Object();
var end = new Object();
var numRanges = tree.view.selection.getRangeCount();
var paramList= '';
for (var t = 0; t < numRanges; t++)
{
tree.view.selection.getRangeAt(t,start,end);
for (var v = start.value; v <= end.value; v++)
{
var uid = getTreeCellText(tree, 'student-treecol-uid', v);
paramList += ';'+uid;
}
}
var xsl_stg_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value
if(paramList.replace(";",'')=='')
{
alert('Bitte einen Studenten auswaehlen');
return false;
}
//PDF erzeugen
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?xml=sammelzeugnis.rdf.php&xsl='+xsl+'&uid='+paramList+'&xsl_stg_kz='+xsl_stg_kz,'Sammelzeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
}
// ****
// * Laedt ein Zeugnis dass in der DB gespeichert ist
// ****
@@ -5512,7 +5477,7 @@ function StudentUDFIFrameLoad()
//Ausgewaehlte person_id holen
var person_id = getTreeCellText(tree, 'student-treecol-person_id', tree.currentIndex);
var prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', tree.currentIndex);
url = 'udf.xul.php?person_id='+person_id+'&prestudent_id='+prestudent_id;
document.getElementById('student-udf').setAttribute('src', url);
}
+12
View File
@@ -0,0 +1,12 @@
/*
file for adding bootstrap classes, e.g. in case usage of non-bootstrap widgets in a bootstrap page
AVOID USING THIS IF POSSIBLE
*/
$(document).ready(
function()
{
$("input[type=text], select").addClass("form-control");
$("button, input[type=button]").addClass("btn btn-default");
$("table").addClass('table-condensed');
}
);
+82
View File
@@ -0,0 +1,82 @@
/**
*/
$(document).ready(
function()
{
// Checks if the table contains data (rows)
if ($('#tableDataset').find('tbody:empty').length == 0
&& $('#tableDataset').find('tr:empty').length == 0)
{
$("#tableDataset").tablesorter(
{
widgets: ["zebra", "filter"]
});
}
appendTableActionsHtml();
setTableActions();
}
);
function appendTableActionsHtml()
{
var currurl = window.location.href;
var url = currurl.replace(/infocenter\/InfoCenter(.*)/, "Messages/write");
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
$("#filterForm").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 messageHtml = 'Mit Ausgew&auml;hlten:&nbsp;&nbsp;' +
'<a href="javascript:void(0)" class="sendMsgsLink">' +
'<i class="fa fa-envelope"></i>&nbsp;Nachricht senden</a>';
var personcount = $("#tableDataset tbody tr").length;
var persontext = personcount === 1 ? "Person" : "Personen";
var countHtml = $("#tableDataset tbody tr").length +" "+persontext;
$("#datasetActionsTop, #datasetActionsBottom").append(
"<div class='pull-left'>"+selectAllHtml+"&nbsp;&nbsp;"+ messageHtml+"</div>"+
"<div class='pull-right'>"+countHtml+"</div>"+
"<div class='clearfix'></div>"
);
$("#datasetActionsBottom").append("<br><br>");
}
function setTableActions()
{
$(".sendMsgsLink").click(function() {
var idsel = $("#tableDataset 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()
{
//trs only if not filtered by tablesorter
var trs = $("#tableDataset tbody tr").not(".filtered");
trs.find("input[name=PersonId\\[\\]]").prop("checked", true);
}
);
$(".unselectAll").click(function()
{
var trs = $("#tableDataset tbody tr").not(".filtered");
trs.find("input[name=PersonId\\[\\]]").prop("checked", false);
}
);
}
+67 -3
View File
@@ -733,9 +733,9 @@ class prestudent extends person
/**
* Prueft ob eine Person bereits einen PreStudenteintrag
* fuer einen Studiengang besitzt
* @param person_id
* studiengang_kz
* fuer einen Studiengang und optional ein Studiensemester besitzt
* @param integer $person_id
* @param integer $studiengang_kz
* @return true wenn vorhanden
* false wenn nicht vorhanden
* false und errormsg wenn Fehler aufgetreten ist
@@ -786,6 +786,70 @@ class prestudent extends person
}
}
/**
* Prueft ob eine Person bereits einen PreStudentstatus-Eintrag
* fuer einen Studiengang und optional ein Studiensemester und optional ein Status_kurzbz besitzt
* @param integer $person_id
* @param integer $studiengang_kz
* @param string $studiensemester_kurzbz Optional.
* @param string $status_kurzbz Optional.
* @return true wenn vorhanden
* false wenn nicht vorhanden
* false und errormsg wenn Fehler aufgetreten ist
*/
public function existsPrestudentstatus($person_id, $studiengang_kz, $studiensemester_kurzbz = null, $status_kurzbz = null)
{
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if ($studiensemester_kurzbz != '')
$qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if ($status_kurzbz != '')
$qry .= " AND status_kurzbz=".$this->db_add_param($status_kurzbz);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
if($row->anzahl>0)
{
$this->errormsg = '';
return true;
}
else
{
$this->errormsg = '';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Speichert den Prestudentstatus
* @return true wenn ok, false im Fehlerfall
+7
View File
@@ -0,0 +1,7 @@
@media (min-width:768px) {
#page-wrapper {
margin-right: 250px;
margin-top: 8px;
border: 1px solid #e7e7e7;
}
}
+7 -6
View File
@@ -20,16 +20,17 @@
}
/* set colors of zebra widget */
table.tablesorter tbody tr.even td{
background-color: #ffff !important;
table.tablesorter tbody tr.even td, table.tablesorter tbody tr.even:hover, table.tablesorter tbody tr.even td:hover{
background-color: #ffff;
}
table.tablesorter tbody tr.odd td{
background-color: #f5f5f5 !important;
table.tablesorter tbody tr.odd td, table.tablesorter tbody tr.odd:hover, table.tablesorter tbody tr.odd td:hover{
background-color: #f5f5f5;
}
table.tablesorter tbody tr.odd:hover{
background-color: #f5f5f5 !important;
/* colors for hover over table rows and clicked rows*/
table.tablesort-hover tr:hover, .tablesort-active{
background-color: #dfdfdf !important;
}
/* Remove background color from filter row */
-466
View File
@@ -1,466 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<XMI verified="false" xmi.version="1.2" timestamp="2014-05-22T14:17:07" xmlns:UML="http://schema.omg.org/spec/UML/1.3">
<XMI.header>
<XMI.documentation>
<XMI.exporter>umbrello uml modeller http://umbrello.kde.org</XMI.exporter>
<XMI.exporterVersion>1.6.2</XMI.exporterVersion>
<XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding>
</XMI.documentation>
<XMI.metamodel xmi.version="1.3" href="UML.xml" xmi.name="UML"/>
</XMI.header>
<XMI.content>
<UML:Model isSpecification="false" isAbstract="false" isLeaf="false" xmi.id="m1" isRoot="false" name="UML Model">
<UML:Namespace.ownedElement>
<UML:Stereotype visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="folder" name="folder"/>
<UML:Stereotype visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="datatype" name="datatype"/>
<UML:Stereotype visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="public" name="public"/>
<UML:Stereotype visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="bis" name="bis"/>
<UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Logical View" name="Logical View">
<UML:Namespace.ownedElement>
<UML:Package stereotype="folder" visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Datatypes" name="Datatypes">
<UML:Namespace.ownedElement>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="SgZEyuZ8MsOX" name="int"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="thqOZ1UNDKcG" name="char"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="7YsfljvDNSQM" name="bool"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="KzUepsAjXy56" name="float"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="zZRBr3RyZHdI" name="double"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="yXUMxuiGrCuf" name="short"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="32Oa0Rhy089p" name="long"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="AYnhpO0ovU8r" name="unsigned int"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Mq7B0zq30Ce0" name="unsigned short"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="dJydP5QZdDHT" name="unsigned long"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="cFFVhNK3BREB" name="string"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="edwM3rd0SCyI" name="bigint"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="ubiV24mgw2pR" name="bigserial"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="RNMGsr1WSxrT" name="bit"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="pSTFeSWY1C11" name="bit varying"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Emh8oXXDusUk" name="boolean"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="jTHBR8cEY5RC" name="box"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="VvkX8jWMVETI" name="bytea"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="l0VdszOZTdks" name="character varying"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="lM4JQVTvRBSX" name="character"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="uxrQBKiuLDXB" name="cidr"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="BtlcWVUFqYWE" name="circle"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="1z9QAax5XpTi" name="date"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="9BaSM7eXzP7V" name="decimal"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="sbjg7Fu7D4XL" name="double precision"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="eVO9IrpP0PsN" name="inet"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="WWsTv0xlZgSf" name="integer"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="tMm4OJQ0mo92" name="interval"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="gySeNKzsqqLj" name="line"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="oGUNwu0oHmsf" name="lseg"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="4Igo5nrjmJN9" name="macaddr"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="dNzRDJ8zZaMU" name="money"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="VNIm78P9P3wU" name="numeric"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="rnDd4Ykhti64" name="path"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="1E3amO2HjI1q" name="point"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="RRyoUuIJfTwj" name="polygon"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="zfOtNUvMgzwS" name="real"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Nzk4HlsgAqUd" name="smallint"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="ikwNBr69UU0p" name="time without time zone"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="wvBcs53F4lJK" name="time with time zone"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="UAyf0RGjBA6L" name="timestamp without time zone"/>
<UML:DataType stereotype="datatype" visibility="public" isSpecification="false" namespace="Datatypes" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="qrvRuK92f7eq" name="timestamp with time zone"/>
</UML:Namespace.ownedElement>
</UML:Package>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="W7jgRDGr8PuF" name="serial"/>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="51IG0CBKOtiN" name="Studienordnung">
<UML:Classifier.feature>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="SYtsmgH9b0tQ" type="cFFVhNK3BREB" name="version"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="P0GeSbOrn37K" type="1pNXWzrwoPA2" name="Studiengang_kz"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="THGEKMZDfdy2" type="L1qcyWcXRmkI" name="GueltigVon"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="3EinJkj2SNf3" type="Emh8oXXDusUk" initialValue="true" name="new"/>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="ds4Uckfh3sp6" name="loadStudienordnung">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="CTM5gp05k7vL" type="51IG0CBKOtiN"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="1tz9dH9nvDVx" type="edwM3rd0SCyI" value="" name="Studienordnung_id"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Rv7qb73Ex5iZ" comment="loadStudienordnungSTG->Wenn alles gesetzt ist, sollte das Ergebniss maximal 1 sein.&#xa;Wenn größer 1 -> Error" name="loadStudienordnungSTG">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="VzH4xyrzbqyA" type="51IG0CBKOtiN"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="pLHrE4xDxwMa" type="1pNXWzrwoPA2" value="" name="Studiengang_kz"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="tUqF1F8Z7TD3" type="L1qcyWcXRmkI" value="null" name="studiensemester"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="jkgfaf0S9qf8" type="WWsTv0xlZgSf" value="null" name="semester"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="4niBEtFXzjnB" name="saveStudienordnung">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="2gVBUAIYv0iA" type="51IG0CBKOtiN"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="1pNXWzrwoPA2" name="Studiengang">
<UML:Classifier.feature>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="YJDHS1TULZPv" name="loadStudiengang">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="J6WGBJSZm74x" type="1pNXWzrwoPA2"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="D2ntTRvYQDmQ" name="Studienplan">
<UML:Classifier.feature>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="iaj7LTP4ozpz" type="51IG0CBKOtiN" name="Studienordnung"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="4tyrMId12lw0" type="HC249p3ahdi0" name="OrgForm"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="5JD7596s9kI0" type="cFFVhNK3BREB" name="Version"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="Ag6j1GQCRh2D" type="SgZEyuZ8MsOX" name="Regelstudiendauer"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="v7X4AVbvtABG" type="NxjlpR7qGUNk" initialValue="null" name="Lehrveranstaltung"/>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="BWtzNhU4W1VR" name="loadStudienplan">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="lQbFP4gsJEip" type="D2ntTRvYQDmQ"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="TFYsXoH3oX5j" type="edwM3rd0SCyI" value="" name="Studienplan_id"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="rvfqcTzdffRy" name="loadStudienplanSTO">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="ca8HEZDcfCSA" type="D2ntTRvYQDmQ"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="Q8yqVetYIMhk" type="edwM3rd0SCyI" value="" name="Studienordnung_id"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="UzHOxzWmuBbU" type="l0VdszOZTdks" value="null" name="OrgForm"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="NxjlpR7qGUNk" name="Lehrveranstaltung">
<UML:Classifier.feature>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="213uAePlDX0P" type="WWsTv0xlZgSf" initialValue="null" name="semester"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="4E1jOTtAnaES" type="Emh8oXXDusUk" initialValue="null" name="pflicht"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="w0ZF64U63W1B" type="l0VdszOZTdks" initialValue="null" name="koordinator"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="8QwJvxiz9jiX" type="D2ntTRvYQDmQ" initialValue="null" name="studienplan_id"/>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="1j42F3EOR8hM" name="loadLehrveranstaltung">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="5JEvW0NjtWeq" type="NxjlpR7qGUNk"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="5QLE91jKaOJi" type="edwM3rd0SCyI" value="" name="Lehrveranstaltung_id"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Hhj9f06gk8jx" name="loadLehrveranstaltungStudienplanID">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="MWw5ibstBjVy" type="NxjlpR7qGUNk"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="9vLa31u7PDJW" type="edwM3rd0SCyI" value="" name="Studienplan_id"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="E1rpP8VfpEoU" type="WWsTv0xlZgSf" value="null" name="semester"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Ds9xzqs8lEhm" name="loadLehrveranstaltungOE">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="ucz6Zmgf3uYZ" type="NxjlpR7qGUNk"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="DbtcnB81Cxob" type="l0VdszOZTdks" value="" name="oe_kurzbz"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="vvGmQuamPWq5" name="getLehrveranstaltungenJSON">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="02J4vpboksa8" type="cFFVhNK3BREB"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="RChGZrGmr3fL" name="LVRegel">
<UML:Classifier.feature>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="8gzJPUHI4EMe" type="edwM3rd0SCyI" initialValue="null" name="lvregel_id"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="kAv7ejDkPC1o" type="l0VdszOZTdks" initialValue="null" name="regeltyp_kurzbz"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="eG4jVRLTTeVM" type="edwM3rd0SCyI" initialValue="null" name="studienplan_lehrveranstaltung_id"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="R5A9xkIfsBnX" type="edwM3rd0SCyI" initialValue="null" name="lvregel_id_parent"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="u0FJAH5mXAT0" type="NxjlpR7qGUNk" initialValue="null" name="lehrveranstaltung_id"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="AkIhumiVaAY1" type="lM4JQVTvRBSX" initialValue="null" name="operator"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="7vqAUr7k8ita" type="cFFVhNK3BREB" initialValue="null" name="parameter"/>
<UML:Attribute visibility="private" isSpecification="false" xmi.id="tHA0AI4hgRII" type="DHjcK6auMrP8" name="studierendendaten"/>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="COOJ6HtBlqd9" name="loadLVRegel">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="LUy7IbGj9uTw" type="RChGZrGmr3fL"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="Raglnt0koiHr" type="edwM3rd0SCyI" value="" name="LVRegel_id"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="6WwSPbyXMFFE" name="loadLVRegelStplLvID">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="zvkX5GWABNId" type="RChGZrGmr3fL"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="wm277KkHi6an" type="edwM3rd0SCyI" value="" name="stpl_lv_id"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="oRgc7wU3gUAn" name="getLVRegelJSON">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="os2VzdIK5EPN" type="RChGZrGmr3fL"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="pd4xYXtMwYw3" name="checkAnmeldung">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="5yMkbkDUzNT7" type="Emh8oXXDusUk"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="UQ68sEtf7vA6" type="edwM3rd0SCyI" value="" name="stpl_lv_id"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="YQOdeoyRP3Ox" name="loadStudierendendaten">
<UML:BehavioralFeature.parameter>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="aGJXoGYGefOV" type="l0VdszOZTdks" value="" name="uid"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isSpecification="false" isQuery="false" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="fVoJw7b7OKki" name="checkPositiv">
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" xmi.id="u8zrVSz8ynRs" type="7YsfljvDNSQM"/>
<UML:Parameter visibility="private" isSpecification="false" xmi.id="OIci70qDwCvX" type="l0VdszOZTdks" value="null" name="uid"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="L1qcyWcXRmkI" name="Studiensemester"/>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="HC249p3ahdi0" name="OrgForm"/>
<UML:Class visibility="public" isSpecification="false" namespace="Logical View" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="DHjcK6auMrP8" name="Studirendenr"/>
</UML:Namespace.ownedElement>
<XMI.extension xmi.extender="umbrello">
<diagrams>
<diagram showopsig="1" linecolor="#ff0000" snapx="10" showattribassocs="1" snapy="10" linewidth="0" showattsig="1" textcolor="#000000" isopen="0" showpackage="1" showpubliconly="0" showstereotype="1" name="FHComplete" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" canvasheight="886" canvaswidth="1000" localid="-1" snapcsgrid="0" showgrid="0" showops="1" griddotcolor="#000000" backgroundcolor="#ffffff" usefillcolor="1" fillcolor="#ffff00" zoom="103" xmi.id="oCqH2pwcYFsG" documentation="" showscope="1" snapgrid="0" showatts="1" type="1">
<widgets>
<classwidget linecolor="#ff0000" usesdiagramfillcolor="0" linewidth="0" showoperations="1" textcolor="#000000" usesdiagramusefillcolor="0" showpubliconly="0" showpackage="1" x="-1390" showattsigs="601" showstereotype="1" y="-636" showattributes="1" font="DejaVu Sans,9,-1,5,75,0,0,0,0,0" width="1000" isinstance="0" usefillcolor="1" fillcolor="#ffff00" xmi.id="51IG0CBKOtiN" showscope="1" height="112" showopsigs="601"/>
<classwidget linecolor="none" usesdiagramfillcolor="0" linewidth="0" showoperations="1" textcolor="#000000" usesdiagramusefillcolor="0" showpubliconly="0" showpackage="1" x="-1357" showattsigs="601" showstereotype="1" y="-749" showattributes="1" font="DejaVu Sans,9,-1,0,75,0,0,0,0,0" width="233" isinstance="0" usefillcolor="1" fillcolor="#ffff00" xmi.id="1pNXWzrwoPA2" showscope="1" height="35" showopsigs="601"/>
<classwidget linecolor="#ff0000" usesdiagramfillcolor="0" linewidth="0" showoperations="1" textcolor="#000000" usesdiagramusefillcolor="0" showpubliconly="0" showpackage="1" x="-1206" showattsigs="601" showstereotype="1" y="-458" showattributes="1" font="DejaVu Sans,9,-1,5,75,0,0,0,0,0" width="717" isinstance="0" usefillcolor="1" fillcolor="#ffff00" xmi.id="D2ntTRvYQDmQ" showscope="1" height="140" showopsigs="601"/>
<classwidget linecolor="#ff0000" usesdiagramfillcolor="0" linewidth="0" showoperations="1" textcolor="#000000" usesdiagramusefillcolor="0" showpubliconly="0" showpackage="1" x="-1364" showattsigs="601" showstereotype="1" y="-250" showattributes="1" font="DejaVu Sans,9,-1,5,75,0,0,0,0,0" width="786" isinstance="0" usefillcolor="1" fillcolor="#ffff00" xmi.id="NxjlpR7qGUNk" showscope="1" height="126" showopsigs="601"/>
<classwidget linecolor="#ff0000" usesdiagramfillcolor="0" linewidth="0" showoperations="1" textcolor="#000000" usesdiagramusefillcolor="0" showpubliconly="0" showpackage="1" x="-1061" showattsigs="601" showstereotype="1" y="-73" showattributes="1" font="DejaVu Sans,9,-1,5,75,0,0,0,0,0" width="368" isinstance="0" usefillcolor="1" fillcolor="#ffff00" xmi.id="RChGZrGmr3fL" showscope="1" height="210" showopsigs="601"/>
<classwidget linecolor="none" usesdiagramfillcolor="0" linewidth="0" showoperations="1" textcolor="#000000" usesdiagramusefillcolor="0" showpubliconly="0" showpackage="1" x="-905" showattsigs="601" showstereotype="1" y="-745" showattributes="1" font="DejaVu Sans,9,-1,0,75,0,0,0,0,0" width="132" isinstance="0" usefillcolor="1" fillcolor="#ffff00" xmi.id="L1qcyWcXRmkI" showscope="1" height="28" showopsigs="601"/>
<classwidget linecolor="none" usesdiagramfillcolor="0" linewidth="0" showoperations="1" textcolor="#000000" usesdiagramusefillcolor="0" showpubliconly="0" showpackage="1" x="-656" showattsigs="601" showstereotype="1" y="-417" showattributes="1" font="DejaVu Sans,9,-1,0,75,0,0,0,0,0" width="71" isinstance="0" usefillcolor="1" fillcolor="#ffff00" xmi.id="HC249p3ahdi0" showscope="1" height="28" showopsigs="601"/>
</widgets>
<messages/>
<associations>
<assocwidget indexa="1" linecolor="none" usesdiagramfillcolor="0" widgetbid="1pNXWzrwoPA2" indexb="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="0" totalcounta="2" totalcountb="2" widgetaid="51IG0CBKOtiN" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" visibilityA="1" visibilityB="1" usefillcolor="0" fillcolor="#000000" changeabilityA="900" xmi.id="P0GeSbOrn37K" changeabilityB="900" type="510">
<linepath layout="Polyline">
<startpoint startx="-1225" starty="-636"/>
<endpoint endx="-1225" endy="-714"/>
</linepath>
<floatingtext linecolor="none" usesdiagramfillcolor="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="1" x="-1337" showstereotype="1" y="-712" text="Studiengang_kz" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" pretext="-" role="710" width="110" isinstance="0" posttext="" usefillcolor="1" fillcolor="none" xmi.id="ORKwll48zSwZ" height="18"/>
</assocwidget>
<assocwidget indexa="1" linecolor="none" usesdiagramfillcolor="0" widgetbid="L1qcyWcXRmkI" indexb="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="0" totalcounta="2" totalcountb="2" widgetaid="51IG0CBKOtiN" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" visibilityA="1" visibilityB="1" usefillcolor="0" fillcolor="#000000" changeabilityA="900" xmi.id="THGEKMZDfdy2" changeabilityB="900" type="510">
<linepath layout="Polyline">
<startpoint startx="-853" starty="-636"/>
<endpoint endx="-853" endy="-717"/>
</linepath>
<floatingtext linecolor="none" usesdiagramfillcolor="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="1" x="-930" showstereotype="1" y="-715" text="GueltigVon" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" pretext="-" role="710" width="79" isinstance="0" posttext="" usefillcolor="1" fillcolor="none" xmi.id="HQmtgogMSM4W" height="18"/>
</assocwidget>
<assocwidget indexa="1" linecolor="none" usesdiagramfillcolor="0" widgetbid="51IG0CBKOtiN" indexb="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="0" totalcounta="2" totalcountb="2" widgetaid="D2ntTRvYQDmQ" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" visibilityA="1" visibilityB="1" usefillcolor="0" fillcolor="#000000" changeabilityA="900" xmi.id="iaj7LTP4ozpz" changeabilityB="900" type="510">
<linepath layout="Polyline">
<startpoint startx="-1019" starty="-458"/>
<endpoint endx="-1019" endy="-524"/>
</linepath>
<floatingtext linecolor="none" usesdiagramfillcolor="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="1" x="-1130" showstereotype="1" y="-522" text="Studienordnung" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" pretext="-" role="710" width="113" isinstance="0" posttext="" usefillcolor="1" fillcolor="none" xmi.id="qy6mUImsi4mT" height="18"/>
</assocwidget>
<assocwidget indexa="1" linecolor="none" usesdiagramfillcolor="0" widgetbid="HC249p3ahdi0" indexb="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="0" totalcounta="2" totalcountb="2" widgetaid="D2ntTRvYQDmQ" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" visibilityA="1" visibilityB="1" usefillcolor="0" fillcolor="#000000" changeabilityA="900" xmi.id="4tyrMId12lw0" changeabilityB="900" type="510">
<linepath layout="Polyline">
<startpoint startx="-656" starty="-400"/>
<endpoint endx="-656" endy="-400"/>
</linepath>
<floatingtext linecolor="none" usesdiagramfillcolor="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="1" x="-719" showstereotype="1" y="-398" text="OrgForm" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" pretext="-" role="710" width="65" isinstance="0" posttext="" usefillcolor="1" fillcolor="none" xmi.id="prbmHWLWw5Pa" height="18"/>
</assocwidget>
<assocwidget indexa="1" linecolor="none" usesdiagramfillcolor="0" widgetbid="NxjlpR7qGUNk" indexb="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="1" totalcounta="2" totalcountb="2" widgetaid="D2ntTRvYQDmQ" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" visibilityA="1" visibilityB="1" usefillcolor="1" fillcolor="#000000" changeabilityA="900" xmi.id="v7X4AVbvtABG" changeabilityB="900" type="510">
<linepath layout="Polyline">
<startpoint startx="-993" starty="-318"/>
<endpoint endx="-993" endy="-250"/>
</linepath>
<floatingtext linecolor="none" usesdiagramfillcolor="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="1" x="-1117" showstereotype="1" y="-270" text="Lehrveranstaltung" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" pretext="-" role="710" width="126" isinstance="0" posttext="" usefillcolor="1" fillcolor="none" xmi.id="t5wKPzqDvuyP" height="18"/>
</assocwidget>
<assocwidget indexa="1" linecolor="none" usesdiagramfillcolor="0" widgetbid="NxjlpR7qGUNk" indexb="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="1" totalcounta="2" totalcountb="2" widgetaid="RChGZrGmr3fL" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" visibilityA="1" visibilityB="1" usefillcolor="0" fillcolor="#000000" changeabilityA="900" xmi.id="u0FJAH5mXAT0" changeabilityB="900" type="510">
<linepath layout="Polyline">
<startpoint startx="-894" starty="-73"/>
<endpoint endx="-894" endy="-124"/>
</linepath>
<floatingtext linecolor="none" usesdiagramfillcolor="1" linewidth="none" textcolor="none" usesdiagramusefillcolor="1" x="-1036" showstereotype="1" y="-122" text="lehrveranstaltung_id" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" pretext="-" role="710" width="140" isinstance="0" posttext="" usefillcolor="1" fillcolor="none" xmi.id="AkHsm4KbtvLA" height="18"/>
</assocwidget>
</associations>
</diagram>
</diagrams>
</XMI.extension>
</UML:Model>
<UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Use Case View" name="Use Case View">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Component View" name="Component View">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Deployment View" name="Deployment View">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model stereotype="folder" visibility="public" isSpecification="false" namespace="m1" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Entity Relationship Model" name="Entity Relationship Model">
<UML:Namespace.ownedElement>
<UML:Entity visibility="public" isSpecification="false" namespace="Entity Relationship Model" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Pv938OUidhEK" name="tbl_person">
<UML:EntityAttribute visibility="private" values="" isSpecification="false" namespace="Pv938OUidhEK" allow_null="0" isAbstract="false" isLeaf="false" attributes="" auto_increment="0" isRoot="false" xmi.id="4YLFyXQNadkq" type="W7jgRDGr8PuF" dbindex_type="1100" initialValue="" name="person_id"/>
</UML:Entity>
<UML:Entity stereotype="public" visibility="public" isSpecification="false" namespace="Entity Relationship Model" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="nMxO39i5g1Kc" name="tbl_benutzer">
<UML:EntityAttribute visibility="public" values="16" isSpecification="false" namespace="nMxO39i5g1Kc" allow_null="0" isAbstract="false" isLeaf="false" attributes="" auto_increment="0" isRoot="false" xmi.id="IxRyyjYUPVbj" type="l0VdszOZTdks" dbindex_type="1100" initialValue="" name="uid"/>
<UML:UniqueConstraint visibility="public" isSpecification="false" namespace="nMxO39i5g1Kc" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="rl5y8zDvJ8HM" isPrimary="1" name="pk_benutzer"/>
</UML:Entity>
<UML:Entity visibility="public" isSpecification="false" namespace="Entity Relationship Model" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="Yix7MhxqogVG" name="tbl_student"/>
<UML:Package stereotype="folder" visibility="public" isSpecification="false" namespace="Entity Relationship Model" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="VSWYS4jnR9yv" name="public">
<UML:Namespace.ownedElement>
<UML:Entity stereotype="public" visibility="public" isSpecification="false" namespace="VSWYS4jnR9yv" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="jrTxafyeJXdz" name="tbl_studiengang"/>
</UML:Namespace.ownedElement>
</UML:Package>
<UML:Package stereotype="folder" visibility="public" isSpecification="false" namespace="Entity Relationship Model" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="XBCwKAr1zJza" name="bis">
<UML:Namespace.ownedElement>
<UML:Entity stereotype="bis" visibility="public" isSpecification="false" namespace="XBCwKAr1zJza" isAbstract="false" isLeaf="false" isRoot="false" xmi.id="wxCGSqFycJP2" name="tbl_zgv"/>
</UML:Namespace.ownedElement>
</UML:Package>
<UML:Association visibility="public" isSpecification="false" namespace="Entity Relationship Model" xmi.id="Gzh9Toy4M1Lz" name="">
<UML:Association.connection>
<UML:AssociationEnd changeability="changeable" visibility="public" isNavigable="true" isSpecification="false" xmi.id="g5nrwtJnmwRD" type="Yix7MhxqogVG" name="" aggregation="none"/>
<UML:AssociationEnd changeability="changeable" visibility="public" isNavigable="true" isSpecification="false" relationship="true" xmi.id="QWosq1k61PGU" type="Pv938OUidhEK" name="" aggregation="none"/>
</UML:Association.connection>
</UML:Association>
</UML:Namespace.ownedElement>
<XMI.extension xmi.extender="umbrello">
<diagrams>
<diagram showopsig="1" linecolor="#ff0000" snapx="10" showattribassocs="1" snapy="10" linewidth="0" showattsig="1" textcolor="#000000" isopen="1" showpackage="1" showpubliconly="0" showstereotype="1" name="FH-Complete" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" canvasheight="571" canvaswidth="1430" localid="-1" snapcsgrid="0" showgrid="0" showops="1" griddotcolor="#000000" backgroundcolor="#ffffff" usefillcolor="1" fillcolor="#ffff00" zoom="100" xmi.id="P5FPHtPtCMUb" documentation="" showscope="1" snapgrid="0" showatts="1" type="9">
<widgets>
<entitywidget width="84" showstereotype="1" x="-208" usesdiagramusefillcolor="1" y="97" usesdiagramfillcolor="0" isinstance="0" fillcolor="#a5abff" height="28" linecolor="none" xmi.id="Pv938OUidhEK" textcolor="none" usefillcolor="1" linewidth="none" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0"/>
<entitywidget width="99" showstereotype="1" x="182" usesdiagramusefillcolor="0" y="234" usesdiagramfillcolor="0" isinstance="0" fillcolor="#ffff00" height="42" linecolor="#ff0000" xmi.id="nMxO39i5g1Kc" textcolor="none" usefillcolor="1" linewidth="none" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0"/>
<entitywidget width="92" showstereotype="1" x="-53" usesdiagramusefillcolor="1" y="260" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="21" linecolor="none" xmi.id="Yix7MhxqogVG" textcolor="none" usefillcolor="1" linewidth="none" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0"/>
<entitywidget width="123" showstereotype="1" x="99" usesdiagramusefillcolor="0" y="147" usesdiagramfillcolor="0" isinstance="0" fillcolor="#ffff00" height="35" linecolor="#ff0000" xmi.id="jrTxafyeJXdz" textcolor="none" usefillcolor="1" linewidth="none" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0"/>
<entitywidget width="63" showstereotype="1" x="181" usesdiagramusefillcolor="0" y="69" usesdiagramfillcolor="0" isinstance="0" fillcolor="#ffff00" height="35" linecolor="#ff0000" xmi.id="wxCGSqFycJP2" textcolor="none" usefillcolor="1" linewidth="none" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0"/>
</widgets>
<messages/>
<associations>
<assocwidget indexa="1" indexb="1" usesdiagramusefillcolor="80" widgetaid="Yix7MhxqogVG" usesdiagramfillcolor="0" fillcolor="#ffff00" linecolor="none" totalcounta="2" xmi.id="Gzh9Toy4M1Lz" widgetbid="Pv938OUidhEK" totalcountb="2" type="519" textcolor="none" usefillcolor="1" linewidth="none" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0">
<linepath layout="Polyline">
<startpoint startx="-53" starty="260"/>
<endpoint endx="-124" endy="125"/>
</linepath>
</assocwidget>
</associations>
</diagram>
<diagram showopsig="1" linecolor="#ff0000" snapx="10" showattribassocs="1" snapy="10" linewidth="0" showattsig="1" textcolor="#000000" isopen="1" showpackage="1" showpubliconly="0" showstereotype="1" name="public" font="DejaVu Sans,9,-1,0,50,0,0,0,0,0" canvasheight="35" canvaswidth="123" localid="-1" snapcsgrid="0" showgrid="0" showops="1" griddotcolor="#000000" backgroundcolor="#ffffff" usefillcolor="1" fillcolor="#ffff00" zoom="100" xmi.id="Yo6RQXytzURP" documentation="" showscope="1" snapgrid="0" showatts="1" type="9">
<widgets>
<entitywidget width="123" showstereotype="1" x="44" usesdiagramusefillcolor="1" y="-52" usesdiagramfillcolor="1" isinstance="0" fillcolor="none" height="35" linecolor="none" xmi.id="jrTxafyeJXdz" textcolor="none" usefillcolor="1" linewidth="none" font="DejaVu Sans,9,-1,0,75,1,0,0,0,0"/>
</widgets>
<messages/>
<associations/>
</diagram>
</diagrams>
</XMI.extension>
</UML:Model>
</UML:Namespace.ownedElement>
</UML:Model>
</XMI.content>
<XMI.extensions xmi.extender="umbrello">
<docsettings viewid="P5FPHtPtCMUb" uniqueid="QWosq1k61PGU" documentation=""/>
<listview>
<listitem open="1" type="800" id="Views">
<listitem open="1" type="821" id="Component View"/>
<listitem open="1" type="827" id="Deployment View"/>
<listitem open="1" type="836" id="Entity Relationship Model">
<listitem open="0" type="835" id="XBCwKAr1zJza">
<listitem open="1" type="832" id="wxCGSqFycJP2"/>
</listitem>
<listitem open="0" type="834" id="P5FPHtPtCMUb" label="FH-Complete"/>
<listitem open="0" type="835" id="VSWYS4jnR9yv">
<listitem open="1" type="832" id="jrTxafyeJXdz"/>
</listitem>
<listitem open="0" type="834" id="Yo6RQXytzURP" label="public"/>
<listitem open="0" type="832" id="nMxO39i5g1Kc">
<listitem open="1" type="841" id="rl5y8zDvJ8HM"/>
<listitem open="1" type="833" id="IxRyyjYUPVbj"/>
</listitem>
<listitem open="0" type="832" id="Pv938OUidhEK">
<listitem open="0" type="833" id="4YLFyXQNadkq"/>
</listitem>
<listitem open="1" type="832" id="Yix7MhxqogVG"/>
</listitem>
<listitem open="0" type="801" id="Logical View">
<listitem open="0" type="830" id="Datatypes">
<listitem open="1" type="829" id="edwM3rd0SCyI"/>
<listitem open="1" type="829" id="ubiV24mgw2pR"/>
<listitem open="1" type="829" id="RNMGsr1WSxrT"/>
<listitem open="1" type="829" id="pSTFeSWY1C11"/>
<listitem open="1" type="829" id="7YsfljvDNSQM"/>
<listitem open="1" type="829" id="Emh8oXXDusUk"/>
<listitem open="1" type="829" id="jTHBR8cEY5RC"/>
<listitem open="1" type="829" id="VvkX8jWMVETI"/>
<listitem open="1" type="829" id="thqOZ1UNDKcG"/>
<listitem open="1" type="829" id="lM4JQVTvRBSX"/>
<listitem open="1" type="829" id="l0VdszOZTdks"/>
<listitem open="1" type="829" id="uxrQBKiuLDXB"/>
<listitem open="1" type="829" id="BtlcWVUFqYWE"/>
<listitem open="1" type="829" id="1z9QAax5XpTi"/>
<listitem open="1" type="829" id="9BaSM7eXzP7V"/>
<listitem open="1" type="829" id="zZRBr3RyZHdI"/>
<listitem open="1" type="829" id="sbjg7Fu7D4XL"/>
<listitem open="1" type="829" id="KzUepsAjXy56"/>
<listitem open="1" type="829" id="eVO9IrpP0PsN"/>
<listitem open="1" type="829" id="SgZEyuZ8MsOX"/>
<listitem open="1" type="829" id="WWsTv0xlZgSf"/>
<listitem open="1" type="829" id="tMm4OJQ0mo92"/>
<listitem open="1" type="829" id="gySeNKzsqqLj"/>
<listitem open="1" type="829" id="32Oa0Rhy089p"/>
<listitem open="1" type="829" id="oGUNwu0oHmsf"/>
<listitem open="1" type="829" id="4Igo5nrjmJN9"/>
<listitem open="1" type="829" id="dNzRDJ8zZaMU"/>
<listitem open="1" type="829" id="VNIm78P9P3wU"/>
<listitem open="1" type="829" id="rnDd4Ykhti64"/>
<listitem open="1" type="829" id="1E3amO2HjI1q"/>
<listitem open="1" type="829" id="RRyoUuIJfTwj"/>
<listitem open="1" type="829" id="zfOtNUvMgzwS"/>
<listitem open="1" type="829" id="yXUMxuiGrCuf"/>
<listitem open="1" type="829" id="Nzk4HlsgAqUd"/>
<listitem open="1" type="829" id="cFFVhNK3BREB"/>
<listitem open="1" type="829" id="wvBcs53F4lJK"/>
<listitem open="1" type="829" id="ikwNBr69UU0p"/>
<listitem open="1" type="829" id="qrvRuK92f7eq"/>
<listitem open="1" type="829" id="UAyf0RGjBA6L"/>
<listitem open="1" type="829" id="AYnhpO0ovU8r"/>
<listitem open="1" type="829" id="dJydP5QZdDHT"/>
<listitem open="1" type="829" id="Mq7B0zq30Ce0"/>
</listitem>
<listitem open="0" type="807" id="oCqH2pwcYFsG" label="FHComplete"/>
<listitem open="0" type="813" id="NxjlpR7qGUNk">
<listitem open="0" type="815" id="vvGmQuamPWq5"/>
<listitem open="0" type="814" id="w0ZF64U63W1B"/>
<listitem open="0" type="815" id="1j42F3EOR8hM"/>
<listitem open="0" type="815" id="Ds9xzqs8lEhm"/>
<listitem open="0" type="815" id="Hhj9f06gk8jx"/>
<listitem open="0" type="814" id="4E1jOTtAnaES"/>
<listitem open="0" type="814" id="213uAePlDX0P"/>
<listitem open="0" type="814" id="8QwJvxiz9jiX"/>
</listitem>
<listitem open="0" type="813" id="RChGZrGmr3fL">
<listitem open="0" type="815" id="pd4xYXtMwYw3"/>
<listitem open="0" type="815" id="fVoJw7b7OKki"/>
<listitem open="0" type="815" id="oRgc7wU3gUAn"/>
<listitem open="0" type="814" id="u0FJAH5mXAT0"/>
<listitem open="0" type="815" id="COOJ6HtBlqd9"/>
<listitem open="0" type="815" id="6WwSPbyXMFFE"/>
<listitem open="0" type="815" id="YQOdeoyRP3Ox"/>
<listitem open="0" type="814" id="8gzJPUHI4EMe"/>
<listitem open="0" type="814" id="R5A9xkIfsBnX"/>
<listitem open="0" type="814" id="AkIhumiVaAY1"/>
<listitem open="0" type="814" id="7vqAUr7k8ita"/>
<listitem open="0" type="814" id="kAv7ejDkPC1o"/>
<listitem open="0" type="814" id="eG4jVRLTTeVM"/>
<listitem open="0" type="814" id="tHA0AI4hgRII"/>
</listitem>
<listitem open="1" type="813" id="HC249p3ahdi0"/>
<listitem open="1" type="813" id="W7jgRDGr8PuF"/>
<listitem open="0" type="813" id="1pNXWzrwoPA2">
<listitem open="0" type="815" id="YJDHS1TULZPv"/>
</listitem>
<listitem open="0" type="813" id="51IG0CBKOtiN">
<listitem open="0" type="814" id="THGEKMZDfdy2"/>
<listitem open="0" type="815" id="ds4Uckfh3sp6"/>
<listitem open="0" type="815" id="Rv7qb73Ex5iZ"/>
<listitem open="0" type="814" id="3EinJkj2SNf3"/>
<listitem open="0" type="815" id="4niBEtFXzjnB"/>
<listitem open="0" type="814" id="P0GeSbOrn37K"/>
<listitem open="0" type="814" id="SYtsmgH9b0tQ"/>
</listitem>
<listitem open="1" type="813" id="D2ntTRvYQDmQ">
<listitem open="0" type="814" id="v7X4AVbvtABG"/>
<listitem open="0" type="815" id="BWtzNhU4W1VR"/>
<listitem open="0" type="815" id="rvfqcTzdffRy"/>
<listitem open="0" type="814" id="4tyrMId12lw0"/>
<listitem open="0" type="814" id="Ag6j1GQCRh2D"/>
<listitem open="0" type="814" id="iaj7LTP4ozpz"/>
<listitem open="0" type="814" id="5JD7596s9kI0"/>
</listitem>
<listitem open="1" type="813" id="L1qcyWcXRmkI"/>
<listitem open="1" type="813" id="DHjcK6auMrP8"/>
</listitem>
<listitem open="1" type="802" id="Use Case View"/>
</listitem>
</listview>
<codegeneration>
<codegenerator language="PostgreSQL"/>
</codegeneration>
</XMI.extensions>
</XMI>
-628
View File
@@ -1,628 +0,0 @@
<?php
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
*/
/*
* Script zur Pruefung der Datenbank
*
* database.inc.php enthaelt die Struktur der Datenbank. Diese wird mit der Produktivdatenbank
* verglichen und eventuelle Aenderungen werden angezeigt.
*/
require_once('../config/system.config.inc.php');
require_once('database.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
$db = new basis_db();
$uid=get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diese Seite');
echo '
<html>
<head>
<title>Datenbank Check</title>
<meta http-equiv="Content-Type" content="text/html; charset="UTF-8">
<link rel="stylesheet" href="../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../include/js/tablesort/table.css" type="text/css">
<script src="../include/js/tablesort/table.js" type="text/javascript"></script>
<script type="text/javascript">
String.prototype.startsWith = function(str)
{
return (this.match("^"+str)==str)
}
function display(id)
{
if(id.startsWith("table."))
disableTables();
if(id.startsWith("schema."))
disableSchemas();
document.getElementById(id).style.display="block";
return false;
}
function disableSchemas()
{
elem = document.getElementsByTagName("div");
for(i=0;i<elem.length;i++)
{
div = elem[i];
if(div.id && (div.id.startsWith("schema.") || div.id.startsWith("table.") || div.id.startsWith("attrib.")))
{
document.getElementById(div.id).style.display="none";
}
}
}
function disableTables()
{
elem = document.getElementsByTagName("div");
for(i=0;i<elem.length;i++)
{
div=elem[i];
if(div.id && (div.id.startsWith("table.") || div.id.startsWith("attrib.")))
{
document.getElementById(div.id).style.display="none";
}
}
}
</script>
<style>
.box
{
border: 1px solid black;
border: 2px solid #E6E6CC;
float: left;
margin: 10px;
padding: 3px;
}
.boxhead
{
background-color: #F3F3E9;
border:0;
text-align: center;
border-bottom: 1px solid #E6E6CC;
font-weight: bold;
}
</style>
</head>
<body>';
echo '<H2>Datenbank Pr&uuml;fung</H2>';
if(isset($_POST['commit']))
{
if(isset($_POST['qry']))
{
if(!$db->db_query($_POST['qry']))
echo $db->db_last_error();
}
}
$obj=array();
$obj['']=array();
$obj['']['error']=false;
//Schema pruefen
foreach ($schemas as $schema)
{
$obj[$schema['name']]=array();
$obj[$schema['name']]['error']=false;
$qry = "SELECT table_schema FROM information_schema.tables WHERE table_schema='".$schema['name']."'";
if($db->db_query($qry))
{
if(!$db->db_num_rows()>0)
{
$obj[$schema['name']]['qry']='CREATE SCHEMA '.$schema['name'].';';
$obj[$schema['name']]['error']=true;
}
}
}
//var_dump($datatypes);
$tabs=array_keys($tabellen);
//print_r($tabs);
$i=0;
foreach ($tabellen AS $tabelle)
{
if(!isset($tabelle['schemaid']) || $tabelle['schemaid']=='')
{
//Tabelle auslassen, wenn kein Schema angegeben ist
echo 'Tabelle '.$tabelle['name'].' ist keinem Schema zugeordnet!<br>';
continue;
}
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]=array();
$sql_query2='';
$pk='';
// Tabelle pruefen
$sql_query="SELECT table_name FROM information_schema.tables WHERE table_schema='".$schemas[$tabelle['schemaid']]['name']."' AND table_name='".$tabelle['name']."';";
if (!$db->db_query($sql_query))
echo '<BR><strong>'.$tabs[$i].': '.$db->db_last_error().' </strong><BR>';
else
{
if ($db->db_num_rows()==0)
{
$sql_query= 'CREATE TABLE '.$schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name']." (";
foreach ($tabelle['attribute'] AS $attribut)
{
if ($datatypes[$attribut['datatypeid']]['name']!='geometry')
{
$sql_query.= $attribut['name'].' ';
if ($attribut['pk'])
$pk.=$attribut['name'].',';
$sql_query.=$datatypes[$attribut['datatypeid']]['name'];
if ($datatypes[$attribut['datatypeid']]['length']==1)
$sql_query.='('.$attribut['datatypeparam1'].')';
if ($datatypes[$attribut['datatypeid']]['length']==2)
$sql_query.='('.$attribut['datatypeparam1'].','.$attribut['datatypeparam2'].')';
if ($attribut['notnull'])
$sql_query.=' NOT NULL';
if ($attribut['unique'])
$sql_query.=' UNIQUE';
if ($attribut['defaultvalue']!="")
$sql_query.=' DEFAULT '.$attribut['defaultvalue'];
if ($attribut['checkconstraint']!="")
$sql_query.=' CHECK ('.$attribut['checkconstraint'].')';
$sql_query.=', ';
}
else
$sql_query2.="SELECT AddGeometryColumn('','".$tabelle['name']."','".$attribut['name']."',-1,'POINT',2);";
}
$sql_query=substr($sql_query,0,-2);
if ($pk!="")
$sql_query.=', CONSTRAINT "pk_'.$schemas[$tabelle['schemaid']]['name'].'_'.$tabelle['name'].'" PRIMARY KEY ('.substr($pk,0,-1).')';
$sql_query.=');';
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['qry']=$sql_query;
$obj[$schemas[$tabelle['schemaid']]['name']]['error']=true;
}
else
{
// Attribute pruefen
foreach ($tabelle['attribute'] AS $attribut)
{
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['attribute'][$attribut['name']]=array();
$qry_query="SELECT column_name FROM information_schema.columns
WHERE table_schema=".$schemas[$tabelle['schemaid']]['name']."'
AND table_name='".$tabelle['name']."' AND column_name='".$attribut['name']."'; ";
if ($db->db_query($sql_query))
{
if ($db->db_num_rows()==0)
{
$sql_query_nn='';
$sql_query='ALTER TABLE '.$schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].'
ADD COLUMN '.$attribut['name'].' ';
$sql_query.=$datatypes[$attribut['datatypeid']]['name'];
if ($datatypes[$attribut['datatypeid']]['length']==1)
$sql_query.='('.$attribut['datatypeparam1'].')';
if ($datatypes[$attribut['datatypeid']]['length']==2)
$sql_query.='('.$attribut['datatypeparam1'].','.$attribut['datatypeparam2'].')';
if ($attribut['unique'])
$sql_query.=' UNIQUE';
if ($attribut['defaultvalue']!="")
$sql_query.=' DEFAULT '.$attribut['defaultvalue'];
else
$attribut['defaultvalue']=$datatypes[$attribut['datatypeid']]['default'];
if ($attribut['checkconstraint']!="")
$sql_query.=' CHECK ('.$attribut['checkconstraint'].')';
if ($attribut['notnull'])
{
$sql_query_nn.='UPDATE '.$schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].'
SET '.$attribut['name'].'='.$attribut['defaultvalue'].';';
$sql_query_nn.='ALTER TABLE '.$schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].'
ALTER COLUMN '.$attribut['name'].' SET NOT NULL;';
}
$sql_query.=';';
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['attribute'][$attribut['name']]['qry']=$sql_query;
$obj[$schemas[$tabelle['schemaid']]['name']]['error']=true;
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['error']=true;
}
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['attribute'][$attribut['name']]['datatype']=$datatypes[$attribut['datatypeid']]['name'];
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['attribute'][$attribut['name']]['attribute']=$attribut;
}
}
}
}
flush();
$i++;
}
// Constraints pruefen
function getTablenameFromAttributIDs($attr)
{
global $tabellen;
global $schemas;
$attributid=null;
foreach ($attr AS $attribut)
$attributid=$attribut;
foreach ($tabellen AS $tabelle)
foreach ($tabelle['attribute'] AS $attribut)
if ($attribut['id']==$attributid)
{
if(isset($tabelle['schemaid']))
return $schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'];
else
return 'public.'.$tabelle['name'];
}
return false;
}
function getAttributesnameFromAttributIDs($attr)
{
global $tabellen;
global $schemas;
$attributes='';
foreach ($attr AS $attributid)
foreach ($tabellen AS $tabelle)
foreach ($tabelle['attribute'] AS $attribute)
if ($attribute['id']==$attributid)
$attributes.=$attribute['name'].', ';
return substr($attributes,0,-2);
}
foreach ($relations AS $relation)
{
$sql_query='';
$pk='';
// Auf Foreign Key pruefen
if (count($relation['foreignkeys'])>0)
{
$parentattr='';
$childattr='';
foreach ($relation['foreignkeys'] AS $foreignkey)
{
$sql_query='';
$parenttable=getTablenameFromAttributIDs($foreignkey['attrparent']);
$childtable=getTablenameFromAttributIDs($foreignkey['attrchild']);
$parentattr.=getAttributesnameFromAttributIDs($foreignkey['attrparent']).', ';
$childattr.=getAttributesnameFromAttributIDs($foreignkey['attrchild']).', ';
}
$parentattr = substr($parentattr, 0, -2);
$childattr = substr($childattr, 0, -2);
list($schema, $tablename) = explode(".", $childtable);
$qry = "SELECT 1 FROM information_schema.key_column_usage
WHERE table_schema='".$schema."' AND table_name='".$tablename."' AND constraint_name='".$relation['name']."'";
if($db->db_query($qry))
{
if($db->db_num_rows()==0)
{
$sql_query='ALTER TABLE '.$childtable.' ADD CONSTRAINT '.$relation['name'].' FOREIGN KEY ('.$childattr.') REFERENCES '.$parenttable.' ('.$parentattr.') ';
$sql_query.='ON UPDATE CASCADE ON DELETE RESTRICT;';
if(isset($obj[$schema]) &&
isset($obj[$schema]['tables'][$tablename]) &&
isset($obj[$schema]['tables'][$tablename]['attribute']) &&
isset($obj[$schema]['tables'][$tablename]['attribute'][$childattr]['qry']))
$obj[$schema]['tables'][$tablename]['attribute'][$childattr]['qry'].=$sql_query;
else
$obj[$schema]['tables'][$tablename]['attribute'][$childattr]['qry']=$sql_query;
$obj[$schema]['error']=true;
$obj[$schema]['tables'][$tablename]['error']=true;
}
}
}
flush();
$i++;
}
// Gegenpruefung
//Prueft ob ein Schema in database.inc.php vorhanden ist
function schemaExists($schema)
{
global $schemas;
foreach ($schemas AS $schemata)
{
if($schemata['name']==$schema)
return true;
}
return false;
}
//Prueft ob eine Tabelle in database.inc.php vorhanden ist
function tableExists($schema, $table)
{
global $schemas;
global $tabellen;
foreach ($schemas AS $schemata)
{
if($schemata['name']==$schema)
$schemaid=$schemata['id'];
}
foreach ($tabellen as $tabelle)
{
if($tabelle['name']==$table && $tabelle['schemaid']==$schemaid)
return true;
}
return false;
}
//Prueft ob eine Tabelle in database.inc.php vorhanden ist
function attributExists($schema, $table, $attribut)
{
global $schemas;
global $tabellen;
foreach ($schemas AS $schemata)
{
if($schemata['name']==$schema)
$schemaid=$schemata['id'];
}
foreach ($tabellen as $tabelle)
{
if($tabelle['name']==$table && $tabelle['schemaid']==$schemaid)
{
foreach($tabelle['attribute'] as $attr)
{
if($attr['name']==$attribut)
return true;
}
return false;
}
}
return false;
}
// Schema
$additionalElements='';
$sql_query="SELECT table_schema FROM information_schema.tables
WHERE table_schema != 'pg_catalog'
AND table_schema != 'information_schema'
AND table_schema != 'sync'
AND table_schema != 'papaya'
GROUP BY table_schema";
if ($result=$db->db_query($sql_query))
{
while ($row_schema=$db->db_fetch_object($result))
{
if (!schemaExists($row_schema->table_schema))
{
$additionalElements.='Schema '.$row_schema->table_schema."\n";
}
else
{
//Tabellen
$qry = "SELECT table_name FROM information_schema.tables WHERE table_schema='".$row_schema->table_schema."'";
if ($result_table=$db->db_query($qry))
{
while($row_table = $db->db_fetch_object($result_table))
{
if(!tableExists($row_schema->table_schema, $row_table->table_name))
{
$additionalElements.='Tabelle '.$row_schema->table_schema.'.'.$row_table->table_name."\n";
}
else
{
//Attribute
$qry = "SELECT column_name FROM information_schema.columns
WHERE table_schema='".$row_schema->table_schema."'
AND table_name='".$row_table->table_name."'";
if($result_attrib = $db->db_query($qry))
{
while($row_attrib = $db->db_fetch_object($result_attrib))
{
if(!attributExists($row_schema->table_schema, $row_table->table_name, $row_attrib->column_name))
{
$additionalElements.='Attribut '.$row_schema->table_schema.'.'.$row_table->table_name.'.'.$row_attrib->column_name."\n";
}
else
{
//KEYs Pruefen
}
}
}
}
}
}
}
}
}
$out_schema="\n";
$out_schema_data="\n";
$out_tbl="\n";
$out_tbl_data="\n";
$out_att="\n";
$out_att_data="\n";
function querybox($title, $qry, $id)
{
$ret="\n";
$ret.='<div class="box" id="'.$id.'" style="display: none">';
$ret.='<div class="boxhead">'.$title.'</div>';
if(strlen($qry)>50)
{
$cols=55;
$rows = strlen($qry)/50+1;
if($rows>10)
$rows = 10;
}
else
{
$cols=strlen($qry);
$rows=1;
}
$ret.='<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
$ret.='<br /><textarea readonly="true" cols="'.$cols.'" rows="'.$rows.'" name="qry">'.$qry.'</textarea>';
$ret.='<br /><br /><input type="submit" value="Commit" name="commit" /></form>';
$ret.='</div>';
return $ret;
}
$out_schema.= '<div class="box" id="schema">';
$out_schema.= '<div class="boxhead">Schema</div>';
$out_schema.= '<table>';
$gesamtqry = '';
$gesamtqry_att='';
foreach ($obj as $schema=>$value)
{
//Schema
$out_schema.= "\n";
$out_schema.= '<tr>';
if($value['error'])
{
if(isset($value['qry']) && $value['qry']!='')
{
$gesamtqry .= $value['qry']."\n";
$out_schema_data.=querybox($schema, $value['qry'], 'schema.'.$schema);
$img = "exclamation.png";
}
else
{
$img = "error_go.png";
}
$out_schema.= '<td><a href="#" onclick="display(\'schema.'.$schema.'\'); return false;"><img src="../skin/images/'.$img.'" /></a></td>';
$out_schema.= '<td><a href="#" onclick="display(\'schema.'.$schema.'\'); return false;">'.$schema.'</a></td>';
}
else
{
$out_schema.= '<td></td>';
$out_schema.= '<td><a href="#" onclick="display(\'schema.'.$schema.'\'); return false;">'.$schema.'</a></td>';
}
$out_schema.= '</tr>';
//Tabelle
if(isset($value['tables']))
{
$out_tbl.= "\n";
$out_tbl.= '<div class="box" id="schema.'.$schema.'" style="display: none">';
$out_tbl.= '<div class="boxhead">'.$schema.'</div>';
$out_tbl.= '<table>';
foreach ($value['tables'] as $tables=>$tabvalue)
{
$out_tbl.= '<tr>';
if(isset($tabvalue['qry']) && $tabvalue['qry']!='')
{
$gesamtqry .= $tabvalue['qry']."\n";
$out_tbl.= '<td><a href="#" onclick="display(\'table.'.$schema.$tables.'\'); return false;"><img src="../skin/images/exclamation.png" /></a></td>';
$out_tbl.= '<td><a href="#" onclick="display(\'table.'.$schema.$tables.'\'); return false;">'.$tables.'</a></td>';
$out_tbl_data.=querybox($tables, $tabvalue['qry'], 'table.'.$schema.$tables);
}
else
{
if(isset($tabvalue['error']) && $tabvalue['error'])
{
$out_tbl.= '<td><a href="#" onclick="display(\'table.'.$schema.$tables.'\'); return false;"><img src="../skin/images/error_go.png" /></a></td>';
$out_tbl.= '<td><a href="#" onclick="display(\'table.'.$schema.$tables.'\'); return false;">'.$tables.'</a></td>';
}
else
{
$out_tbl.= '<td></td>';
$out_tbl.= '<td><a href="#" onclick="display(\'table.'.$schema.$tables.'\'); return false;">'.$tables.'</a></td>';
}
}
$out_tbl.= '</tr>';
//Attribute
if(isset($tabvalue['attribute']))
{
$out_att.= "\n";
$out_att.= '<div class="box" id="table.'.$schema.$tables.'" style="display: none">';
$out_att.= '<div class="boxhead">'.$tables.'</div>';
$out_att.= '<table>';
foreach ($tabvalue['attribute'] as $attrib=>$attvalue)
{
$out_att.= '<tr>';
if(isset($attvalue['qry']) && $attvalue['qry']!='')
{
$gesamtqry_att .= $attvalue['qry']."\n";
$out_att.= '<td><a href="#" onclick="display(\'attrib.'.$schema.$tables.$attrib.'\'); return false;"><img src="../skin/images/exclamation.png" /></a></td>';
$out_att.= '<td><a href="#" onclick="display(\'attrib.'.$schema.$tables.$attrib.'\'); return false;">'.$attrib.'</a></td>';
$out_att_data.=querybox($attrib, $attvalue['qry'], 'attrib.'.$schema.$tables.$attrib);
}
else
{
$out_att.= '<td></td>';
$out_att.= '<td><a href="#" onclick="display(\'attrib.'.$schema.$tables.$attrib.'\'); return false;">'.$attrib.'</a></td>';
$out_att.= '<td>&nbsp;<a href="#" onclick="display(\'attrib.'.$schema.$tables.$attrib.'\'); return false;">'.(isset($attvalue['datatype'])?$attvalue['datatype']:'').($attvalue['attribute']['length']!=''?' ('.$attvalue['attribute']['length'].')':'').'</a></td>';
$out_att.= '<td>&nbsp;<a href="#" onclick="display(\'attrib.'.$schema.$tables.$attrib.'\'); return false;">'.
(isset($attvalue['attribute'])?($attvalue['attribute']['unique']=='1'?'U':''):'').
(isset($attvalue['attribute'])?($attvalue['attribute']['notnull']=='1'?'NN':''):'').
'</a></td>';
}
$out_att.= '</tr>';
}
$out_att.= '</table>';
$out_att.= '</div>';
}
}
$out_tbl.= '</table>';
$out_tbl.= '</div>';
}
}
$out_schema.= '</table>';
$out_schema.= '</div>';
echo '<a href="#" onclick="display(\'schema.gesamtqry\'); return false;"><img src="../skin/images/system-software-update.png" title="Gesamtsystem aktualisieren" alt="Gesamtsystem aktualisieren"></a>&nbsp;&nbsp;';
echo '<a href="#" onclick="display(\'schema.additionalelements\'); return false;"><img src="../skin/images/user-trash-full.png" title="Element die in der DB sind, aber nicht in diesem Script" alt="Element die in der DB sind, aber nicht in diesem Script"><br /></a>';
echo $out_schema;
echo querybox('Gesamtsystem aktualisieren',$gesamtqry.$gesamtqry_att, 'schema.gesamtqry');
echo querybox('Element die in der DB sind, aber nicht in diesem Script',$additionalElements, 'schema.additionalelements');
echo $out_schema_data;
echo $out_tbl;
echo $out_tbl_data;
echo $out_att;
echo $out_att_data;
?>
File diff suppressed because it is too large Load Diff
+71
View File
@@ -127,6 +127,75 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars LIMIT 1"))
else
echo '<br>Granted privileges to <strong>vilesci</strong> on public.vw_msg_vars';
}
if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_person LIMIT 1"))
{
// CREATE OR REPLACE VIEW public.vw_msg_vars and grants privileges
$qry = '
CREATE OR REPLACE VIEW public.vw_msg_vars_person AS (
SELECT DISTINCT ON(p.person_id) p.person_id,
p.nachname AS "Nachname",
p.vorname AS "Vorname",
p.anrede AS "Anrede",
a.strasse AS "Strasse",
a.ort AS "Ort",
a.plz AS "PLZ",
a.gemeinde AS "Gemeinde",
a.langtext AS "Nation",
ke.kontakt AS "Email",
kt.kontakt AS "Telefon"
FROM public.tbl_person p
LEFT JOIN (
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = \'email\'
ORDER BY kontakt_id DESC
) ke USING(person_id)
LEFT JOIN (
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp IN (\'telefon\', \'mobil\')
ORDER BY kontakt_id DESC
) kt USING(person_id)
LEFT JOIN (
SELECT person_id,
strasse,
ort,
plz,
gemeinde,
langtext
FROM public.tbl_adresse
LEFT JOIN bis.tbl_nation ON(bis.tbl_nation.nation_code = public.tbl_adresse.nation)
WHERE public.tbl_adresse.heimatadresse = TRUE
ORDER BY adresse_id DESC
) a USING(person_id)
ORDER BY p.person_id ASC
);';
if(!$db->db_query($qry))
echo '<strong>public.vw_msg_vars_person: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.vw_msg_vars_person view created';
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_person TO web;';
if(!$db->db_query($qry))
echo '<strong>public.vw_msg_vars_person: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to <strong>web</strong> on public.vw_msg_vars_person';
$qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_person TO vilesci;';
if(!$db->db_query($qry))
echo '<strong>public.vw_msg_vars_person: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to <strong>vilesci</strong> on public.vw_msg_vars_person';
}
//Spalte anmerkung und rechnungsadresse in tbl_adresse
if(!$result = @$db->db_query("SELECT rechnungsadresse FROM public.tbl_adresse LIMIT 1"))
{
@@ -1082,6 +1151,8 @@ if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_verarbeitungstaetigkeit"
VALUES('lehrauftraege','Lehraufträge','{\'Lehraufträge\',\'Lehraufträge\'}', true);
INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv)
VALUES('datenwartung','Datenwartung','{\'Datenwartung\',\'Datenwartung\'}', true);
INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv)
VALUES('kommunikation','Kommunikation','{\'Kommunikation\',\'Kommunikation\'}', true);
GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_verarbeitungstaetigkeit TO vilesci;
GRANT SELECT ON system.tbl_verarbeitungstaetigkeit TO web;
+4 -1
View File
@@ -92,7 +92,10 @@ printValue("php-curl", extension_loaded('curl'));
$returnArray = array();
exec('unoconv --version',$returnArray);
if(isset($returnArray[0]))
$unoconvVersion = explode(' ',$returnArray[0])[1];
{
$hlp = explode(' ',$returnArray[0]);
$unoconvVersion = $hlp[1];
}
else
$unoconvVersion = false;
-11
View File
@@ -1,11 +0,0 @@
INSERT INTO bis.tbl_bundesland VALUES (1,'B','Burgenland');
INSERT INTO bis.tbl_bundesland VALUES (2,'K','Kärnten');
INSERT INTO bis.tbl_bundesland VALUES (3,'','Niederösterreich');
INSERT INTO bis.tbl_bundesland VALUES (4,'','Oberösterreich');
INSERT INTO bis.tbl_bundesland VALUES (5,'S','Salzburg');
INSERT INTO bis.tbl_bundesland VALUES (6,'St','Steiermark');
INSERT INTO bis.tbl_bundesland VALUES (7,'T','Tirol');
INSERT INTO bis.tbl_bundesland VALUES (8,'V','Voralberg');
INSERT INTO bis.tbl_bundesland VALUES (9,'W','Wien');
INSERT INTO bis.tbl_bundesland VALUES (10,'EU','Ausland EU');
INSERT INTO bis.tbl_bundesland VALUES (11,'nichtEU','Ausland nicht EU');
File diff suppressed because it is too large Load Diff
-212
View File
@@ -1,212 +0,0 @@
SET search_path = bis, pg_catalog;
INSERT INTO tbl_nation VALUES ('A', 'I', true, true, 'EU', 'Österreich', 'Österreich', 'Austria', NULL);
INSERT INTO tbl_nation VALUES ('ADN', 'E', NULL, NULL, 'AS', 'Jemen (Süd)', 'Jemen (demokrat. VR/Süd)', 'South Yemen', true);
INSERT INTO tbl_nation VALUES ('AFG', 'E', NULL, NULL, 'AS', 'Afghanistan', 'Afghanistan', 'Afghanistan', NULL);
INSERT INTO tbl_nation VALUES ('AGL', 'E', NULL, NULL, 'AF', 'Angola', 'Angola', 'Angola', NULL);
INSERT INTO tbl_nation VALUES ('AGN', 'E', NULL, NULL, 'AF', 'Guinea (Äquat.)', 'Guinea (Äquatorial-g.)', 'Equatorial Guinea', NULL);
INSERT INTO tbl_nation VALUES ('AL', 'E', NULL, NULL, 'EU', 'Albanien', 'Albanien', 'Albania', NULL);
INSERT INTO tbl_nation VALUES ('AND', 'I', NULL, NULL, 'EU', 'Andorra', 'Andorra', 'Andorra', NULL);
INSERT INTO tbl_nation VALUES ('ARM', 'E', NULL, NULL, 'AS', 'Armenien', 'Armenien', 'Armenia', NULL);
INSERT INTO tbl_nation VALUES ('ASB', 'E', NULL, NULL, 'AS', 'Aserbaidschan', 'Aserbaidschan', 'Azerbaijan', NULL);
INSERT INTO tbl_nation VALUES ('ATB', 'E', NULL, NULL, 'AM', 'Antigua/Barbuda', 'Antigua und Barbuda', 'Antigua and Barbuda', NULL);
INSERT INTO tbl_nation VALUES ('AUS', 'I', NULL, NULL, 'AU', 'Australien', 'Australien', 'Australia', NULL);
INSERT INTO tbl_nation VALUES ('B', 'I', true, true, 'EU', 'Belgien', 'Belgien', 'Belgium', NULL);
INSERT INTO tbl_nation VALUES ('BAN', 'E', NULL, NULL, 'AS', 'Bangladesch', 'Bangladesch', 'Bangladesh', NULL);
INSERT INTO tbl_nation VALUES ('BDS', 'E', NULL, NULL, 'AM', 'Barbados', 'Barbados', 'Barbados', NULL);
INSERT INTO tbl_nation VALUES ('BG', 'H', NULL, NULL, 'EU', 'Bulgarien', 'Bulgarien', 'Bulgaria', NULL);
INSERT INTO tbl_nation VALUES ('BH', 'E', NULL, NULL, 'AM', 'Honduras', 'Honduras', 'Honduras', NULL);
INSERT INTO tbl_nation VALUES ('BHU', 'E', NULL, NULL, 'AS', 'Bhutan', 'Bhutan', 'Bhutan', NULL);
INSERT INTO tbl_nation VALUES ('BLR', 'H', NULL, NULL, 'EU', 'Weißrußland', 'Weißrußland', 'Belarus', NULL);
INSERT INTO tbl_nation VALUES ('BLZ', 'E', NULL, NULL, 'AM', 'Belize', 'Belize', 'Belize', NULL);
INSERT INTO tbl_nation VALUES ('BOL', 'E', NULL, NULL, 'AM', 'Bolivien', 'Bolivien', 'Bolivia', NULL);
INSERT INTO tbl_nation VALUES ('BR', 'E', NULL, NULL, 'AM', 'Brasilien', 'Brasilien', 'Brazil', NULL);
INSERT INTO tbl_nation VALUES ('BRG', 'E', NULL, NULL, 'AM', 'Guyana', 'Guyana', 'Guyana', NULL);
INSERT INTO tbl_nation VALUES ('BRN', 'E', NULL, NULL, 'AS', 'Bahrein', 'Bahrein', 'Bahrain', NULL);
INSERT INTO tbl_nation VALUES ('BRU', 'H', NULL, NULL, 'AS', 'Brunei', 'Brunei', 'Brunei', NULL);
INSERT INTO tbl_nation VALUES ('BS', 'H', NULL, NULL, 'AM', 'Bahamas', 'Bahamas', 'Bahamas', NULL);
INSERT INTO tbl_nation VALUES ('BSH', 'E', NULL, NULL, 'EU', 'Bosnien-Herzeg.', 'Bosnien-Herzegowina', 'Bosnia and Herzegovina', NULL);
INSERT INTO tbl_nation VALUES ('BTS', 'E', NULL, NULL, 'AF', 'Bophutatswana', 'Bophutatswana', 'Bophutatswana', true);
INSERT INTO tbl_nation VALUES ('BUR', 'E', NULL, NULL, 'AS', 'Myanmar (Birma)', 'Myanmar (Birma)', 'Myanmar', NULL);
INSERT INTO tbl_nation VALUES ('C', 'E', NULL, NULL, 'AM', 'Kuba', 'Kuba', 'Cuba', NULL);
INSERT INTO tbl_nation VALUES ('CAM', 'E', NULL, NULL, 'AF', 'Kamerun', 'Kamerun', 'Cameroon', NULL);
INSERT INTO tbl_nation VALUES ('CDN', 'I', NULL, NULL, 'AM', 'Kanada', 'Kanada', 'Canada', NULL);
INSERT INTO tbl_nation VALUES ('CH', 'I', NULL, NULL, 'EU', 'Schweiz', 'Schweiz', 'Switzerland', NULL);
INSERT INTO tbl_nation VALUES ('CHF', 'E', NULL, NULL, 'AS', 'China (VR)', 'China (Volksrepublik)', 'China', NULL);
INSERT INTO tbl_nation VALUES ('CI', 'E', NULL, NULL, 'AF', 'Cote d''Ivoire', 'Cote d''Ivoire', 'Ivory Coast', NULL);
INSERT INTO tbl_nation VALUES ('CL', 'E', NULL, NULL, 'AS', 'Sri Lanka', 'Sri Lanka', 'Sri Lanka', NULL);
INSERT INTO tbl_nation VALUES ('CO', 'E', NULL, NULL, 'AM', 'Kolumbien', 'Kolumbien', 'Columbia', NULL);
INSERT INTO tbl_nation VALUES ('CR', 'E', NULL, NULL, 'AM', 'Kostarika', 'Kostarika', 'Costa Rica', NULL);
INSERT INTO tbl_nation VALUES ('CRO', 'E', NULL, NULL, 'EU', 'Kroatien', 'Kroatien', 'Croatia', NULL);
INSERT INTO tbl_nation VALUES ('CS', 'I', NULL, NULL, 'EU', 'Tschechoslowakei', 'Tschechoslowakei', 'Czechoslovakia', true);
INSERT INTO tbl_nation VALUES ('CSK', 'E', NULL, NULL, 'AF', 'Ciskei', 'Ciskei', 'Ciskei', true);
INSERT INTO tbl_nation VALUES ('CY', 'H', NULL, NULL, 'EU', 'Zypern', 'Zypern', 'Cyprus', NULL);
INSERT INTO tbl_nation VALUES ('D', 'I', true, true, 'EU', 'Deutschland', 'Deutschland', 'Germany', NULL);
INSERT INTO tbl_nation VALUES ('DCH', 'E', NULL, NULL, 'AM', 'Dominikan. Rep.', 'Dominikanische Republik', 'Dominican Republic', NULL);
INSERT INTO tbl_nation VALUES ('DDR', 'I', NULL, NULL, 'EU', 'DDR', 'Deutschland (DDR)', 'German Democratic Rep.', true);
INSERT INTO tbl_nation VALUES ('DJI', 'E', NULL, NULL, 'AF', 'Dschibuti', 'Dschibuti', 'Djibouti', NULL);
INSERT INTO tbl_nation VALUES ('DK', 'I', true, true, 'EU', 'Dänemark', 'Dänemark', 'Denmark', NULL);
INSERT INTO tbl_nation VALUES ('DVK', 'E', NULL, NULL, 'AS', 'Korea (Nord)', 'Korea (demokrat. VR/Nord)', 'Korea (democr.P.Republ.)', NULL);
INSERT INTO tbl_nation VALUES ('DY', 'E', NULL, NULL, 'AF', 'Benin', 'Benin', 'Benin', NULL);
INSERT INTO tbl_nation VALUES ('DZ', 'E', NULL, NULL, 'AF', 'Algerien', 'Algerien', 'Algeria', NULL);
INSERT INTO tbl_nation VALUES ('E', 'I', true, true, 'EU', 'Spanien', 'Spanien', 'Spain', NULL);
INSERT INTO tbl_nation VALUES ('EAK', 'E', NULL, NULL, 'AF', 'Kenia', 'Kenia', 'Kenya', NULL);
INSERT INTO tbl_nation VALUES ('EAT', 'E', NULL, NULL, 'AF', 'Tansania', 'Tansania', 'Tanzania', NULL);
INSERT INTO tbl_nation VALUES ('EAU', 'E', NULL, NULL, 'AF', 'Uganda', 'Uganda', 'Uganda', NULL);
INSERT INTO tbl_nation VALUES ('EC', 'E', NULL, NULL, 'AM', 'Ekuador', 'Ekuador', 'Ecuador', NULL);
INSERT INTO tbl_nation VALUES ('ELD', 'H', NULL, NULL, 'EU', 'Estland', 'Estland', 'Estonia', NULL);
INSERT INTO tbl_nation VALUES ('ERI', 'E', NULL, NULL, 'AF', 'Eritrea', 'Eritrea', 'Eritrea', NULL);
INSERT INTO tbl_nation VALUES ('ES', 'E', NULL, NULL, 'AM', 'El Salvador', 'El Salvador', 'El Salvador', NULL);
INSERT INTO tbl_nation VALUES ('ET', 'E', NULL, NULL, 'AF', 'Ägypten', 'Ägypten', 'Egypt', NULL);
INSERT INTO tbl_nation VALUES ('ETH', 'E', NULL, NULL, 'AF', 'Äthiopien', 'Äthiopien', 'Ethiopia', NULL);
INSERT INTO tbl_nation VALUES ('F', 'I', true, true, 'EU', 'Frankreich', 'Frankreich', 'France', NULL);
INSERT INTO tbl_nation VALUES ('FJI', 'E', NULL, NULL, 'AU', 'Fidschi', 'Fidschi', 'Fiji', NULL);
INSERT INTO tbl_nation VALUES ('FL', 'I', NULL, true, 'EU', 'Liechtenstein', 'Liechtenstein', 'Liechtenstein', NULL);
INSERT INTO tbl_nation VALUES ('GAB', 'E', NULL, NULL, 'AF', 'Gabun', 'Gabun', 'Gabon', NULL);
INSERT INTO tbl_nation VALUES ('GB', 'I', true, true, 'EU', 'GB u. Nordirland', 'Grossbrit. u. Nordirland', 'Great Britain & N.Ireland', NULL);
INSERT INTO tbl_nation VALUES ('GCA', 'E', NULL, NULL, 'AM', 'Guatemala', 'Guatemala', 'Guatemala', NULL);
INSERT INTO tbl_nation VALUES ('GG', 'E', NULL, NULL, 'AS', 'Georgien', 'Georgien', 'Georgia', NULL);
INSERT INTO tbl_nation VALUES ('GH', 'E', NULL, NULL, 'AF', 'Ghana', 'Ghana', 'Ghana', NULL);
INSERT INTO tbl_nation VALUES ('GN', 'E', NULL, NULL, 'AF', 'Guinea', 'Guinea', 'Guinea', NULL);
INSERT INTO tbl_nation VALUES ('GNB', 'E', NULL, NULL, 'AF', 'Guinea-Bissau', 'Guinea-Bissau', 'Guinea-Bissau', NULL);
INSERT INTO tbl_nation VALUES ('GR', 'I', true, true, 'EU', 'Griechenland', 'Griechenland', 'Greece', NULL);
INSERT INTO tbl_nation VALUES ('H', 'H', NULL, NULL, 'EU', 'Ungarn', 'Ungarn', 'Hungary', NULL);
INSERT INTO tbl_nation VALUES ('HV', 'E', NULL, NULL, 'AF', 'Burkina Faso', 'Burkina Faso', 'Burkina Faso', NULL);
INSERT INTO tbl_nation VALUES ('I', 'I', true, true, 'EU', 'Italien', 'Italien', 'Italy', NULL);
INSERT INTO tbl_nation VALUES ('IL', 'H', NULL, NULL, 'AS', 'Israel', 'Israel', 'Israel', NULL);
INSERT INTO tbl_nation VALUES ('IND', 'E', NULL, NULL, 'AS', 'Indien', 'Indien', 'India', NULL);
INSERT INTO tbl_nation VALUES ('IR', 'E', NULL, NULL, 'AS', 'Iran', 'Iran', 'Iran', NULL);
INSERT INTO tbl_nation VALUES ('IRL', 'I', true, true, 'EU', 'Irland', 'Irland', 'Ireland', NULL);
INSERT INTO tbl_nation VALUES ('IRQ', 'E', NULL, NULL, 'AS', 'Irak', 'Irak', 'Iraq', NULL);
INSERT INTO tbl_nation VALUES ('IS', 'I', NULL, true, 'EU', 'Island', 'Island', 'Iceland', NULL);
INSERT INTO tbl_nation VALUES ('IST', 'I', true, true, 'EU', 'Italien(S-Tirol)', 'Italien (Südtirol)', 'Italy', NULL);
INSERT INTO tbl_nation VALUES ('J', 'I', NULL, NULL, 'AS', 'Japan', 'Japan', 'Japan', NULL);
INSERT INTO tbl_nation VALUES ('JA', 'E', NULL, NULL, 'AM', 'Jamaika', 'Jamaika', 'Jamaica', NULL);
INSERT INTO tbl_nation VALUES ('JEM', 'E', NULL, NULL, 'AS', 'Jemen', 'Jemen', 'Yemen', NULL);
INSERT INTO tbl_nation VALUES ('JOR', 'E', NULL, NULL, 'AS', 'Jordanien', 'Jordanien', 'Jordan', NULL);
INSERT INTO tbl_nation VALUES ('KAS', 'E', NULL, NULL, 'AS', 'Kasachstan', 'Kasachstan', 'Kazakhstan', NULL);
INSERT INTO tbl_nation VALUES ('KIR', 'E', NULL, NULL, 'AU', 'Kiribati', 'Kiribati', 'Kiribati', NULL);
INSERT INTO tbl_nation VALUES ('KM', 'E', NULL, NULL, 'AF', 'Komoren', 'Komoren', 'Comoros', NULL);
INSERT INTO tbl_nation VALUES ('KRG', 'E', NULL, NULL, 'AS', 'Kirgistan', 'Kirgistan', 'Kyrgyztan', NULL);
INSERT INTO tbl_nation VALUES ('KT', 'H', NULL, NULL, 'AS', 'Kuwait', 'Kuwait', 'Kuwait', NULL);
INSERT INTO tbl_nation VALUES ('KV', 'E', NULL, NULL, 'AF', 'Kap Verde', 'Kap Verde', 'Cap Verde', NULL);
INSERT INTO tbl_nation VALUES ('L', 'I', true, true, 'EU', 'Luxemburg', 'Luxemburg', 'Luxembourg', NULL);
INSERT INTO tbl_nation VALUES ('LAO', 'E', NULL, NULL, 'AS', 'Laos', 'Laos', 'Laos', NULL);
INSERT INTO tbl_nation VALUES ('LB', 'E', NULL, NULL, 'AF', 'Liberia', 'Liberia', 'Liberia', NULL);
INSERT INTO tbl_nation VALUES ('LIT', 'H', NULL, NULL, 'EU', 'Litauen', 'Litauen', 'Lithuania', NULL);
INSERT INTO tbl_nation VALUES ('LLD', 'H', NULL, NULL, 'EU', 'Lettland', 'Lettland', 'Latvia', NULL);
INSERT INTO tbl_nation VALUES ('LS', 'E', NULL, NULL, 'AF', 'Lesotho', 'Lesotho', 'Lesotho', NULL);
INSERT INTO tbl_nation VALUES ('LT', 'H', NULL, NULL, 'AF', 'Libyen', 'Libyen', 'Libya', NULL);
INSERT INTO tbl_nation VALUES ('M', 'E', NULL, NULL, 'EU', 'Malta', 'Malta', 'Malta', NULL);
INSERT INTO tbl_nation VALUES ('MA', 'E', NULL, NULL, 'AF', 'Marokko', 'Marokko', 'Morocco', NULL);
INSERT INTO tbl_nation VALUES ('MAL', 'E', NULL, NULL, 'AS', 'Malaysia', 'Malaysia', 'Malaysia', NULL);
INSERT INTO tbl_nation VALUES ('MAZ', 'E', NULL, NULL, 'EU', 'Mazedonien', 'Mazedonien (eh.Jug.Rep.)', 'Macedonia', NULL);
INSERT INTO tbl_nation VALUES ('MBK', 'E', NULL, NULL, 'AF', 'Mosambik', 'Mosambik', 'Mozambique', NULL);
INSERT INTO tbl_nation VALUES ('MC', 'I', NULL, NULL, 'EU', 'Monaco', 'Monaco', 'Monaco', NULL);
INSERT INTO tbl_nation VALUES ('MDV', 'E', NULL, NULL, 'AS', 'Malediven', 'Malediven', 'Maldives', NULL);
INSERT INTO tbl_nation VALUES ('MEX', 'E', NULL, NULL, 'AM', 'Mexiko', 'Mexiko', 'Mexico', NULL);
INSERT INTO tbl_nation VALUES ('MGL', 'E', NULL, NULL, 'AS', 'Mongolei', 'Mongolei', 'Mongolia', NULL);
INSERT INTO tbl_nation VALUES ('MIK', 'E', NULL, NULL, 'AU', 'Mikronesien', 'Mikronesien', 'Micronesia', NULL);
INSERT INTO tbl_nation VALUES ('MLD', 'E', NULL, NULL, 'EU', 'Moldova', 'Moldova', 'Moldova', NULL);
INSERT INTO tbl_nation VALUES ('MS', 'E', NULL, NULL, 'AF', 'Mauritius', 'Mauritius', 'Mauritius', NULL);
INSERT INTO tbl_nation VALUES ('MSH', 'E', NULL, NULL, 'AU', 'Marshallinseln', 'Marshallinseln', 'Marshall Islands', NULL);
INSERT INTO tbl_nation VALUES ('MW', 'E', NULL, NULL, 'AF', 'Malawi', 'Malawi', 'Malawi', NULL);
INSERT INTO tbl_nation VALUES ('N', 'I', NULL, true, 'EU', 'Norwegen', 'Norwegen', 'Norway', NULL);
INSERT INTO tbl_nation VALUES ('NAM', 'E', NULL, NULL, 'AF', 'Namibia', 'Namibia', 'Namibia', NULL);
INSERT INTO tbl_nation VALUES ('NEP', 'E', NULL, NULL, 'AS', 'Nepal', 'Nepal', 'Nepal', NULL);
INSERT INTO tbl_nation VALUES ('NIC', 'E', NULL, NULL, 'AM', 'Nikaragua', 'Nikaragua', 'Nicaragua', NULL);
INSERT INTO tbl_nation VALUES ('NIG', 'E', NULL, NULL, 'AF', 'Niger', 'Niger', 'Niger', NULL);
INSERT INTO tbl_nation VALUES ('NL', 'I', true, true, 'EU', 'Niederlande', 'Niederlande', 'Netherlands', NULL);
INSERT INTO tbl_nation VALUES ('NR', 'E', NULL, NULL, 'AU', 'Nauru', 'Nauru', 'Nauru', NULL);
INSERT INTO tbl_nation VALUES ('NZ', 'I', NULL, NULL, 'AU', 'Neuseeland', 'Neuseeland', 'New Zealand', NULL);
INSERT INTO tbl_nation VALUES ('OMN', 'E', NULL, NULL, 'AS', 'Oman', 'Oman', 'Oman', NULL);
INSERT INTO tbl_nation VALUES ('P', 'I', true, true, 'EU', 'Portugal', 'Portugal', 'Portugal', NULL);
INSERT INTO tbl_nation VALUES ('PA', 'E', NULL, NULL, 'AM', 'Panama', 'Panama', 'Panama', NULL);
INSERT INTO tbl_nation VALUES ('PAK', 'E', NULL, NULL, 'AS', 'Pakistan', 'Pakistan', 'Pakistan', NULL);
INSERT INTO tbl_nation VALUES ('PE', 'E', NULL, NULL, 'AM', 'Peru', 'Peru', 'Peru', NULL);
INSERT INTO tbl_nation VALUES ('PI', 'E', NULL, NULL, 'AS', 'Philippinen', 'Philippinen', 'Philippines', NULL);
INSERT INTO tbl_nation VALUES ('PL', 'H', NULL, NULL, 'EU', 'Polen', 'Polen', 'Poland', NULL);
INSERT INTO tbl_nation VALUES ('PNG', 'E', NULL, NULL, 'AU', 'Papua-Neuguinea', 'Papua-Neuguinea', 'Papua New Guinea', NULL);
INSERT INTO tbl_nation VALUES ('PY', 'E', NULL, NULL, 'AM', 'Paraguay', 'Paraguay', 'Paraguay', NULL);
INSERT INTO tbl_nation VALUES ('QTR', 'H', NULL, NULL, 'AS', 'Katar', 'Katar', 'Qatar', NULL);
INSERT INTO tbl_nation VALUES ('R', 'H', NULL, NULL, 'EU', 'Rumänien', 'Rumänien', 'Romania', NULL);
INSERT INTO tbl_nation VALUES ('RA', 'E', NULL, NULL, 'AM', 'Argentinien', 'Argentinien', 'Argentina', NULL);
INSERT INTO tbl_nation VALUES ('RB', 'E', NULL, NULL, 'AF', 'Botswana', 'Botswana', 'Botswana', NULL);
INSERT INTO tbl_nation VALUES ('RC', 'H', NULL, NULL, 'AS', 'China (Taiwan)', 'China (Republik/Taiwan)', 'Taiwan', NULL);
INSERT INTO tbl_nation VALUES ('RCA', 'E', NULL, NULL, 'AF', 'Zentralafr. Rep.', 'Zentralafrikan. Republik', 'Central African Republic', NULL);
INSERT INTO tbl_nation VALUES ('RCB', 'E', NULL, NULL, 'AF', 'Kongo (Republik)', 'Kongo (Republik)', 'Congo (Rep.)', NULL);
INSERT INTO tbl_nation VALUES ('RCH', 'E', NULL, NULL, 'AM', 'Chile', 'Chile', 'Chile', NULL);
INSERT INTO tbl_nation VALUES ('RH', 'E', NULL, NULL, 'AM', 'Haiti', 'Haiti', 'Haiti', NULL);
INSERT INTO tbl_nation VALUES ('RI', 'E', NULL, NULL, 'AS', 'Indonesien', 'Indonesien', 'Indonesia', NULL);
INSERT INTO tbl_nation VALUES ('RIM', 'E', NULL, NULL, 'AF', 'Mauretanien', 'Mauretanien', 'Mauritania', NULL);
INSERT INTO tbl_nation VALUES ('RL', 'E', NULL, NULL, 'AS', 'Libanon', 'Libanon', 'Lebanon', NULL);
INSERT INTO tbl_nation VALUES ('RM', 'E', NULL, NULL, 'AF', 'Madagaskar', 'Madagaskar', 'Madagascar', NULL);
INSERT INTO tbl_nation VALUES ('RMM', 'E', NULL, NULL, 'AF', 'Mali', 'Mali', 'Mali', NULL);
INSERT INTO tbl_nation VALUES ('ROK', 'H', NULL, NULL, 'AS', 'Korea (Süd)', 'Korea (Republik/Süd)', 'Republic of Korea', NULL);
INSERT INTO tbl_nation VALUES ('RSF', 'H', NULL, NULL, 'EU', 'Rußland', 'Rußland', 'Russian Federation', NULL);
INSERT INTO tbl_nation VALUES ('RSM', 'I', NULL, NULL, 'EU', 'San Marino', 'San Marino', 'San Marino', NULL);
INSERT INTO tbl_nation VALUES ('RSR', 'E', NULL, NULL, 'AF', 'Simbabwe', 'Simbabwe', 'Zimbabwe', NULL);
INSERT INTO tbl_nation VALUES ('RU', 'E', NULL, NULL, 'AF', 'Burundi', 'Burundi', 'Burundi', NULL);
INSERT INTO tbl_nation VALUES ('RWA', 'E', NULL, NULL, 'AF', 'Rwanda', 'Rwanda', 'Rwanda', NULL);
INSERT INTO tbl_nation VALUES ('S', 'I', true, true, 'EU', 'Schweden', 'Schweden', 'Sweden', NULL);
INSERT INTO tbl_nation VALUES ('SA', 'E', NULL, NULL, 'AS', 'Saudi-Arabien', 'Saudi-Arabien', 'Saudi Arabia', NULL);
INSERT INTO tbl_nation VALUES ('SCN', 'E', NULL, NULL, 'AM', 'St.Kitts / Nevis', 'Sankt Kitts und Nevis', 'Saint Kitts and Nevis', NULL);
INSERT INTO tbl_nation VALUES ('SD', 'E', NULL, NULL, 'AF', 'Swasiland', 'Swasiland', 'Swaziland', NULL);
INSERT INTO tbl_nation VALUES ('SF', 'I', true, true, 'EU', 'Finnland', 'Finnland', 'Finland', NULL);
INSERT INTO tbl_nation VALUES ('SGP', 'H', NULL, NULL, 'AS', 'Singapur', 'Singapur', 'Singapore', NULL);
INSERT INTO tbl_nation VALUES ('SHR', 'E', NULL, NULL, 'AF', 'Sahara', 'Sahara', 'Sahara', NULL);
INSERT INTO tbl_nation VALUES ('SLM', 'E', NULL, NULL, 'AU', 'Salomonen', 'Salomonen', 'Salomon Islands', NULL);
INSERT INTO tbl_nation VALUES ('SLO', 'E', NULL, NULL, 'EU', 'Slowenien', 'Slowenien', 'Slovenia', NULL);
INSERT INTO tbl_nation VALUES ('SME', 'E', NULL, NULL, 'AM', 'Surinam', 'Surinam', 'Suriname', NULL);
INSERT INTO tbl_nation VALUES ('SN', 'E', NULL, NULL, 'AF', 'Senegal', 'Senegal', 'Senegal', NULL);
INSERT INTO tbl_nation VALUES ('SP', 'E', NULL, NULL, 'AF', 'Somalia', 'Somalia', 'Somalia', NULL);
INSERT INTO tbl_nation VALUES ('SQ', 'H', NULL, NULL, 'EU', 'Slowakei', 'Slowakei', 'Slovakia', NULL);
INSERT INTO tbl_nation VALUES ('STP', 'E', NULL, NULL, 'AF', 'Sao Tome/Princ.', 'Sao Tome und Principe', 'Sao Tome and Principe', NULL);
INSERT INTO tbl_nation VALUES ('SU', 'I', NULL, NULL, 'EU', 'Sowjetunion', 'Sowjetunion', 'Soviet Union', true);
INSERT INTO tbl_nation VALUES ('SUD', 'E', NULL, NULL, 'AF', 'Sudan', 'Sudan', 'Sudan', NULL);
INSERT INTO tbl_nation VALUES ('SY', 'E', NULL, NULL, 'AF', 'Seychellen', 'Seychellen', 'Seychelles', NULL);
INSERT INTO tbl_nation VALUES ('SYR', 'E', NULL, NULL, 'AS', 'Syrien', 'Syrien', 'Syria', NULL);
INSERT INTO tbl_nation VALUES ('T', 'E', NULL, NULL, 'AS', 'Thailand', 'Thailand', 'Thailand', NULL);
INSERT INTO tbl_nation VALUES ('TA', 'E', NULL, NULL, 'AU', 'Tonga', 'Tonga', 'Tonga', NULL);
INSERT INTO tbl_nation VALUES ('TCH', 'H', NULL, NULL, 'EU', 'Tschechien', 'Tschechien', 'Czech Republic', NULL);
INSERT INTO tbl_nation VALUES ('TD', 'E', NULL, NULL, 'AF', 'Tschad', 'Tschad', 'Chad', NULL);
INSERT INTO tbl_nation VALUES ('TDS', 'E', NULL, NULL, 'AS', 'Tadschikistan', 'Tadschikistan', 'Tajikistan', NULL);
INSERT INTO tbl_nation VALUES ('TG', 'E', NULL, NULL, 'AF', 'Togo', 'Togo', 'Togo', NULL);
INSERT INTO tbl_nation VALUES ('TKM', 'E', NULL, NULL, 'AS', 'Turkmenistan', 'Turkmenistan', 'Turkmenistan', NULL);
INSERT INTO tbl_nation VALUES ('TN', 'E', NULL, NULL, 'AF', 'Tunesien', 'Tunesien', 'Tunesia', NULL);
INSERT INTO tbl_nation VALUES ('TR', 'E', NULL, NULL, 'EU', 'Türkei', 'Türkei', 'Turkey', NULL);
INSERT INTO tbl_nation VALUES ('TSK', 'E', NULL, NULL, 'AF', 'Transkei', 'Transkei', 'Transkei', true);
INSERT INTO tbl_nation VALUES ('TT', 'E', NULL, NULL, 'AM', 'Trinidad/Tobago', 'Trinidad und Tobago', 'Trinidad & Tobago', NULL);
INSERT INTO tbl_nation VALUES ('TVL', 'E', NULL, NULL, 'AU', 'Tuvalu', 'Tuvalu', 'Tuvalu', NULL);
INSERT INTO tbl_nation VALUES ('U', 'E', NULL, NULL, 'AM', 'Uruguay', 'Uruguay', 'Uruguay', NULL);
INSERT INTO tbl_nation VALUES ('UBK', 'E', NULL, NULL, 'AS', 'Usbekistan', 'Usbekistan', 'Uzbekistan', NULL);
INSERT INTO tbl_nation VALUES ('UKR', 'H', NULL, NULL, 'EU', 'Ukraine', 'Ukraine', 'Ukraine', NULL);
INSERT INTO tbl_nation VALUES ('USA', 'I', NULL, NULL, 'AM', 'USA', 'Vereinigte St. v. Amerika', 'United States of America', NULL);
INSERT INTO tbl_nation VALUES ('V', 'I', NULL, NULL, 'EU', 'Vatikan', 'Vatikan', 'Vatican', NULL);
INSERT INTO tbl_nation VALUES ('VDA', 'E', NULL, NULL, 'AF', 'Venda', 'Venda', 'Venda', true);
INSERT INTO tbl_nation VALUES ('VE', 'H', NULL, NULL, 'AS', 'V. arab. Emirate', 'Vereinigte arab. Emirate', 'United Arab Emirates', NULL);
INSERT INTO tbl_nation VALUES ('VN', 'E', NULL, NULL, 'AS', 'Vietnam', 'Vietnam', 'Viet Nam', NULL);
INSERT INTO tbl_nation VALUES ('VTU', 'E', NULL, NULL, 'AU', 'Vanuatu', 'Vanuatu', 'Vanuatu', NULL);
INSERT INTO tbl_nation VALUES ('WAG', 'E', NULL, NULL, 'AF', 'Gambia', 'Gambia', 'Gambia', NULL);
INSERT INTO tbl_nation VALUES ('WAL', 'E', NULL, NULL, 'AF', 'Sierra Leone', 'Sierra Leone', 'Sierra Leone', NULL);
INSERT INTO tbl_nation VALUES ('WAN', 'E', NULL, NULL, 'AF', 'Nigeria', 'Nigeria', 'Nigeria', NULL);
INSERT INTO tbl_nation VALUES ('WD', 'E', NULL, NULL, 'AM', 'Dominica', 'Dominica', 'Dominica', NULL);
INSERT INTO tbl_nation VALUES ('WG', 'E', NULL, NULL, 'AM', 'Grenada', 'Grenada', 'Grenada', NULL);
INSERT INTO tbl_nation VALUES ('WL', 'E', NULL, NULL, 'AM', 'Sankt Lucia', 'Sankt Lucia', 'Saint Lucia', NULL);
INSERT INTO tbl_nation VALUES ('WS', 'E', NULL, NULL, 'AU', 'Samoa', 'Samoa', 'Samoa', NULL);
INSERT INTO tbl_nation VALUES ('WV', 'E', NULL, NULL, 'AM', 'St.Vincent/Gren.', 'Sankt Vincent/Grenadinen', 'Saint Vincent/Grenadines', NULL);
INSERT INTO tbl_nation VALUES ('XXX', 'X', NULL, NULL, NULL, 'Stbg. ungeklärt', 'Stbg. ungeklärt', 'unclear', NULL);
INSERT INTO tbl_nation VALUES ('YU', 'E', NULL, NULL, 'EU', 'Jugoslawien', 'Jugoslawien (und Kosovo)', 'Yugoslavia', NULL);
INSERT INTO tbl_nation VALUES ('YV', 'E', NULL, NULL, 'AM', 'Venezuela', 'Venezuela', 'Venezuela', NULL);
INSERT INTO tbl_nation VALUES ('Z', 'E', NULL, NULL, 'AF', 'Sambia', 'Sambia', 'Zambia', NULL);
INSERT INTO tbl_nation VALUES ('ZA', 'E', NULL, NULL, 'AF', 'Südafrika', 'Südafrika', 'South Africa', NULL);
INSERT INTO tbl_nation VALUES ('ZR', 'E', NULL, NULL, 'AF', 'Kongo (Dem.Rep.)', 'Kongo (Demokrat.Republik)', 'Republic of the Congo', NULL);
INSERT INTO tbl_nation VALUES ('ZZZ', 'Z', NULL, NULL, NULL, 'Staatenlos', 'Staatenlos', 'stateless', NULL);
INSERT INTO tbl_nation VALUES ('PAL', 'E', NULL, NULL, 'AS', 'Palau Inseln', 'Palau Inseln', 'Palau Islands', NULL);
INSERT INTO tbl_nation VALUES ('PST', 'E', NULL, NULL, 'AS', 'Palästina', 'Palästina', 'Palestine', NULL);
INSERT INTO tbl_nation VALUES ('NU', 'E', NULL, NULL, 'AU', 'Niue', 'Niue', 'Niue', NULL);
INSERT INTO tbl_nation VALUES ('K', 'E', NULL, NULL, 'AS', 'Kambodscha', 'Königreich Kambodscha', 'Cambodia', NULL);
INSERT INTO tbl_nation VALUES ('SB', 'I', NULL, NULL, 'EU', 'Serbien', 'Republik Serbien', 'Republic of Serbia', NULL);
INSERT INTO tbl_nation VALUES ('SBM', 'I', NULL, NULL, 'EU', 'Serbien/Montenegro', 'Serbien/Montenegro', 'Serbia/Montenegro', NULL);
INSERT INTO tbl_nation VALUES ('MO', 'I', NULL, NULL, 'EU', 'Montenegro', 'Republik Montenegro', 'Republic of Montenegro', NULL);
-284
View File
@@ -1,284 +0,0 @@
-- INSERTS fuer St.Poelten DB
-- Erhalter
INSERT INTO public.tbl_erhalter(erhalter_kz, kurzbz, bezeichnung, dvr, logo, zvr) VALUES(13,'FHSTP', 'Fachhochschule St. Pölten', '','','');
-- OrgForm
INSERT INTO bis.tbl_orgform(orgform_kurzbz, code, bezeichnung) VALUES ('VZ', 1, 'Vollzeit');
INSERT INTO bis.tbl_orgform(orgform_kurzbz, code, bezeichnung) VALUES ('BB', 2, 'Berufsbegleitend');
INSERT INTO bis.tbl_orgform(orgform_kurzbz, code, bezeichnung) VALUES ('VBB', 3, 'Vollzeit und Berufsbeleitend');
INSERT INTO bis.tbl_orgform(orgform_kurzbz, code, bezeichnung) VALUES ('ZGS', 4, 'Zielgruppenspezifisch');
-- Studiengang
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('0','fh','d','Fachhochschule','1','A','1','13','VZ',null);
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('2','sb','d','xxxSozialarbeit- berufsbegleitend','8','C','2','13','VZ','14');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('1','vo','d','xxxVerkehrsinformatik und Verkehrsökologie','8','C','2','13','VZ','15');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('261','mt','b','Bakkalaureatsstudiengang Medientechnik','6','C','2','13','VZ','16');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('323','sa','m','Magisterstudiengang Sozialarbeit','3','C','2','13','VZ','17');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('410','is','b','Bakkalaureatsstudiengang IT Security','6','C','2','13','VZ','18');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('405','bc','b','Bakkalaureatsstudiengang Computersimulation','6','C','2','13','VZ','19');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('403','bm','b','Bachelorstudiengang Medienmanagement','6','C','2','13','VZ','20');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('409','mk','b','Bachelorstudiengang Media- und Kommunikationsberatung','6','C','2','13','VZ','21');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('407','di','b','Diätologie','6','C','2','13','VZ','23');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('408','pt','b','Physiotherapie','6','C','2','13','VZ','24');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('406','bs','b','Bachelorstudiengang Soziale Arbeit','6','C','2','13','VZ','22');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('38','tm','d','Telekommunikation und Medien','8','C','2','13','VZ','10');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('88','mm','d','Medienmanagement','8','C','2','13','VZ','11');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('95','cs','d','Computersimulation','8','C','2','13','VZ','12');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('96','so','d','Sozialarbeit','8','C','2','13','VZ','13');
INSERT INTO public.tbl_studiengang(studiengang_kz, kurzbz, typ, bezeichnung, max_semester, max_verband, max_gruppe, erhalter_kz, orgform_kurzbz, ext_id) VALUES('262','ma','m','Masterstudiengang Telekommunikation und Medien','3','C','2','13','VZ','25');
-- Sprache
INSERT INTO public.tbl_sprache(sprache) VALUES('German');
INSERT INTO public.tbl_sprache(sprache) VALUES('English');
INSERT INTO public.tbl_sprache(sprache) VALUES('Espanol');
-- Fachbereich
INSERT INTO public.tbl_fachbereich(fachbereich_kurzbz, bezeichnung, farbe, studiengang_kz, ext_id, aktiv) VALUES('Dummy','','','0',null,true);
-- Ausbildung
INSERT INTO bis.tbl_ausbildung VALUES (1, 'PhD', 'Universitätsabschluss mit Doktorat als Zweit- oder Drittabschluss oder PhD-Abschluss');
INSERT INTO bis.tbl_ausbildung VALUES (3, 'FH-Master', 'Fachhochschulabschluss auf Diplom- oder Masterebene');
INSERT INTO bis.tbl_ausbildung VALUES (4, 'Univ.-Bachelor', 'Universitäts- oder Hochschulabschluss auf Bachelorebene (einschließlich Kurzstudien)');
INSERT INTO bis.tbl_ausbildung VALUES (5, 'FH-Bachelor', 'Fachhochschulabschluss auf Bachelorebene');
INSERT INTO bis.tbl_ausbildung VALUES (6, 'Akad-Diplom', 'Diplom einer Akademie für Lehrerbildung, Akademie für Sozialarbeit, Medizinisch-technische Akademie, Hebammenakademie, Militärakademie oder einer anderen anerkannten postsekundären Bildungseinrichtung');
INSERT INTO bis.tbl_ausbildung VALUES (8, 'AHS', 'Reifeprüfung an einer allgemeinbildenden höheren Schule');
INSERT INTO bis.tbl_ausbildung VALUES (9, 'BHS', 'Reife- und Diplomprüfung einer berufsbildenden oder lehrer- und erzieherbildenden höheren Schule');
INSERT INTO bis.tbl_ausbildung VALUES (10, 'Lehrabschluss', 'Lehrabschlussprüfung, berufsbildende mittlere Schule oder vergleichbare Berufsausbildung');
INSERT INTO bis.tbl_ausbildung VALUES (11, 'Pflichtschule', 'Pflichtschule');
INSERT INTO bis.tbl_ausbildung VALUES (7, 'tertiär', 'Anderer tertiärer Bildungsabschluss (Kolleg; Meisterprüfung; Universitätslehrgang oder Lehrgang gemäß §14a Abs.3 FHStG, mit dem kein akademischer Grad verbunden war)');
INSERT INTO bis.tbl_ausbildung VALUES (2, 'Univ.-Master', 'Universitäts- oder Hochschulabschluss auf Diplom- oder Masterebene, Doktorat der Medizin bzw. der Human- oder Zahnmedizin oder Doktorat auf Grund von Studienvorschriften aus der Zeit vor dem Inkrafttretendes AHStG BGBl. Nr. 177/1966 oder Abschluss eines Universitätslehrganges oder Lehrganges universitären Charakters (§51 Abs. 2 Z 23 UG 2002 oder §§26 Abs.1 und 28 Abs.1 UniStG) oder eines Lehrganges zur Weiterbildung (§14a Abs.2 FHStG) mit Mastergrad');
-- Studiensemester
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2001', '2001-09-03', '2002-01-31', NULL, 'Wintersemester 2001/2002');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('SS2006', '2006-02-13', '2006-07-01', 9, 'Sommersemester 2006');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('SS2005', '2005-02-14', '2005-07-02', 7, 'Sommersemester 2005');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('SS2004', '2004-02-03', '2004-07-03', 5, 'Sommersemester 2004');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('SS2003', '2003-02-02', '2003-07-02', 3, 'Sommersemester 2003');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('SS2002', '2002-02-01', '2002-07-01', 1, 'Sommersemester 2002');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('SS2009', '2009-02-05', '2009-07-05', 15, 'Sommersemester 2009');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('SS2007', '2007-02-12', '2007-07-01', 11, 'Sommersemester 2007');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('SS2008', '2008-02-04', '2008-07-04', 13, 'Sommersemester 2008');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2009', '2009-09-04', '2010-02-04', 16, 'Wintersemester 2009/2010');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2008', '2008-09-03', '2009-02-03', 14, 'Wintersemester 2008/2009');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2006', '2006-09-04', '2007-02-03', 10, 'Wintersemester 2006/2007');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2005', '2005-09-05', '2006-02-04', 8, 'Wintersemester 2005/2006');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2004', '2004-09-06', '2005-02-05', 6, 'Wintersemester 2004/2005');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2003', '2003-09-02', '2004-02-02', 4, 'Wintersemester 2003/2004');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2002', '2002-09-01', '2003-02-01', 2, 'Wintersemester 2002/2003');
INSERT INTO public.tbl_studiensemester(studiensemester_kurzbz, start, ende, ext_id, bezeichnung) VALUES ('WS2007', '2007-09-01', '2008-02-01', 12, 'Wintersemester 2007/2008');
-- tbl_kontakttyp; Type: TABLE DATA; Schema: public;
SET search_path = public, pg_catalog;
INSERT INTO tbl_kontakttyp VALUES ('email', 'E-Mail');
INSERT INTO tbl_kontakttyp VALUES ('telefon', 'Telefonnummer');
INSERT INTO tbl_kontakttyp VALUES ('mobil', 'Mobiltelefonnummer');
INSERT INTO tbl_kontakttyp VALUES ('fax', 'Faxnummer');
INSERT INTO tbl_kontakttyp VALUES ('so.tel', 'sonstige Telefonnummer');
-- tbl_ausbildung; Type: TABLE DATA; Schema: bis;
SET search_path = bis, pg_catalog;
INSERT INTO tbl_ausbildung VALUES (1, 'PhD', 'Universitätsabschluss mit Doktorat als Zweit- oder Drittabschluss oder PhD-Abschluss');
INSERT INTO tbl_ausbildung VALUES (3, 'FH-Master', 'Fachhochschulabschluss auf Diplom- oder Masterebene');
INSERT INTO tbl_ausbildung VALUES (4, 'Univ.-Bachelor', 'Universitäts- oder Hochschulabschluss auf Bachelorebene (einschließlich Kurzstudien)');
INSERT INTO tbl_ausbildung VALUES (5, 'FH-Bachelor', 'Fachhochschulabschluss auf Bachelorebene');
INSERT INTO tbl_ausbildung VALUES (6, 'Akad-Diplom', 'Diplom einer Akademie für Lehrerbildung, Akademie für Sozialarbeit, Medizinisch-technische Akademie, Hebammenakademie, Militärakademie oder einer anderen anerkannten postsekundären Bildungseinrichtung');
INSERT INTO tbl_ausbildung VALUES (8, 'AHS', 'Reifeprüfung an einer allgemeinbildenden höheren Schule');
INSERT INTO tbl_ausbildung VALUES (9, 'BHS', 'Reife- und Diplomprüfung einer berufsbildenden oder lehrer- und erzieherbildenden höheren Schule');
INSERT INTO tbl_ausbildung VALUES (10, 'Lehrabschluss', 'Lehrabschlussprüfung, berufsbildende mittlere Schule oder vergleichbare Berufsausbildung');
INSERT INTO tbl_ausbildung VALUES (11, 'Pflichtschule', 'Pflichtschule');
INSERT INTO tbl_ausbildung VALUES (7, 'tertiär', 'Anderer tertiärer Bildungsabschluss (Kolleg; Meisterprüfung; Universitätslehrgang oder Lehrgang gemäß §14a Abs.3 FHStG, mit dem kein akademischer Grad verbunden war)');
INSERT INTO tbl_ausbildung VALUES (2, 'Univ.-Master', 'Universitäts- oder Hochschulabschluss auf Diplom- oder Masterebene, Doktorat der Medizin bzw. der Human- oder Zahnmedizin oder Doktorat auf Grund von Studienvorschriften aus der Zeit vor dem Inkrafttretendes AHStG BGBl. Nr. 177/1966 oder Abschluss eines Universitätslehrganges oder Lehrganges universitären Charakters (§51 Abs. 2 Z 23 UG 2002 oder §§26 Abs.1 und 28 Abs.1 UniStG) oder eines Lehrganges zur Weiterbildung (§14a Abs.2 FHStG) mit Mastergrad');
-- tbl_zeitsperretyp; Type: TABLE DATA; Schema: campus;
SET search_path = campus, pg_catalog;
INSERT INTO tbl_zeitsperretyp VALUES ('ReiseAL', 'Dienstreise Ausland', '00BFFF');
INSERT INTO tbl_zeitsperretyp VALUES ('Amt', 'Behördenweg', 'B3B3B3');
INSERT INTO tbl_zeitsperretyp VALUES ('Schulung', 'Weiterbildung', '99FF99');
INSERT INTO tbl_zeitsperretyp VALUES ('Sonstige', 'Sonstiges', '9966CC');
INSERT INTO tbl_zeitsperretyp VALUES ('Telework', 'Heimarbeit', 'FFCCFF');
INSERT INTO tbl_zeitsperretyp VALUES ('ReiseIL', 'Diensreise Inland', '00D926');
INSERT INTO tbl_zeitsperretyp VALUES ('DienstV', 'Dienstverhinderung', 'B3B364');
INSERT INTO tbl_zeitsperretyp VALUES ('DienstF', 'Dienstfreistellung', '39DFA4');
INSERT INTO tbl_zeitsperretyp VALUES ('Krank', 'Krankheit/Spitalsaufenthalt', 'B3B300');
INSERT INTO tbl_zeitsperretyp VALUES ('ZA', 'Zeitausgleich', 'FFA605');
INSERT INTO tbl_zeitsperretyp VALUES ('Arzt', 'Arztbesuch', '0066FF');
INSERT INTO tbl_zeitsperretyp VALUES ('Konfernz', 'Konferenz/Tagung/Seminar', 'CC6633');
INSERT INTO tbl_zeitsperretyp VALUES ('Urlaub', 'Urlaub', 'FF0000');
-- tbl_lehrfunktion; Type: TABLE DATA; Schema: lehre;
SET search_path = lehre, pg_catalog;
INSERT INTO tbl_lehrfunktion VALUES ('LV-Leitung', 'Lehrveranstaltungsleiter', 1.10);
INSERT INTO tbl_lehrfunktion VALUES ('Betreuung', 'Betreuer', 0.90);
INSERT INTO tbl_lehrfunktion VALUES ('Lektor', 'Lektor', 1.00);
INSERT INTO tbl_lehrfunktion VALUES ('Zweitbetreuung', 'Zweitbetreuung', 0.90);
-- tbl_betriebsmitteltyp; Type: TABLE DATA; Schema: public;
SET search_path = public, pg_catalog;
INSERT INTO tbl_betriebsmitteltyp VALUES ('Zutrittskarte', 'Zutrittskarte', NULL, NULL);
INSERT INTO tbl_betriebsmitteltyp VALUES ('Schluessel', NULL, NULL, NULL);
INSERT INTO tbl_betriebsmitteltyp VALUES ('Laptop', NULL, NULL, NULL);
-- tbl_firmentyp; Type: TABLE DATA; Schema: public;
SET search_path = public, pg_catalog;
INSERT INTO tbl_firmentyp VALUES ('Partnerfirma', '');
INSERT INTO tbl_firmentyp VALUES ('Partneruniversität', '');
INSERT INTO tbl_firmentyp VALUES ('Fachhochschule', 'Fachhochschule');
-- tbl_projekttyp; Type: TABLE DATA; Schema: lehre;
SET search_path = lehre, pg_catalog;
INSERT INTO tbl_projekttyp VALUES ('Bachelor', 'Bachelorarbeit');
INSERT INTO tbl_projekttyp VALUES ('Diplom', 'Diplomarbeit');
INSERT INTO tbl_projekttyp VALUES ('Projekt', 'Projektarbeit');
INSERT INTO tbl_projekttyp VALUES ('Praktikum', 'Berufspraktikum');
INSERT INTO tbl_projekttyp VALUES ('Praxis', 'Praxissemester');
-- tbl_pruefungstyp; Type: TABLE DATA; Schema: lehre;
SET search_path = lehre, pg_catalog;
INSERT INTO tbl_pruefungstyp VALUES ('undefiniert', NULL, false);
INSERT INTO tbl_pruefungstyp VALUES ('Bachelor', 'Bachelorprüfung', true);
INSERT INTO tbl_pruefungstyp VALUES ('Diplom', 'Diplomprüfung', true);
INSERT INTO tbl_pruefungstyp VALUES ('Termin1', '1. Termin', false);
INSERT INTO tbl_pruefungstyp VALUES ('Termin2', '2. Termin', false);
INSERT INTO tbl_pruefungstyp VALUES ('kommPruef', 'kommissionelle Prüfung', false);
-- tbl_erreichbarkeit; Type: TABLE DATA; Schema: campus;
SET search_path = campus, pg_catalog;
INSERT INTO tbl_erreichbarkeit VALUES ('t', 'telefonisch', NULL);
INSERT INTO tbl_erreichbarkeit VALUES ('e', 'eMail', NULL);
INSERT INTO tbl_erreichbarkeit VALUES ('et', 'eMail oder Telefon', NULL);
INSERT INTO tbl_erreichbarkeit VALUES ('n', 'Nicht erreichbar!', 'FF0000');
-- tbl_zeitsperretyp; Type: TABLE DATA; Schema: campus;
SET search_path = campus, pg_catalog;
INSERT INTO tbl_zeitsperretyp VALUES ('ReiseAL', 'Dienstreise Ausland', '00BFFF');
INSERT INTO tbl_zeitsperretyp VALUES ('Amt', 'Behördenweg', 'B3B3B3');
INSERT INTO tbl_zeitsperretyp VALUES ('Schulung', 'Weiterbildung', '99FF99');
INSERT INTO tbl_zeitsperretyp VALUES ('Sonstige', 'Sonstiges', '9966CC');
INSERT INTO tbl_zeitsperretyp VALUES ('Telework', 'Heimarbeit', 'FFCCFF');
INSERT INTO tbl_zeitsperretyp VALUES ('ReiseIL', 'Diensreise Inland', '00D926');
INSERT INTO tbl_zeitsperretyp VALUES ('DienstV', 'Dienstverhinderung', 'B3B364');
INSERT INTO tbl_zeitsperretyp VALUES ('DienstF', 'Dienstfreistellung', '39DFA4');
INSERT INTO tbl_zeitsperretyp VALUES ('Krank', 'Krankheit/Spitalsaufenthalt', 'B3B300');
INSERT INTO tbl_zeitsperretyp VALUES ('ZA', 'Zeitausgleich', 'FFA605');
INSERT INTO tbl_zeitsperretyp VALUES ('Arzt', 'Arztbesuch', '0066FF');
INSERT INTO tbl_zeitsperretyp VALUES ('Konfernz', 'Konferenz/Tagung/Seminar', 'CC6633');
INSERT INTO tbl_zeitsperretyp VALUES ('Urlaub', 'Urlaub', 'FF0000');
-- tbl_berufstaetigkeit Type: TABLE DATA; Schema: bis;
SET search_path = bis, pg_catalog;
INSERT INTO tbl_berufstaetigkeit VALUES (0, 'nicht berufstätig', 'n.berufstätig');
INSERT INTO tbl_berufstaetigkeit VALUES (2, 'arbeitslos gemeldet mit facheinschlägiger Berufserfahrung', 'fach.arbeitslos');
INSERT INTO tbl_berufstaetigkeit VALUES (3, 'arbeitslos gemeldet sonstige', 'so.arbeitslos');
INSERT INTO tbl_berufstaetigkeit VALUES (6, 'Vollzeit facheinschlägig berufstätig', 'Vz fach');
INSERT INTO tbl_berufstaetigkeit VALUES (7, 'Teilzeit facheinschlägig berufstätig', 'Tz fach');
INSERT INTO tbl_berufstaetigkeit VALUES (9, 'Vollzeit nicht facheinschlägig berufstätig', 'Vz sonst');
INSERT INTO tbl_berufstaetigkeit VALUES (10, 'Teilzeit nicht facheinschlägig berufstätig', 'Tz sonst');
-- tbl_beschaeftigungsart1; Type: TABLE DATA; Schema: bis;
SET search_path = bis, pg_catalog;
INSERT INTO tbl_beschaeftigungsart1 VALUES (4, 'Dienstverhältnis zur Bildungseinrichtung oder deren Träger (Freier Dienstvertrag)', 'Freier Dienstvertrag');
INSERT INTO tbl_beschaeftigungsart1 VALUES (3, 'Dienstverhältnis zur Bildungseinrichtung oder deren Träger (Echter Dienstvertrag)', 'Echter Dienstvertrag');
INSERT INTO tbl_beschaeftigungsart1 VALUES (1, 'Dienstverhältnis zum Bund', 'DV zum Bund');
INSERT INTO tbl_beschaeftigungsart1 VALUES (6, 'Sonstiges Beschäftigungsverhältnis (inkludiert z.B. Werkverträge)', 'Sonstiges (Werkvertrag)');
INSERT INTO tbl_beschaeftigungsart1 VALUES (5, 'Lehr- oder Ausbildungsverhältnis', 'Lehr-oder Ausbildungsverhältnis');
INSERT INTO tbl_beschaeftigungsart1 VALUES (2, 'Dienstverhältnis zu einer anderen Gebietskörperschaft', 'DV anderen Gebietskörperschaft');
-- tbl_beschaeftigungsart2; Type: TABLE DATA; Schema: bis;
SET search_path = bis, pg_catalog;
INSERT INTO tbl_beschaeftigungsart2 VALUES (2, 'unbefristet');
INSERT INTO tbl_beschaeftigungsart2 VALUES (1, 'befristet');
-- tbl_beschaeftigungsausmass; Type: TABLE DATA; Schema: bis;
SET search_path = bis, pg_catalog;
INSERT INTO tbl_beschaeftigungsausmass VALUES (1, 'Vollzeit', 36, 168);
INSERT INTO tbl_beschaeftigungsausmass VALUES (2, '0-15', 0, 15);
INSERT INTO tbl_beschaeftigungsausmass VALUES (3, '16-25', 16, 25);
INSERT INTO tbl_beschaeftigungsausmass VALUES (4, '26-35', 26, 35);
INSERT INTO tbl_beschaeftigungsausmass VALUES (5, 'Karenz', 0, 0);
-- tbl_besqual; Type: TABLE DATA; Schema: bis;
SET search_path = bis, pg_catalog;
INSERT INTO tbl_besqual VALUES (0, 'Keine');
INSERT INTO tbl_besqual VALUES (1, 'Habilitation');
INSERT INTO tbl_besqual VALUES (2, 'der Habilitation gleichwertige Qualifikation');
INSERT INTO tbl_besqual VALUES (3, 'berufliche Tätigkeit');
-- tbl_hauptberuf; Type: TABLE DATA; Schema: bis;
SET search_path = bis, pg_catalog;
INSERT INTO tbl_hauptberuf VALUES (0, 'Universität');
INSERT INTO tbl_hauptberuf VALUES (1, 'Fachhochschule');
INSERT INTO tbl_hauptberuf VALUES (2, 'Andere postsekundäre Bildungseinrichtung');
INSERT INTO tbl_hauptberuf VALUES (3, 'Allgemeinbildende höhere Schule');
INSERT INTO tbl_hauptberuf VALUES (4, 'Berufsbildende höhere Schule');
INSERT INTO tbl_hauptberuf VALUES (5, 'Andere Schule');
INSERT INTO tbl_hauptberuf VALUES (6, 'Öffentlicher Sektor');
INSERT INTO tbl_hauptberuf VALUES (7, 'Unternehmenssektor');
INSERT INTO tbl_hauptberuf VALUES (8, 'Freiberuflich tätig');
INSERT INTO tbl_hauptberuf VALUES (9, 'Privater gemeinnütziger Sektor');
INSERT INTO tbl_hauptberuf VALUES (10, 'Außerhochschulische Forschungseinrichtung');
INSERT INTO tbl_hauptberuf VALUES (11, 'Internationale Organisation');
INSERT INTO tbl_hauptberuf VALUES (12, 'Sonstiges');
-- tbl_verwendung; Type: TABLE DATA; Schema: bis;
SET search_path = bis, pg_catalog;
INSERT INTO tbl_verwendung VALUES (1, 'Lehr- und Forschungspersonal (Academic staff)');
INSERT INTO tbl_verwendung VALUES (2, 'Lehr- und Forschungshilfspersonal (Teaching and Research assistants)');
INSERT INTO tbl_verwendung VALUES (3, 'Akademische Dienste für Studierende(Academic Support');
INSERT INTO tbl_verwendung VALUES (5, 'Studiengangsleiter/in');
INSERT INTO tbl_verwendung VALUES (6, 'Leiter/in FH-Kollegium');
INSERT INTO tbl_verwendung VALUES (7, 'Management (School Level Management)');
INSERT INTO tbl_verwendung VALUES (8, 'Verwaltung (School Level Administrative Personnel)');
INSERT INTO tbl_verwendung VALUES (9, 'Hauspersonal, Gebäude-/Haustechnik (Maintainance and Operations Personnel)');
INSERT INTO tbl_verwendung VALUES (4, 'Soziale Dienste und Gesundheitsdienste (Health and Social Support)');
-- tbl_aktivitaet; Type: TABLE DATA; Schema: fue;
SET search_path = fue, pg_catalog;
INSERT INTO tbl_aktivitaet VALUES ('ServiceVO', 'Service (VorOrt)');
INSERT INTO tbl_aktivitaet VALUES ('Service', 'Service');
INSERT INTO tbl_aktivitaet VALUES ('Schulung', 'Schulung die gegeben wird.');
INSERT INTO tbl_aktivitaet VALUES ('Arbeit', 'Arbeit (allgemein)');
INSERT INTO tbl_aktivitaet VALUES ('Besprechung', 'Besprechung');
INSERT INTO tbl_aktivitaet VALUES ('Workshop', 'Workshop');
INSERT INTO tbl_aktivitaet VALUES ('TelefonSupport', 'TelefonSupport');
INSERT INTO tbl_aktivitaet VALUES ('eMailSupport', 'eMailSupport');
-- tbl_projekt; Type: TABLE DATA; Schema: fue;
SET search_path = fue, pg_catalog;
INSERT INTO tbl_projekt VALUES ('Tempus', NULL, 'Tempus', NULL, '2005-09-01', NULL);
INSERT INTO tbl_projekt VALUES ('StPoelten', NULL, 'FH-Complete StPoelten', NULL, '2007-09-01', NULL);
INSERT INTO tbl_projekt VALUES ('FASo', NULL, 'FASonline', NULL, '2007-02-01', NULL);
--
+70
View File
@@ -0,0 +1,70 @@
<?php
/* Copyright (C) 2016 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*/
/*
* Dieses Script generiert fuer Testzwecke fuer jedes Abgabe-File einen symbolischen Link auf
* eine Testdatei um im Testsystem korrekte Dateilinks zu haben.
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
$uid = get_uid();
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('system/developer',null,'suid'))
die($rechte->errormsg);
$anzahl_neu=0;
$anzahl_vorhanden=0;
$qry = "SELECT
tbl_paabgabe.paabgabe_id || '_' || tbl_projektarbeit.student_uid || '.pdf' as filename
FROM
campus.tbl_paabgabe
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
WHERE
tbl_paabgabe.abgabedatum is not null";
$path = PAABGABE_PATH;
chdir($path);
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$testfile = 'testfile.pdf';
if(!file_exists($row->filename))
{
$cmd = 'ln -s '.$testfile.' '.$row->filename;
exec($cmd);
echo "<br>\ncreate $row->filename";
$anzahl_neu++;
}
else
{
echo "<br>\nexists $row->filename";
$anzahl_vorhanden++;
}
}
}
echo '<hr>';
echo 'Done';
echo '<br>Neu:'.$anzahl_neu;
echo '<br>Vorhanden:'.$anzahl_vorhanden;
?>
+1
View File
@@ -124,6 +124,7 @@ $matrikelnummer = (isset($_POST['matrikelnummer'])?$_POST['matrikelnummer']:'');
$semester = (isset($_POST['semester'])?$_POST['semester']:'');
$verband = (isset($_POST['verband'])?$_POST['verband']:'');
$gruppe = (isset($_POST['gruppe'])?$_POST['gruppe']:'');
$dms_id_lichtbild = '';
if($uid!='')
{
+7 -4
View File
@@ -54,6 +54,8 @@ $erreichbarkeit_kurzbz=(isset($_POST['erreichbarkeit_kurzbz'])?$_POST['erreichba
$freigabeamum=(isset($_POST['freigabe_amum'])?$_POST['freigabe_amum']:'');
$freigabevon=(isset($_POST['freigabe_von'])?$_POST['freigabe_von']:'');
$alle = (isset($_GET['alle'])?true:false);
$errormsg='';
$message='';
$error=false;
@@ -212,7 +214,8 @@ if($uid!='')
$zeitsperre = new zeitsperre();
$zeitsperre->getzeitsperren($uid);
echo "<a href='".$_SERVER['PHP_SELF']."?uid=$uid&alle=true'>Alle Einträge anzeigen</a>";
$zeitsperre->getzeitsperren($uid, !$alle);
echo '<h3>Zeitsperren von <b>'.$mitarbeiter->titelpre.' '.$mitarbeiter->vorname.' '.$mitarbeiter->nachname.' '.$mitarbeiter->titelpost.'</b></h3>';
echo "<table id='t1' class='tablesorter'>";
echo '
@@ -244,8 +247,8 @@ if($uid!='')
echo "<td>$row->freigabevon ".$datum->formatDatum($row->freigabeamum,'d.m.Y')."</td>";
echo "<td>".$datum->formatDatum($row->updateamum,'d.m.Y H:i:s')."</td>";
echo "<td>$row->updatevon</td>";
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?action=edit&uid=$uid&zeitsperre_id=$row->zeitsperre_id'><img src='../../skin/images/application_form_edit.png' alt='bearbeiten' title='bearbeiten' /></a></td>";
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?action=delete&uid=$uid&zeitsperre_id=$row->zeitsperre_id' onclick='return confdel(\"$row->zeitsperretyp_kurzbz von ".$datum->formatDatum($row->vondatum,'d.m.Y')." bis ".$datum->formatDatum($row->bisdatum,'d.m.Y')."\")'><img src='../../skin/images/application_form_delete.png' alt='loeschen' title='loeschen'/></a></td>";
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?action=edit&uid=$uid&zeitsperre_id=$row->zeitsperre_id".($alle?'&alle=true':'')."'><img src='../../skin/images/application_form_edit.png' alt='bearbeiten' title='bearbeiten' /></a></td>";
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?action=delete&uid=$uid&zeitsperre_id=$row->zeitsperre_id".($alle?'&alle=true':'')."'' onclick='return confdel(\"$row->zeitsperretyp_kurzbz von ".$datum->formatDatum($row->vondatum,'d.m.Y')." bis ".$datum->formatDatum($row->bisdatum,'d.m.Y')."\")'><img src='../../skin/images/application_form_delete.png' alt='loeschen' title='loeschen'/></a></td>";
echo '</tr>';
}
echo '</tbody></table>';
@@ -264,7 +267,7 @@ if($uid!='')
else
echo "<h3>Neue Zeitsperre:</h3>";
echo '<form accept-charset="UTF-8" action="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'" method="POST">';
echo '<form accept-charset="UTF-8" action="'.$_SERVER['PHP_SELF'].'?uid='.$uid.($alle?'&alle=true':'').'" method="POST">';
echo '<input type="hidden" name="zeitsperre_id" value="'.$zeitsperre->zeitsperre_id.'">';
echo '<table>';
echo '<tr>';
+59 -54
View File
@@ -21,14 +21,14 @@
*/
/**
* Dieses Script ist fuer Personen, die das Studium abgebrochen haben und von neuem starten.
* Dazu muessen Studenten ein neues Personenkennzeichen etc erhalten da es sonst zu Problemen bei
* Dazu muessen Studenten ein neues Personenkennzeichen etc erhalten da es sonst zu Problemen bei
* der BIS-Meldung kommt.
*
*
* Mit diesem Script kann der Student gesucht werden und ein neuer Prestudent Eintrag angelegt werden.
* Zusätzlich wird ein Interessentenstatus im ausgewaehlten Semester angelegt.
*
*
* Die Prestudentdaten (ZGV etc) werden fuer den neuen Eintrag uebernommen.
*
*
* Dieses Script ist NICHT fuer Studenten die nur ein Semester/Jahr wiederholen. Es ist nur fuer Abbrecher die
* erneut in diesem Studiengang studieren moechten.
*/
@@ -78,30 +78,30 @@ if(isset($_POST['save']))
die('Studiensemester muss uebergeben werden');
if(!isset($_POST['ausbildungssemester']))
die('Ausbildungssemester muss uebergeben werden');
$prestudent_id=$_POST['prestudent_id'];
$ausbildungssemester=$_POST['ausbildungssemester'];
$stsem_kurzbz=$_POST['stsem_kurzbz'];
if(!is_numeric($prestudent_id))
die('PrestudentID ist ungueltig');
$prestd_obj = new prestudent();
if(!$prestd_obj->load($prestudent_id))
die('PrestudentID ist ungueltig');
$prestd_obj->new = true;
if($prestd_obj->save())
{
$prestudent_id_neu=$prestd_obj->prestudent_id;
if($prestd_obj->getLastStatus($prestudent_id))
$orgform_kurzbz = $prestd_obj->orgform_kurzbz;
else
$orgform_kurzbz = null;
$prestd_obj = new prestudent();
$prestd_obj->prestudent_id=$prestudent_id_neu;
$prestd_obj->status_kurzbz='Interessent';
$prestd_obj->studiensemester_kurzbz = $stsem_kurzbz;
@@ -113,7 +113,7 @@ if(isset($_POST['save']))
$prestd_obj->updatevon = $user;
$prestd_obj->orgform_kurzbz = $orgform_kurzbz;
$prestd_obj->new = true;;
if(!$prestd_obj->save_rolle())
{
echo 'Fehler beim Speichern der Rolle:'.$prestd_obj->errormsg;
@@ -136,51 +136,56 @@ if(isset($_POST['filter']))
$stsem_obj->getAll();
if($std_obj->getTab($filter, 'nachname, vorname'))
{
echo '<table class="liste">';
echo '<tr>';
echo '<th>PersonID</td>';
echo '<th>Vorname</td>';
echo '<th>Nachname</td>';
echo '<th>Studiengang</td>';
echo '<th>Semester</td>';
echo '<th>Action</td>';
echo '</tr>';
$i=0;
foreach($std_obj->result as $row)
if(is_array($std_obj->result) && count($std_obj->result)>0)
{
$i++;
echo '<tr class="liste'.($i%2).'">';
echo '<td>'.$row->person_id.'</td>';
echo '<td>'.$row->vorname.'</td>';
echo '<td>'.$row->nachname.'</td>';
echo '<td>'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</td>';
echo '<td>'.$row->semester.'</td>';
echo '<td>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
echo '<input type="hidden" name="prestudent_id" value="'.$row->prestudent_id.'" />';
echo 'als neuen Interessenten in Studiensemester ';
echo '<SELECT name="stsem_kurzbz">';
foreach($stsem_obj->studiensemester as $row_stsem)
{
if($row_stsem->studiensemester_kurzbz==$stsem)
$selected='selected';
else
$selected='';
echo '<OPTION value="'.$row_stsem->studiensemester_kurzbz.'" '.$selected.'>'.$row_stsem->studiensemester_kurzbz.'</OPTION>';
}
echo '</SELECT>';
echo ' in Ausbildungssemester <SELECT name="ausbildungssemester">';
for($sem=1;$sem<=10;$sem++)
{
echo '<OPTION value="'.$sem.'">'.$sem.'</OPTION>';
}
echo '</SELECT>';
echo '<input type="submit" name="save" value="anlegen">';
echo '</form>';
echo '</td>';
echo '<table class="liste">';
echo '<tr>';
echo '<th>PersonID</td>';
echo '<th>Vorname</td>';
echo '<th>Nachname</td>';
echo '<th>Studiengang</td>';
echo '<th>Semester</td>';
echo '<th>Action</td>';
echo '</tr>';
$i=0;
foreach($std_obj->result as $row)
{
$i++;
echo '<tr class="liste'.($i%2).'">';
echo '<td>'.$row->person_id.'</td>';
echo '<td>'.$row->vorname.'</td>';
echo '<td>'.$row->nachname.'</td>';
echo '<td>'.$stg_obj->kuerzel_arr[$row->studiengang_kz].'</td>';
echo '<td>'.$row->semester.'</td>';
echo '<td>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
echo '<input type="hidden" name="prestudent_id" value="'.$row->prestudent_id.'" />';
echo 'als neuen Interessenten in Studiensemester ';
echo '<SELECT name="stsem_kurzbz">';
foreach($stsem_obj->studiensemester as $row_stsem)
{
if($row_stsem->studiensemester_kurzbz==$stsem)
$selected='selected';
else
$selected='';
echo '<OPTION value="'.$row_stsem->studiensemester_kurzbz.'" '.$selected.'>'.$row_stsem->studiensemester_kurzbz.'</OPTION>';
}
echo '</SELECT>';
echo ' in Ausbildungssemester <SELECT name="ausbildungssemester">';
for($sem=1;$sem<=10;$sem++)
{
echo '<OPTION value="'.$sem.'">'.$sem.'</OPTION>';
}
echo '</SELECT>';
echo '<input type="submit" name="save" value="anlegen">';
echo '</form>';
echo '</td>';
echo '</tr>';
}
echo '</table>';
}
echo '</table>';
else
echo 'Keine Eintraege gefunden';
}
else
{
@@ -190,4 +195,4 @@ if(isset($_POST['filter']))
?>
<br /><font color="gray">Studienabbrecher, welche den selben Studiengang erneut besuchen wollen können hier angelegt werden. <br />Diese Seite ist NICHT für das Wiederholen eines einzelnen Semesters/Jahres gedacht!</font>
</body>
</html>
</html>
+9 -4
View File
@@ -95,9 +95,13 @@ if (!$db = new basis_db())
echo '<form accept-charset="UTF-8" name="frm_studiengang" action="' . $_SERVER['PHP_SELF'] . '" method="GET">';
echo 'Studiengang: <SELECT name="studiengang_kz" onchange="document.frm_studiengang.submit()">';
foreach ($stud->result as $row) {
if ($rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') ||
$rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid')) {
foreach ($stud->result as $row)
{
if ($rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid')
|| $rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid')
|| $rechte->isBerechtigt('lehre/gruppe', $row->studiengang_kz, 'suid')
)
{
if ($studiengang_kz == '')
$studiengang_kz = $row->studiengang_kz;
@@ -108,7 +112,8 @@ if (!$db = new basis_db())
echo '</SELECT>';
echo '</form>';
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid'))
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid')
|| $rechte->isBerechtigt('lehre/gruppe', $studiengang_kz, 'suid'))
$admin = true;
else
$admin = false;
@@ -44,7 +44,8 @@ $studiengang_kz = (isset($_POST['studiengang_kz']) ? $_POST['studiengang_kz'] :
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid'))
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid')
|| $rechte->isBerechtigt('lehre/gruppe', $studiengang_kz, 'suid'))
$admin = true;
else
$admin = false;
@@ -60,48 +61,48 @@ $studiengang = new studiengang();
$studiengang->load($studiengang_kz);
//Aenderung des Aktiv Status
if ($changeState != '')
if ($changeState != '')
{
if (!$admin)
die('Sie haben keine Berechtigung zum Speichern');
if ($gruppe_kurzbz != '')
if ($gruppe_kurzbz != '')
{
$gruppe = new gruppe();
if ($gruppe->load($gruppe_kurzbz))
if ($gruppe->load($gruppe_kurzbz))
{
$gruppe->aktiv = !$gruppe->aktiv;
if ($gruppe->save(false))
if ($gruppe->save(false))
{
echo "erfolgreich";
}
else
}
else
{
echo "Fehler beim Aendern des Aktiv-Feldes: $gruppe->errormsg";
}
}
else
}
else
{
echo "Spezialgruppe wurde nicht gefunden";
}
}
else
}
else
{
$lvb = new lehrverband();
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
{
$lvb->aktiv = !$lvb->aktiv;
if ($lvb->save(false))
if ($lvb->save(false))
{
echo "erfolgreich";
}
else
}
else
{
echo "Fehler beim Aendern des Aktiv-Feldes: $lvb->errormsg";
}
}
else
}
else
{
echo "<span class='error'>Lehrverband wurde nicht gefunden</span>";
}
@@ -110,12 +111,12 @@ if ($changeState != '')
//Anzeigen der Gruppen Details
if ($type == 'edit')
if ($type == 'edit')
{
if ($gruppe_kurzbz != '')
if ($gruppe_kurzbz != '')
{
$gruppe = new gruppe();
if ($gruppe->load($gruppe_kurzbz))
if ($gruppe->load($gruppe_kurzbz))
{
echo "<div class='detailsDiv'>Details von $gruppe_kurzbz<br><br>";
@@ -123,7 +124,7 @@ if ($type == 'edit')
echo "<form id='formSpzSave' action='javascript:saveSpzGroup(\"".$gruppe->studiengang_kz."\",\"".$gruppe->gruppe_kurzbz."\",\"save\");' method='POST'>
<table>";
if ($admin)
if ($admin)
{
echo "<tr>
<td><b>Kurzbezeichnung:</b></td>
@@ -137,7 +138,7 @@ if ($type == 'edit')
<td>Bezeichnung:</td>
<td><input id='spzBezeichnung' type='text' name='bezeichnung' size='30' maxlength='32' value='$gruppe->bezeichnung'/> (max. 32 Zeichen)</td>
</tr>";
if ($admin)
if ($admin)
{
echo "
<tr>
@@ -155,13 +156,13 @@ if ($type == 'edit')
<tr>
<td>Aktiv:</td>
<td><input id='spzAktiv' type='checkbox' name='aktiv' " . ($gruppe->aktiv ? 'checked' : '') . " /></td>
</tr>
</tr>
<tr>
<td>Sort:</td>
<td><input id='spzSort' type='text' name='sort' size='2' maxlength='2' value='$gruppe->sort' /></td>
</tr>";
$stg_obj = new studiengang($studiengang_kz);
if ($stg_obj->mischform)
if ($stg_obj->mischform)
{
echo "
<tr>
@@ -170,7 +171,7 @@ if ($type == 'edit')
echo " <SELECT id='spzOrgform' name='orgform_kurzbz'>";
echo " <OPTION value=''>-- keine Auswahl --</OPTION>";
$qry_orgform = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz";
if ($result_orgform = $db->db_query($qry_orgform))
if ($result_orgform = $db->db_query($qry_orgform))
{
while ($row_orgform = $db->db_fetch_object($result_orgform))
{
@@ -204,14 +205,14 @@ if ($type == 'edit')
<td></td>
<td><input type='submit' value='Speichern' /></td>
</tr>
</table>
</table>
</form></div>";
}
}
else
else
{
$lvb = new lehrverband();
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
{
echo "<div class='detailsDiv'>Details von $studiengang->kuerzel - $semester$verband$gruppe<br><br>";
@@ -230,7 +231,7 @@ if ($type == 'edit')
<input type='hidden' name='type' value='save'/>
</td>
</tr>";
if ($admin)
if ($admin)
{
echo "
<tr>
@@ -238,7 +239,7 @@ if ($type == 'edit')
<td><input id='aktiv' type='checkbox' name='aktiv' " . ($lvb->aktiv ? 'checked' : '') . " /></td>
</tr>";
$stg_obj = new studiengang($studiengang_kz);
if ($stg_obj->mischform)
if ($stg_obj->mischform)
{
echo "
<tr>
@@ -247,9 +248,9 @@ if ($type == 'edit')
echo " <SELECT name='orgform_kurzbz' id='orgform_kurzbz'>";
echo " <OPTION value=''>-- keine Auswahl --</OPTION>";
$qry_orgform = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz";
if ($result_orgform = $db->db_query($qry_orgform))
if ($result_orgform = $db->db_query($qry_orgform))
{
while ($row_orgform = $db->db_fetch_object($result_orgform))
while ($row_orgform = $db->db_fetch_object($result_orgform))
{
if ($row_orgform->orgform_kurzbz == $lvb->orgform_kurzbz)
$selected = 'selected';
@@ -272,7 +273,7 @@ if ($type == 'edit')
<td></td>
<td><input type='submit' value='Speichern' /></td>
</tr>
</table>
</table>
</form>";
echo '</div>';
}
@@ -282,12 +283,12 @@ if ($type == 'edit')
}
//Anlegen einer neuen Gruppe
if ($type == 'neu')
if ($type == 'neu')
{
if (!$admin)
die('Sie haben keine Berechtigung zum Speichern');
if (isset($_POST['spzgruppe_neu']))
if (isset($_POST['spzgruppe_neu']))
{
if(preg_match('/^[A-Z0-9a-z\-\_]*$/', $_POST['spzgruppe_neu']))
{
@@ -295,7 +296,7 @@ if ($type == 'neu')
$gruppe_kurzbz = $studiengang->kuerzel . '-' . $semester . strtoupper($_POST['spzgruppe_neu']);
$gruppe = new gruppe();
if (!$gruppe->exists($gruppe_kurzbz))
if (!$gruppe->exists($gruppe_kurzbz))
{
$gruppe->gruppe_kurzbz = $gruppe_kurzbz;
$gruppe->studiengang_kz = $studiengang_kz;
@@ -311,18 +312,18 @@ if ($type == 'neu')
$gruppe->insertamum = date('Y-m-d H:i:s');
$gruppe->insertvon = $user;
if ($gruppe->save(true))
if ($gruppe->save(true))
{
$returndata = array('status'=>'ok','gruppe_kurzbz'=>$gruppe->gruppe_kurzbz,'message'=>'Gruppe wurde angelegt');
echo json_encode($returndata);
}
else
}
else
{
$returndata = array('status'=>'failed','message'=>"<span class='error'>Fehler beim anlegen der Gruppe:$gruppe->errormsg</span>");
echo json_encode($returndata);
}
}
else
}
else
{
$returndata = array('status'=>'failed','message'=>"<span class='error'>Diese Gruppe Existiert bereits: $gruppe_kurzbz</span>");
echo json_encode($returndata);
@@ -333,32 +334,32 @@ if ($type == 'neu')
$returndata = array('status'=>'failed','message'=>"<span class='error'>Bitte verwenden Sie für den Gruppennamen keine Sonderzeichen oder Umlaute</span>");
echo json_encode($returndata);
}
}
else
}
else
{
$lvb = new lehrverband();
if (isset($_POST['semester_neu']))
if (isset($_POST['semester_neu']))
{
//Neues Semester anlegen
$semester = $_POST['semester_neu'];
$verband = ' ';
$gruppe = ' ';
}
elseif (isset($_POST['verband_neu']))
}
elseif (isset($_POST['verband_neu']))
{
//neuen Verband anlegen
$verband = $_POST['verband_neu'];
$gruppe = ' ';
}
elseif (isset($_POST['gruppe_neu']))
elseif (isset($_POST['gruppe_neu']))
{
//neue Gruppe anlegen
$gruppe = $_POST['gruppe_neu'];
}
if (!$lvb->exists($studiengang_kz, $semester, $verband, $gruppe))
if (!$lvb->exists($studiengang_kz, $semester, $verband, $gruppe))
{
$lvb->studiengang_kz = $studiengang_kz;
$lvb->semester = $semester;
@@ -367,18 +368,18 @@ if ($type == 'neu')
$lvb->aktiv = true;
$lvb->bezeichnung = '';
if ($lvb->save(true))
if ($lvb->save(true))
{
$returndata = array('status'=>'ok','gruppe'=>trim($studiengang_kz.$semester.$verband.$gruppe),'message'=>"Daten wurden erfolgreich angelegt");
echo json_encode($returndata);
}
else
}
else
{
$returndata = array('status'=>'failed','gruppe'=>trim($studiengang_kz.$semester.$verband.$gruppe),'message'=>"<span class='error'>Fehler beim Anlegen der Gruppe: $lvb->errormsg</span>");
echo json_encode($returndata);
}
}
else
}
else
{
$returndata = array('status'=>'failed','gruppe'=>trim($studiengang_kz.$semester.$verband.$gruppe),'message'=>"<span class='error'>Diese Gruppe Existiert bereits</span>");
echo json_encode($returndata);
@@ -387,16 +388,16 @@ if ($type == 'neu')
}
//Speichern der geaenderten Gruppendaten
if ($type == 'save')
if ($type == 'save')
{
//Spezialgruppe speichern
if ($gruppe_kurzbz != '')
if ($gruppe_kurzbz != '')
{
$gruppe = new gruppe();
if ($gruppe->load($gruppe_kurzbz))
if ($gruppe->load($gruppe_kurzbz))
{
$gruppe->bezeichnung = $_POST['bezeichnung'];
if ($admin)
if ($admin)
{
$gruppe->gruppe_kurbzNeu = (isset($_POST['kurzBzNeu']) ? $_POST['kurzBzNeu'] : $gruppe_kurzbz);
$gruppe->beschreibung = $_POST['beschreibung'];
@@ -411,11 +412,11 @@ if ($type == 'save')
}
$gruppe->updateamum = date('Y-m-d H:i:s');
$gruppe->updatevon = $user;
if ($gruppe->save(false))
if ($gruppe->save(false))
{
echo 'Daten wurden erfolgreich geaendert';
}
else
else
{
echo "Fehler beim Speichern der Daten: $gruppe->errormsg";
}
@@ -425,15 +426,15 @@ if ($type == 'save')
else
echo "Gruppe konnte nicht geladen werden";
}
else
else
{
//Lehrverbandsgruppe speichern
$lvb = new lehrverband();
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
if ($lvb->load($studiengang_kz, $semester, $verband, $gruppe))
{
$lvb->bezeichnung = $_POST['bezeichnung'];
if ($admin)
if ($admin)
{
$lvb->aktiv = isset($_POST['aktiv']);
@@ -441,16 +442,16 @@ if ($type == 'save')
$lvb->orgform_kurzbz = $_POST['orgform_kurzbz'];
}
if ($lvb->save(false))
if ($lvb->save(false))
{
echo 'Daten wurden erfolgreich geaendert';
}
else
else
{
echo "Fehler beim Speichern der Daten: $lvb->errormsg";
}
}
else
else
{
echo "Gruppe konnte nicht geladen werden";
}
@@ -43,7 +43,8 @@ $studiengang->load($studiengang_kz);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid'))
if ($rechte->isBerechtigt('admin', $studiengang_kz, 'suid')
|| $rechte->isBerechtigt('lehre/gruppe', $studiengang_kz, 'suid'))
$admin = true;
else
$admin = false;
+1 -1
View File
@@ -128,7 +128,7 @@ if(isset($radio_1) && isset($radio_2) && $radio_1>=0 && $radio_2>=0)
$msg .= "<br>".mb_eregi_replace(';',';<br>',$sql_query_upd1);
$db->db_query("COMMIT;");
//Logeintrag schreiben
PersonLog($radio_2, 'Action', array('name' => 'Persons merged', 'message' => 'person with id '.$radio_1.' merged into person with id '.$radio_2, 'success' => 'true'), 'datenwartung', 'core', null, $uid);
PersonLog($radio_2, 'Action', array('name' => 'Persons merged', 'message' => 'Person with id '.$radio_1.' merged into person with id '.$radio_2, 'success' => 'true'), 'datenwartung', 'core', null, $uid);
}
else
{