mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
Merge branch 'master' into feature-24647/Konfigurierbare_Dashboards_api
- mv dbchanges from system/dbupdate_3.3.php to system/dbupdate_3.4.php - mv dbchanges include file from system/dashboard/ to system/dbupdate_3.4/ and prevent direct script access
This commit is contained in:
@@ -7,8 +7,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
$config['interval_blocking_application'] = 'P1M';
|
||||
|
||||
// Application submission period given by start- and enddate.
|
||||
$config['submit_application_start'] = '01.02.2021';
|
||||
$config['submit_application_end'] = '22.02.2021';
|
||||
$config['submit_application_start'] = '05.09.2022';
|
||||
$config['submit_application_end'] = '22.09.2022';
|
||||
|
||||
// Lehrveranstaltungen with these grades will be blocked for application
|
||||
$config['grades_blocking_application'] = array(
|
||||
|
||||
@@ -41,62 +41,6 @@ class Filter extends FHC_Controller
|
||||
$this->outputJsonSuccess($this->filtercmptlib->getSession());
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the sort of the selected fields of the current filter and
|
||||
* its data will be written on the output in JSON format
|
||||
*/
|
||||
public function sortSelectedFields()
|
||||
{
|
||||
$request = $this->getPostJSON();
|
||||
|
||||
if (property_exists($request, 'selectedFields')
|
||||
&& $this->filtercmptlib->sortSelectedFields($request->selectedFields) == true)
|
||||
{
|
||||
$this->outputJsonSuccess('Fields sorted');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a selected field from the current filter and
|
||||
* its data will be written on the output in JSON format
|
||||
*/
|
||||
public function removeSelectedField()
|
||||
{
|
||||
$request = $this->getPostJSON();
|
||||
|
||||
if (property_exists($request, 'selectedField')
|
||||
&& $this->filtercmptlib->removeSelectedField($request->selectedField) == true)
|
||||
{
|
||||
$this->outputJsonSuccess('Field removed');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Error occurred');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a field to the current filter and its data will be written on the output in JSON format
|
||||
*/
|
||||
public function addSelectedField()
|
||||
{
|
||||
$request = $this->getPostJSON();
|
||||
|
||||
if (property_exists($request, 'selectedField')
|
||||
&& $this->filtercmptlib->addSelectedField($request->selectedField) == true)
|
||||
{
|
||||
$this->outputJsonSuccess('Field added');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Error occurred');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove an applied filter (SQL where condition) from the current filter
|
||||
*/
|
||||
|
||||
@@ -6,13 +6,13 @@ class requestAnrechnung extends Auth_Controller
|
||||
{
|
||||
const REQUEST_ANRECHNUNG_URI = '/lehre/anrechnung/RequestAnrechnung';
|
||||
const APPROVE_ANRECHNUNG_URI = '/lehre/anrechnung/ApproveAnrechnungUebersicht';
|
||||
|
||||
|
||||
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
|
||||
const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = 'inProgressKF';
|
||||
const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
|
||||
const ANRECHNUNGSTATUS_APPROVED = 'approved';
|
||||
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
@@ -23,22 +23,22 @@ class requestAnrechnung extends Auth_Controller
|
||||
'download' => 'student/anrechnung_beantragen:rw',
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// Load models
|
||||
$this->load->model('education/Anrechnung_model', 'AnrechnungModel');
|
||||
$this->load->model('content/DmsVersion_model', 'DmsVersionModel');
|
||||
|
||||
|
||||
// Load libraries
|
||||
$this->load->library('WidgetLib');
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('AnrechnungLib');
|
||||
$this->load->library('DmsLib');
|
||||
|
||||
|
||||
// Load helpers
|
||||
$this->load->helper('form');
|
||||
$this->load->helper('url');
|
||||
$this->load->helper('hlp_sancho_helper');
|
||||
|
||||
|
||||
// Load configs
|
||||
$this->load->config('anrechnung');
|
||||
|
||||
@@ -208,11 +208,11 @@ class requestAnrechnung extends Auth_Controller
|
||||
$this->_checkIfEntitledToReadDMSDoc($dms_id);
|
||||
|
||||
// Get file to be downloaded from DMS
|
||||
$download = $this->dmslib->download($dms_id, $filename);
|
||||
if (isError($download)) return $download;
|
||||
$download = $this->dmslib->download($dms_id);
|
||||
if (isError($download)) return $download;
|
||||
|
||||
// Download file
|
||||
$this->outputFile(getData($download));
|
||||
// Download file
|
||||
$this->outputFile(getData($download));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -221,10 +221,10 @@ class requestAnrechnung extends Auth_Controller
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
|
||||
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if application deadline is expired.
|
||||
*
|
||||
@@ -237,7 +237,7 @@ class requestAnrechnung extends Auth_Controller
|
||||
private function _isExpired($start, $ende, $studiensemester_kurzbz)
|
||||
{
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
|
||||
|
||||
// If start is not given, set to Semesterstart.
|
||||
if (!isset($start) || isEmptyString($start))
|
||||
{
|
||||
@@ -245,7 +245,7 @@ class requestAnrechnung extends Auth_Controller
|
||||
$result = $this->StudiensemesterModel->load($studiensemester_kurzbz);
|
||||
$start = getData($result)[0]->start;
|
||||
}
|
||||
|
||||
|
||||
// If ende is not given, set to Semesterende.
|
||||
if (!isset($ende) || isEmptyString($ende))
|
||||
{
|
||||
@@ -253,15 +253,15 @@ class requestAnrechnung extends Auth_Controller
|
||||
$result = $this->StudiensemesterModel->load($studiensemester_kurzbz);
|
||||
$ende = getData($result)[0]->ende;
|
||||
}
|
||||
|
||||
|
||||
$today = new DateTime('today midnight');
|
||||
$start = new DateTime($start);
|
||||
$ende = new DateTime($ende);
|
||||
|
||||
|
||||
// True if expired
|
||||
return ($today < $start || $today > $ende);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if user is entitled to read dms doc.
|
||||
*
|
||||
@@ -273,9 +273,9 @@ class requestAnrechnung extends Auth_Controller
|
||||
{
|
||||
show_error('Failed loading Student');
|
||||
}
|
||||
|
||||
|
||||
$result = $this->AnrechnungModel->loadWhere(array('dms_id' => $dms_id));
|
||||
|
||||
|
||||
if($result = getData($result)[0])
|
||||
{
|
||||
if ($result->prestudent_id == $student->prestudent_id)
|
||||
@@ -283,10 +283,10 @@ class requestAnrechnung extends Auth_Controller
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
show_error('You are not entitled to read this document');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if application already exists.
|
||||
*
|
||||
@@ -302,15 +302,15 @@ class requestAnrechnung extends Auth_Controller
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'prestudent_id' => $prestudent_id
|
||||
));
|
||||
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
show_error(getError($result));
|
||||
}
|
||||
|
||||
|
||||
return hasData($result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if applications' study semester is actual study semester.
|
||||
*
|
||||
@@ -322,10 +322,10 @@ class requestAnrechnung extends Auth_Controller
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$result = $this->StudiensemesterModel->getNearest();
|
||||
$actual_ss = getData($result)[0]->studiensemester_kurzbz;
|
||||
|
||||
|
||||
return $studiensemester_kurzbz == $actual_ss;
|
||||
}
|
||||
|
||||
|
||||
private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id)
|
||||
{
|
||||
// Get Note of Lehrveranstaltung
|
||||
@@ -336,12 +336,12 @@ class requestAnrechnung extends Auth_Controller
|
||||
'lehrveranstaltung_id' => $lehrveranstaltung_id
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// If Lehrveranstaltung has Note
|
||||
if (hasData($result))
|
||||
{
|
||||
$note = getData($result)[0]->note;
|
||||
|
||||
|
||||
// Check if Note is a blocking grade
|
||||
if (in_array($note, $this->config->item('grades_blocking_application')))
|
||||
{
|
||||
@@ -350,7 +350,7 @@ class requestAnrechnung extends Auth_Controller
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Upload file via DMS library.
|
||||
*
|
||||
@@ -367,7 +367,7 @@ class requestAnrechnung extends Auth_Controller
|
||||
'insertamum' => (new DateTime())->format('Y-m-d H:i:s'),
|
||||
'insertvon' => $this->_uid
|
||||
);
|
||||
|
||||
|
||||
// Upload document
|
||||
return $this->dmslib->upload($dms, 'uploadfile', array('pdf'));
|
||||
}
|
||||
|
||||
@@ -322,20 +322,10 @@ class reviewAnrechnungDetail extends Auth_Controller
|
||||
// Send mail to STGL of each studiengang
|
||||
foreach ($studiengang_kz_arr as $studiengang_kz)
|
||||
{
|
||||
// Get STGL mail address, if available, otherwise get assistance mail address
|
||||
$stgmail = $this->_getSTGLMailAddress($studiengang_kz);
|
||||
|
||||
if(isSuccess($stgmail) && hasData($stgmail))
|
||||
list ($to, $vorname) = getData($stgmail)[0];
|
||||
else
|
||||
show_error ('Failed retrieving DegreeProgram Mail');
|
||||
|
||||
// Get full name of lector
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
if (!$lector_name = getData($this->PersonModel->getFullName($this->_uid)))
|
||||
{
|
||||
show_error ('Failed retrieving person');
|
||||
}
|
||||
$result = $this->PersonModel->getFullName($this->_uid);
|
||||
$lector_name = hasData($result) ? getData($result) : 'Ein Lektor';
|
||||
|
||||
// Link to Antrag genehmigen
|
||||
$url =
|
||||
@@ -343,22 +333,26 @@ class reviewAnrechnungDetail extends Auth_Controller
|
||||
CIS_ROOT. 'cis/menu.php?content_id=&content='.
|
||||
CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI;
|
||||
|
||||
// Prepare mail content
|
||||
$body_fields = array(
|
||||
'vorname' => $vorname,
|
||||
'lektor_name' => $lector_name,
|
||||
'empfehlung' => $empfehlung ? 'positive' : 'negative',
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
// Get STGL mail address, if available, otherwise get assistance mail address
|
||||
if( !$result = $this->_getSTGLMailAddress($studiengang_kz)) return false;
|
||||
foreach ($result as $stgl)
|
||||
{
|
||||
// Prepare mail content
|
||||
$body_fields = array(
|
||||
'vorname' => $stgl['vorname'],
|
||||
'lektor_name' => $lector_name,
|
||||
'empfehlung' => $empfehlung ? 'positive' : 'negative',
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
|
||||
sendSanchoMail(
|
||||
'AnrechnungEmpfehlungAbgeben',
|
||||
$body_fields,
|
||||
$to,
|
||||
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
|
||||
);
|
||||
sendSanchoMail(
|
||||
'AnrechnungEmpfehlungAbgeben',
|
||||
$body_fields,
|
||||
$stgl['to'],
|
||||
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -369,28 +363,33 @@ class reviewAnrechnungDetail extends Auth_Controller
|
||||
$result = $this->StudiengangModel->getLeitung($stg_kz);
|
||||
|
||||
// Get STGL mail address, if available
|
||||
if (isSuccess($result) && hasData($result))
|
||||
{
|
||||
return success(array(
|
||||
$result->retval[0]->uid. '@'. DOMAIN,
|
||||
$result->retval[0]->vorname
|
||||
));
|
||||
}
|
||||
if (hasData($result))
|
||||
{
|
||||
foreach (getData($result) as $stgl)
|
||||
{
|
||||
$stglMailAdress_arr[]= array(
|
||||
'to' => $stgl->uid. '@'. DOMAIN,
|
||||
'vorname' => $stgl->vorname
|
||||
);
|
||||
}
|
||||
|
||||
return $stglMailAdress_arr;
|
||||
}
|
||||
// ...otherwise get assistance mail address
|
||||
else
|
||||
{
|
||||
$result = $this->StudiengangModel->load($stg_kz);
|
||||
|
||||
if (isSuccess($result) && hasData($result))
|
||||
if (hasData($result))
|
||||
{
|
||||
return success(array(
|
||||
return array(
|
||||
$result->retval[0]->email,
|
||||
''
|
||||
));
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return error('Keine E-Mail für diesen Stg gefunden');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,20 +257,10 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
// Send mail to STGL of each studiengang
|
||||
foreach ($studiengang_kz_arr as $studiengang_kz)
|
||||
{
|
||||
// Get STGL mail address, if available, otherwise get assistance mail address
|
||||
$stgmail = $this->_getSTGLMailAddress($studiengang_kz);
|
||||
|
||||
if(isSuccess($stgmail) && hasData($stgmail))
|
||||
list ($to, $vorname) = getData($stgmail)[0];
|
||||
else
|
||||
show_error ('Failed retrieving DegreeProgram Mail');
|
||||
|
||||
// Get full name of lector
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
if (!$lector_name = getData($this->PersonModel->getFullName($this->_uid)))
|
||||
{
|
||||
show_error ('Failed retrieving person');
|
||||
}
|
||||
$result = $this->PersonModel->getFullName($this->_uid);
|
||||
$lector_name = hasData($result) ? getData($result) : 'Ein Lektor';
|
||||
|
||||
// Link to Antrag genehmigen
|
||||
$url =
|
||||
@@ -278,22 +268,26 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
CIS_ROOT. 'cis/menu.php?content_id=&content='.
|
||||
CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI;
|
||||
|
||||
// Prepare mail content
|
||||
$body_fields = array(
|
||||
'vorname' => $vorname,
|
||||
'lektor_name' => $lector_name,
|
||||
'empfehlung' => $empfehlung ? 'positive' : 'negative',
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
// Get STGL mail address, if available, otherwise get assistance mail address
|
||||
if (!$result = $this->_getSTGLMailAddress($studiengang_kz)) return false;
|
||||
foreach ($result as $stgl)
|
||||
{
|
||||
// Prepare mail content
|
||||
$body_fields = array(
|
||||
'vorname' => $stgl['vorname'],
|
||||
'lektor_name' => $lector_name,
|
||||
'empfehlung' => $empfehlung ? 'positive' : 'negative',
|
||||
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
|
||||
);
|
||||
|
||||
sendSanchoMail(
|
||||
'AnrechnungEmpfehlungAbgeben',
|
||||
$body_fields,
|
||||
$to,
|
||||
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
|
||||
);
|
||||
sendSanchoMail(
|
||||
'AnrechnungEmpfehlungAbgeben',
|
||||
$body_fields,
|
||||
$stgl['to'],
|
||||
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -304,28 +298,33 @@ class reviewAnrechnungUebersicht extends Auth_Controller
|
||||
$result = $this->StudiengangModel->getLeitung($stg_kz);
|
||||
|
||||
// Get STGL mail address, if available
|
||||
if (isSuccess($result) && hasData($result))
|
||||
{
|
||||
return success(array(
|
||||
$result->retval[0]->uid. '@'. DOMAIN,
|
||||
$result->retval[0]->vorname
|
||||
));
|
||||
}
|
||||
if (hasData($result))
|
||||
{
|
||||
foreach (getData($result) as $stgl)
|
||||
{
|
||||
$stglMailAdress_arr[]= array(
|
||||
'to' => $stgl->uid. '@'. DOMAIN,
|
||||
'vorname' => $stgl->vorname
|
||||
);
|
||||
}
|
||||
|
||||
return $stglMailAdress_arr;
|
||||
}
|
||||
// ...otherwise get assistance mail address
|
||||
else
|
||||
{
|
||||
$result = $this->StudiengangModel->load($stg_kz);
|
||||
|
||||
if (isSuccess($result) && hasData($result))
|
||||
if (hasData($result))
|
||||
{
|
||||
return success(array(
|
||||
return array(
|
||||
$result->retval[0]->email,
|
||||
''
|
||||
));
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return error('Keine E-Mail für diesen Stg gefunden');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ class Studiensemester extends Auth_Controller
|
||||
$start = $this->input->post("semstart");
|
||||
$ende = $this->input->post("semende");
|
||||
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
|
||||
$beschreibung = $this->input->post("beschreibung");
|
||||
$beschreibung = isEmptyString($this->input->post("beschreibung")) ? null : $this->input->post("beschreibung");
|
||||
$onlinebewerbung = $this->input->post("onlinebewerbung");
|
||||
$onlinebewerbung = isset($onlinebewerbung);
|
||||
|
||||
|
||||
@@ -7,8 +7,6 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
*/
|
||||
class BPKWartung extends Auth_Controller
|
||||
{
|
||||
private $_uid; // contains the UID of the logged user
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
@@ -46,7 +44,7 @@ class BPKWartung extends Auth_Controller
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Main page of the InfoCenter tool
|
||||
* Main page of the bPK Wartung.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
@@ -56,9 +54,7 @@ class BPKWartung extends Auth_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Personal details page of the InfoCenter tool
|
||||
* Initialization function, gets person and prestudent data and loads the view with the data
|
||||
* @param $person_id
|
||||
* bPK Details initialization function, gets person data and loads the view with the data.
|
||||
*/
|
||||
public function showDetails()
|
||||
{
|
||||
@@ -85,8 +81,7 @@ class BPKWartung extends Auth_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master
|
||||
* @param $prestudent_id
|
||||
* Saves a bPK for a person.
|
||||
*/
|
||||
public function saveBPK()
|
||||
{
|
||||
@@ -112,7 +107,7 @@ class BPKWartung extends Auth_Controller
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Loads all necessary Person data: Stammdaten (name, svnr, contact, ...), Dokumente, Logs and Notizen
|
||||
* Loads all necessary Person data.
|
||||
* @param $person_id
|
||||
* @return array
|
||||
*/
|
||||
|
||||
@@ -27,6 +27,7 @@ class Gruppenmanagement extends Auth_Controller
|
||||
|
||||
// Loads models
|
||||
$this->load->model('person/benutzer_model', 'BenutzerModel');
|
||||
$this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
|
||||
$this->load->model('person/benutzergruppe_model', 'BenutzergruppeModel');
|
||||
$this->load->model('system/Log_model', 'LogModel');
|
||||
|
||||
@@ -149,11 +150,8 @@ class Gruppenmanagement extends Auth_Controller
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$this->LogModel->insert(array(
|
||||
'mitarbeiter_uid' => $this->_uid,
|
||||
'beschreibung' => 'Gruppenmanagement: Nutzer zu Gruppe hinzugefügt',
|
||||
'sql' => $lastQry
|
||||
));
|
||||
$beschreibung = 'Gruppenmanagement: Nutzer zu Gruppe hinzugefügt';
|
||||
$this->_writeLog($this->_uid, $beschreibung, $lastQry);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,11 +183,8 @@ class Gruppenmanagement extends Auth_Controller
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$this->LogModel->insert(array(
|
||||
'mitarbeiter_uid' => $this->_uid,
|
||||
'beschreibung' => 'Gruppenmanagement: Nutzer aus Gruppe entfernt',
|
||||
'sql' => $lastQry
|
||||
));
|
||||
$beschreibung = 'Gruppenmanagement: Nutzer aus Gruppe entfernt';
|
||||
$this->_writeLog($this->_uid, $beschreibung, $lastQry);
|
||||
}
|
||||
|
||||
$this->outputJson($result);
|
||||
@@ -234,4 +229,26 @@ class Gruppenmanagement extends Auth_Controller
|
||||
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes an entry in the log table
|
||||
*/
|
||||
private function _writeLog($uid, $beschreibung, $lastQry)
|
||||
{
|
||||
$mitarbeiterResult = $this->MitarbeiterModel->load(array('mitarbeiter_uid'=>$this->_uid));
|
||||
|
||||
if(!isSuccess($mitarbeiterResult) || !hasData($mitarbeiterResult))
|
||||
{
|
||||
$uid = DUMMY_LEKTOR_UID;
|
||||
$beschreibung .= ': '.$this->_uid;
|
||||
$beschreibung = mb_substr($beschreibung, 0, 64);
|
||||
}
|
||||
|
||||
$this->LogModel->insert(array(
|
||||
'mitarbeiter_uid' => $uid,
|
||||
'beschreibung' => $beschreibung,
|
||||
'sql' => $lastQry
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -88,6 +88,12 @@ class InfoCenter extends Auth_Controller
|
||||
'message' => 'Type of Document %s was updated, set to %s',
|
||||
'success' => null
|
||||
),
|
||||
'deletedoc' => array(
|
||||
'logtype' => 'Action',
|
||||
'name' => 'Document deleted',
|
||||
'message' => 'Document %s deleted',
|
||||
'success' => null
|
||||
),
|
||||
);
|
||||
|
||||
// Name of Interessentenstatus
|
||||
@@ -131,6 +137,7 @@ class InfoCenter extends Auth_Controller
|
||||
'reloadZgvPruefungen' => 'infocenter:r',
|
||||
'reloadMessages' => 'infocenter:r',
|
||||
'reloadDoks' => 'infocenter:r',
|
||||
'reloadUebersichtDoks' => 'infocenter:r',
|
||||
'reloadNotizen' => array('infocenter:r', 'lehre/zgvpruefung:r'),
|
||||
'reloadLogs' => 'infocenter:r',
|
||||
'outputAkteContent' => array('infocenter:r', 'lehre/zgvpruefung:r'),
|
||||
@@ -142,7 +149,9 @@ class InfoCenter extends Auth_Controller
|
||||
'getStudienjahrEnd' => array('infocenter:r', 'lehre/zgvpruefung:r'),
|
||||
'setNavigationMenuArrayJson' => 'infocenter:r',
|
||||
'getAbsageData' => 'infocenter:r',
|
||||
'saveAbsageForAll' => 'infocenter:rw'
|
||||
'saveAbsageForAll' => 'infocenter:rw',
|
||||
'deleteDoc' => 'infocenter:rw',
|
||||
'getStudienartData' => 'infocenter:rw'
|
||||
)
|
||||
);
|
||||
|
||||
@@ -159,6 +168,10 @@ class InfoCenter extends Auth_Controller
|
||||
$this->load->model('system/Message_model', 'MessageModel');
|
||||
$this->load->model('system/Filters_model', 'FiltersModel');
|
||||
$this->load->model('system/PersonLock_model', 'PersonLockModel');
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
$this->load->model('codex/Zgv_model', 'ZgvModel');
|
||||
$this->load->model('codex/Zgvmaster_model', 'ZgvmasterModel');
|
||||
$this->load->model('codex/Nation_model', 'NationModel');
|
||||
|
||||
// Loads libraries
|
||||
$this->load->library('PersonLogLib');
|
||||
@@ -398,6 +411,35 @@ class InfoCenter extends Auth_Controller
|
||||
$this->outputJsonSuccess(array($json));
|
||||
}
|
||||
|
||||
public function deleteDoc($person_id)
|
||||
{
|
||||
$akte_id = $this->input->post('akteid');
|
||||
|
||||
if (isset($akte_id) && isset($person_id))
|
||||
{
|
||||
$this->load->library('AkteLib');
|
||||
$akte = $this->aktelib->get($akte_id);
|
||||
|
||||
if (hasData($akte))
|
||||
{
|
||||
$akte = getData($akte);
|
||||
if ($akte->person_id === (int)$person_id)
|
||||
{
|
||||
$result = $this->aktelib->remove($akte_id);
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
$this->terminateWithJsonError('Error deleting document');
|
||||
}
|
||||
|
||||
$this->_log($person_id, 'deletedoc', array($akte->bezeichnung));
|
||||
|
||||
$this->outputJsonSuccess('success');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets prestudent data for a person in json format
|
||||
* @param $person_id
|
||||
@@ -1074,6 +1116,17 @@ class InfoCenter extends Auth_Controller
|
||||
$this->load->view('system/infocenter/dokNachzureichend.php', array('dokumente_nachgereicht' => $dokumente_nachgereicht->retval));
|
||||
}
|
||||
|
||||
public function reloadUebersichtDoks($person_id)
|
||||
{
|
||||
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false);
|
||||
|
||||
$this->DokumentModel->addOrder('bezeichnung');
|
||||
$dokumentdata = array('dokumententypen' => (getData($this->DokumentModel->load())));
|
||||
$data = array_merge($dokumentdata, ['dokumente' => $dokumente->retval]);
|
||||
|
||||
$this->load->view('system/infocenter/dokpruefung.php', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs content of an Akte, sends appropriate headers (so the document can be downloaded)
|
||||
* @param $akte_id
|
||||
@@ -1932,10 +1985,25 @@ class InfoCenter extends Auth_Controller
|
||||
$abwstatusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
|
||||
$intstatusgruende = $this->StatusgrundModel->getStatus(self::INTERESSENTSTATUS)->retval;
|
||||
|
||||
$studienArtBerechtigung = array_column($this->getStudienArtBerechtigung(), 'typ');
|
||||
|
||||
$this->ZgvModel->addOrder('zgv_bez');
|
||||
$allZGVs = getData($this->ZgvModel->load());
|
||||
|
||||
$this->ZgvModel->addOrder('zgvmas_bez');
|
||||
$allZGVsMaster = getData($this->ZgvmasterModel->load());
|
||||
|
||||
$this->NationModel->addOrder('langtext');
|
||||
$allNations = getData($this->NationModel->load());
|
||||
|
||||
$data = array (
|
||||
'zgvpruefungen' => $zgvpruefungen,
|
||||
'abwstatusgruende' => $abwstatusgruende,
|
||||
'intstatusgruende' => $intstatusgruende
|
||||
'intstatusgruende' => $intstatusgruende,
|
||||
'studienArtBerechtigung' => $studienArtBerechtigung,
|
||||
'all_zgvs' => $allZGVs,
|
||||
'all_zgvs_master' => $allZGVsMaster,
|
||||
'all_nations' => $allNations,
|
||||
);
|
||||
|
||||
return $data;
|
||||
@@ -2194,18 +2262,36 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
public function getAbsageData()
|
||||
{
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
|
||||
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm']);
|
||||
|
||||
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(['b', 'm'], $studienSemester);
|
||||
if (hasData($stg_typ))
|
||||
{
|
||||
$stg_typ = getData($stg_typ);
|
||||
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(array_column($stg_typ, 'typ'), $studienSemester);
|
||||
|
||||
$data = array (
|
||||
'statusgruende' => $statusgruende,
|
||||
'studiengaenge' => $studiengaenge->retval
|
||||
);
|
||||
$data = array (
|
||||
'statusgruende' => $statusgruende,
|
||||
'studiengaenge' => $studiengaenge->retval
|
||||
);
|
||||
|
||||
$this->outputJsonSuccess($data);
|
||||
$this->outputJsonSuccess($data);
|
||||
}
|
||||
else
|
||||
$this->outputJsonSuccess(null);
|
||||
}
|
||||
|
||||
public function getStudienArtBerechtigung()
|
||||
{
|
||||
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
|
||||
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm', 'l']);
|
||||
return getData($stg_typ);
|
||||
}
|
||||
public function getStudienartData()
|
||||
{
|
||||
$this->outputJsonSuccess($this->getStudienArtBerechtigung());
|
||||
}
|
||||
|
||||
public function saveAbsageForAll()
|
||||
|
||||
@@ -81,7 +81,7 @@ class Issues extends Auth_Controller
|
||||
}
|
||||
|
||||
if (isEmptyString($changeIssueMethod))
|
||||
$errors[] = error("Invalid issue status given");
|
||||
$errors[] = "Invalid issue status given";
|
||||
else
|
||||
{
|
||||
$issueRes = $this->issueslib->{$changeIssueMethod}($issue_id, $user);
|
||||
|
||||
+118
-169
@@ -50,62 +50,57 @@ class DmsLib
|
||||
$kategorie_kurzbz = null, $dokument_kurzbz = null, $beschreibung = null, $cis_suche = false, $schlagworte = null
|
||||
)
|
||||
{
|
||||
// write file with content of fileHandle
|
||||
$writeFileResult = $this->_writeNewFile($name, $fileHandle);
|
||||
// create unique filename, using original document name to detect file extension
|
||||
$filename = $this->_getUniqueFilename($name);
|
||||
|
||||
if (isError($writeFileResult)) return $writeFileResult;
|
||||
// copy file from fileHandle to dms folder
|
||||
$copyFileResult = $this->_copyFile($fileHandle, $filename);
|
||||
|
||||
if (hasData($writeFileResult))
|
||||
if (isError($copyFileResult)) return $copyFileResult;
|
||||
|
||||
// if file written successful, insert dms
|
||||
$dmsResult = $this->_ci->DmsModel->insert(
|
||||
array(
|
||||
'kategorie_kurzbz' => $kategorie_kurzbz,
|
||||
'dokument_kurzbz' => $dokument_kurzbz
|
||||
)
|
||||
);
|
||||
|
||||
if (isError($dmsResult)) return $dmsResult;
|
||||
|
||||
if (hasData($dmsResult))
|
||||
{
|
||||
$writeFileData = getData($writeFileResult);
|
||||
$filename = $writeFileData->filename;
|
||||
$dms_id = getData($dmsResult);
|
||||
$version = 0;
|
||||
|
||||
// if file written successful, insert dms
|
||||
$dmsResult = $this->_ci->DmsModel->insert(
|
||||
array(
|
||||
'kategorie_kurzbz' => $kategorie_kurzbz,
|
||||
'dokument_kurzbz' => $dokument_kurzbz
|
||||
)
|
||||
// insert dms version
|
||||
$dmsVersion = array(
|
||||
'dms_id' => $dms_id,
|
||||
'version' => $version,
|
||||
'filename' => $filename,
|
||||
'mimetype' => $mimetype,
|
||||
'name' => $name,
|
||||
'beschreibung' => $beschreibung,
|
||||
'cis_suche' => $cis_suche,
|
||||
'schlagworte' => $schlagworte,
|
||||
'insertvon' => $this->_who,
|
||||
'insertamum' => date('Y-m-d H:i:s')
|
||||
);
|
||||
|
||||
if (isError($dmsResult)) return $dmsResult;
|
||||
$dmsVersionResult = $this->_ci->DmsVersionModel->insert($dmsVersion);
|
||||
|
||||
if (hasData($dmsResult))
|
||||
{
|
||||
$dms_id = getData($dmsResult);
|
||||
$version = 0;
|
||||
if (isError($dmsVersionResult)) return $dmsVersionResult;
|
||||
|
||||
// insert dms version
|
||||
$dmsVersion = array(
|
||||
'dms_id' => $dms_id,
|
||||
'version' => $version,
|
||||
'filename' => $filename,
|
||||
'mimetype' => $mimetype,
|
||||
'name' => $name,
|
||||
'beschreibung' => $beschreibung,
|
||||
'cis_suche' => $cis_suche,
|
||||
'schlagworte' => $schlagworte,
|
||||
'insertvon' => $this->_who,
|
||||
'insertamum' => date('Y-m-d H:i:s')
|
||||
);
|
||||
// return dms info
|
||||
$resObj = new stdClass();
|
||||
$resObj->dms_id = $dms_id;
|
||||
$resObj->version = $version;
|
||||
$resObj->filename = $filename;
|
||||
|
||||
$dmsVersionResult = $this->_ci->DmsVersionModel->insert($dmsVersion);
|
||||
|
||||
if (isError($dmsVersionResult)) return $dmsVersionResult;
|
||||
|
||||
// return dms info
|
||||
$resObj = new stdClass();
|
||||
$resObj->dms_id = $dms_id;
|
||||
$resObj->version = $version;
|
||||
$resObj->filename = $filename;
|
||||
|
||||
return success($resObj);
|
||||
}
|
||||
else
|
||||
return error("error when inserting DMS");
|
||||
return success($resObj);
|
||||
}
|
||||
else
|
||||
return error("file could not be written");
|
||||
return error("error when inserting DMS");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,46 +120,41 @@ class DmsLib
|
||||
|
||||
$originalName = isset($name) ? $name : $lastVersion->name;
|
||||
|
||||
// write new file with content of fileHandle
|
||||
$writeFileResult = $this->_writeNewFile($originalName, $fileHandle);
|
||||
// create unique filename, using original document name to detect file extension
|
||||
$filename = $this->_getUniqueFilename($originalName);
|
||||
|
||||
if (isError($writeFileResult)) return $writeFileResult;
|
||||
// copy file from fileHandle to dms folder
|
||||
$copyFileResult = $this->_copyFile($fileHandle, $filename);
|
||||
|
||||
if (hasData($writeFileResult))
|
||||
{
|
||||
$writeFileData = getData($writeFileResult);
|
||||
$filename = $writeFileData->filename;
|
||||
if (isError($copyFileResult)) return $copyFileResult;
|
||||
|
||||
// insert new version
|
||||
$newVersionNumber = $lastVersion->version + 1;
|
||||
// insert new version
|
||||
$newVersionNumber = $lastVersion->version + 1;
|
||||
|
||||
// if new parameters given, use them, otherwise use parameters from last version
|
||||
$newVersion = array(
|
||||
'dms_id' => $dms_id,
|
||||
'name' => $originalName,
|
||||
'filename' => $filename,
|
||||
'version' => $newVersionNumber,
|
||||
'mimetype' => isset($mimetype) ? $mimetype : $lastVersion->mimetype,
|
||||
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
|
||||
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
|
||||
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
|
||||
'insertvon' => $this->_who,
|
||||
'insertamum' => date('Y-m-d H:i:s')
|
||||
);
|
||||
// if new parameters given, use them, otherwise use parameters from last version
|
||||
$newVersion = array(
|
||||
'dms_id' => $dms_id,
|
||||
'name' => $originalName,
|
||||
'filename' => $filename,
|
||||
'version' => $newVersionNumber,
|
||||
'mimetype' => isset($mimetype) ? $mimetype : $lastVersion->mimetype,
|
||||
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
|
||||
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
|
||||
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
|
||||
'insertvon' => $this->_who,
|
||||
'insertamum' => date('Y-m-d H:i:s')
|
||||
);
|
||||
|
||||
$addVersionResult = $this->_ci->DmsVersionModel->insert($newVersion);
|
||||
$addVersionResult = $this->_ci->DmsVersionModel->insert($newVersion);
|
||||
|
||||
if (isError($addVersionResult)) return $addVersionResult;
|
||||
if (isError($addVersionResult)) return $addVersionResult;
|
||||
|
||||
// return dms info
|
||||
$resObj = new stdClass();
|
||||
$resObj->version = $newVersionNumber;
|
||||
$resObj->filename = $filename;
|
||||
// return dms info
|
||||
$resObj = new stdClass();
|
||||
$resObj->version = $newVersionNumber;
|
||||
$resObj->filename = $filename;
|
||||
|
||||
return success($resObj);
|
||||
}
|
||||
else
|
||||
return error("file could not be written");
|
||||
return success($resObj);
|
||||
}
|
||||
else
|
||||
return error("last version not found");
|
||||
@@ -185,44 +175,37 @@ class DmsLib
|
||||
if (hasData($lastVersionResult))
|
||||
{
|
||||
$lastVersion = getData($lastVersionResult);
|
||||
$filename = $lastVersion->filename;
|
||||
|
||||
// update file in filesystem
|
||||
$writeFileResult = $this->_writeFile($lastVersion->filename, $fileHandle);
|
||||
$copyFileResult = $this->_copyFile($fileHandle, $filename);
|
||||
|
||||
if (isError($writeFileResult)) return $writeFileResult;
|
||||
if (isError($copyFileResult)) return $copyFileResult;
|
||||
|
||||
if (hasData($writeFileResult))
|
||||
{
|
||||
$writeFileData = getData($writeFileResult);
|
||||
$filename = $writeFileData->filename;
|
||||
// if new parameters given, use them, otherwise use parameters from last version
|
||||
$newVersion = array(
|
||||
'name' => isset($name) ? $name : $lastVersion->name,
|
||||
'filename' => $filename,
|
||||
'mimetype' => isset($mimetype) ? $mimetype : $lastVersion->mimetype,
|
||||
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
|
||||
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
|
||||
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
|
||||
);
|
||||
|
||||
// if new parameters given, use them, otherwise use parameters from last version
|
||||
$newVersion = array(
|
||||
'name' => isset($name) ? $name : $lastVersion->name,
|
||||
'filename' => $filename,
|
||||
'mimetype' => isset($mimetype) ? $mimetype : $lastVersion->mimetype,
|
||||
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
|
||||
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
|
||||
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
|
||||
);
|
||||
// update last dms version
|
||||
$addVersionResult = $this->_ci->DmsVersionModel->update(
|
||||
array($dms_id, $lastVersion->version),
|
||||
$newVersion
|
||||
);
|
||||
|
||||
// update last dms version
|
||||
$addVersionResult = $this->_ci->DmsVersionModel->update(
|
||||
array($dms_id, $lastVersion->version),
|
||||
$newVersion
|
||||
);
|
||||
if (isError($addVersionResult)) return $addVersionResult;
|
||||
|
||||
if (isError($addVersionResult)) return $addVersionResult;
|
||||
// return dms info
|
||||
$resObj = new stdClass();
|
||||
$resObj->version = $lastVersion->version;
|
||||
$resObj->filename = $filename;
|
||||
|
||||
// return dms info
|
||||
$resObj = new stdClass();
|
||||
$resObj->version = $lastVersion->version;
|
||||
$resObj->filename = $filename;
|
||||
|
||||
return success($resObj);
|
||||
}
|
||||
else
|
||||
return error("file could not be written");
|
||||
return success($resObj);
|
||||
}
|
||||
else
|
||||
return error("last version not found");
|
||||
@@ -441,68 +424,35 @@ class DmsLib
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Writes file with content of fileHandle using original document name for file extension
|
||||
* Copies file from sourceFileHandle to destinationFilename in DMS folder
|
||||
* Returns success or error on fail
|
||||
*/
|
||||
private function _writeNewFile($originalName, $fileHandle)
|
||||
private function _copyFile($sourceFileHandle, $destinationFilename)
|
||||
{
|
||||
// create unique filename, using original document name to detect file extension
|
||||
$filename = $this->_getUniqueFilename($originalName);
|
||||
// get file location from file handle
|
||||
$metaData = stream_get_meta_data($sourceFileHandle);
|
||||
|
||||
// write the file
|
||||
return $this->_writeFile($filename, $fileHandle);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes file with content of fileHandle
|
||||
* Returns number of bytes written and filename
|
||||
*/
|
||||
private function _writeFile($filename, $fileHandle)
|
||||
{
|
||||
// file content provided by fileHandle
|
||||
$fileContent = '';
|
||||
|
||||
$readBlockResult = success();
|
||||
|
||||
// While the end of the file is not reached and the read does not fail
|
||||
while (!feof($fileHandle) && isSuccess($readBlockResult = $this->_ci->DmsFSModel->readBlock($fileHandle)))
|
||||
if (isset($metaData['uri']) && !isEmptyString($metaData['uri']))
|
||||
{
|
||||
// Concatenate the content of the file
|
||||
$fileContent .= getData($readBlockResult);
|
||||
// if file location determined, copy file
|
||||
$source = $metaData['uri'];
|
||||
|
||||
if (copy($source, DMS_PATH.$destinationFilename))
|
||||
{
|
||||
return success();
|
||||
}
|
||||
else
|
||||
{
|
||||
// error if copy returned false
|
||||
return error('error occured while copying file');
|
||||
}
|
||||
}
|
||||
|
||||
// If an error occurred while reading then return it
|
||||
if (isError($readBlockResult)) return $readBlockResult;
|
||||
|
||||
// open file for writing
|
||||
$openFileResult = $this->_ci->DmsFSModel->openReadWrite($filename);
|
||||
|
||||
if (isError($openFileResult)) return $openFileResult;
|
||||
|
||||
if (!hasData($openFileResult)) return error("File could not be opened");
|
||||
|
||||
$newFileHandle = getData($openFileResult);
|
||||
|
||||
// write file
|
||||
$writeFileResult = $this->_ci->DmsFSModel->write($newFileHandle, $fileContent);
|
||||
|
||||
if (isError($writeFileResult)) return $writeFileResult;
|
||||
|
||||
// return number of bytes written and filename
|
||||
$resObj = new stdClass();
|
||||
$resObj->bytesWritten = 0;
|
||||
$resObj->filename = '';
|
||||
|
||||
if (hasData($writeFileResult))
|
||||
else
|
||||
{
|
||||
$resObj->bytesWritten = getData($writeFileResult);
|
||||
$resObj->filename = $filename;
|
||||
// error when source location could not be determined
|
||||
return error('error occured while getting source file name');
|
||||
}
|
||||
|
||||
// close handle
|
||||
$closeResult = $this->_ci->DmsFSModel->close($newFileHandle, $fileContent);
|
||||
|
||||
if (isError($closeResult)) return $closeResult;
|
||||
|
||||
return success($resObj);
|
||||
}
|
||||
|
||||
@@ -527,7 +477,7 @@ class DmsLib
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------
|
||||
// Deprecated methods, not to be used
|
||||
|
||||
|
||||
/**
|
||||
* Load a DMS Document.
|
||||
* If no version is particularly given, the latest version is loaded.
|
||||
@@ -543,7 +493,7 @@ class DmsLib
|
||||
$this->_ci->DmsModel->addJoin('campus.tbl_dms_version', 'dms_id');
|
||||
$this->_ci->DmsModel->addOrder('version', 'DESC');
|
||||
$this->_ci->DmsModel->addLimit(1);
|
||||
|
||||
|
||||
if (!is_numeric($version))
|
||||
{
|
||||
return $this->_ci->DmsModel->load($dms_id);
|
||||
@@ -620,7 +570,7 @@ class DmsLib
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Uploads a document and saves it to DMS
|
||||
* @param $dms DMS assoc array
|
||||
@@ -659,7 +609,7 @@ class DmsLib
|
||||
// Return result of uploaded data
|
||||
return success($upload_data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Download a document.
|
||||
*
|
||||
@@ -678,7 +628,7 @@ class DmsLib
|
||||
if (hasData($fileInfoResult))
|
||||
{
|
||||
$fileObj = getData($fileInfoResult);
|
||||
|
||||
|
||||
// Change filename, if filename is provided
|
||||
if (!isEmptyString($filename)) $fileObj->name = $filename;
|
||||
|
||||
@@ -694,7 +644,7 @@ class DmsLib
|
||||
// If no data have been found then return an empty success
|
||||
return success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get file information.
|
||||
*
|
||||
@@ -706,7 +656,7 @@ class DmsLib
|
||||
{
|
||||
// Checks the dms_id parameter
|
||||
if (!is_numeric($dms_id)) return error('Wrong parameter');
|
||||
|
||||
|
||||
// Load DMS from database
|
||||
$result = $this->load($dms_id, $version);
|
||||
if (isError($result)) return error(getError($result));
|
||||
@@ -951,4 +901,3 @@ class DmsLib
|
||||
$this->_ci->upload->initialize($config);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -454,7 +454,7 @@ class ExtensionsLib
|
||||
require_once('version.php'); // get the core version
|
||||
|
||||
// Checks if the required core version of the extension is the same of this system
|
||||
if (isset($extensionJson->core_version) && $extensionJson->core_version == $fhcomplete_version)
|
||||
if (isset($extensionJson->core_version) && version_compare($extensionJson->core_version, $fhcomplete_version,'<='))
|
||||
{
|
||||
$this->_printMessage('Required core version: '.$extensionJson->core_version);
|
||||
$this->_printMessage('Current core version: '.$fhcomplete_version);
|
||||
|
||||
@@ -271,95 +271,6 @@ class FilterCmptLib
|
||||
$this->_setSessionElement(FilterCmptLib::SESSION_TIMEOUT, strtotime('+'.$this->_sessionTimeout.' minutes', time()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the sort of the selected fields of the current filter
|
||||
*/
|
||||
public function sortSelectedFields($selectedFields)
|
||||
{
|
||||
$sortSelectedFields = false;
|
||||
|
||||
// Checks the parameter selectedFields
|
||||
if (isset($selectedFields) && is_array($selectedFields) && count($selectedFields) > 0)
|
||||
{
|
||||
// Retrieves all the used fields by the current filter
|
||||
$fields = $this->_getSessionElement(self::SESSION_FIELDS);
|
||||
|
||||
// Checks that the given selected fields are present in all the used fields by the current filter
|
||||
if (!array_diff($selectedFields, $fields))
|
||||
{
|
||||
$this->_setSessionElement(self::SESSION_SELECTED_FIELDS, $selectedFields); // write changes into the session
|
||||
|
||||
$sortSelectedFields = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $sortSelectedFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a field to the current filter
|
||||
*/
|
||||
public function addSelectedField($selectedField)
|
||||
{
|
||||
$removeSelectedField = false;
|
||||
|
||||
// Checks the parameter selectedField
|
||||
if (!isEmptyString($selectedField))
|
||||
{
|
||||
// Retrieves all the used fields by the current filter
|
||||
$fields = $this->_getSessionElement(self::SESSION_FIELDS);
|
||||
// Retrieves the selected fields by the current filter
|
||||
$selectedFields = $this->_getSessionElement(self::SESSION_SELECTED_FIELDS);
|
||||
|
||||
// Checks that the given selected field is present in the list of all the used fields by the current filter
|
||||
if (in_array($selectedField, $fields))
|
||||
{
|
||||
array_push($selectedFields, $selectedField); // place the new filed at the end of the selected fields list
|
||||
|
||||
$this->_setSessionElement(self::SESSION_SELECTED_FIELDS, $selectedFields); // write changes into the session
|
||||
|
||||
$removeSelectedField = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $removeSelectedField;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a selected field from the current filter
|
||||
*/
|
||||
public function removeSelectedField($selectedField)
|
||||
{
|
||||
$removeSelectedField = false;
|
||||
|
||||
// Checks the parameter selectedField
|
||||
if (!isEmptyString($selectedField))
|
||||
{
|
||||
// Retrieves all the used fields by the current filter
|
||||
$fields = $this->_getSessionElement(self::SESSION_FIELDS);
|
||||
// Retrieves the selected fields by the current filter
|
||||
$selectedFields = $this->_getSessionElement(self::SESSION_SELECTED_FIELDS);
|
||||
|
||||
// Checks that the given selected field is present in the list of all the used fields by the current filter
|
||||
if (in_array($selectedField, $fields))
|
||||
{
|
||||
// If the selected field is present in the list of the selected fields by the current filter
|
||||
$pos = array_search($selectedField, $selectedFields);
|
||||
if ($pos !== false)
|
||||
{
|
||||
// Then remove it and shift the rest of elements by one if needed
|
||||
array_splice($selectedFields, $pos, 1);
|
||||
}
|
||||
|
||||
$this->_setSessionElement(self::SESSION_SELECTED_FIELDS, $selectedFields); // write changes into the session
|
||||
|
||||
$removeSelectedField = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $removeSelectedField;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a filter (SQL where clause) to be applied to the current filter
|
||||
*/
|
||||
@@ -593,6 +504,12 @@ class FilterCmptLib
|
||||
$saveCustomFilter = true;
|
||||
}
|
||||
|
||||
if ($saveCustomFilter === true)
|
||||
{
|
||||
$this->_setSessionElement(FilterCmptLib::SESSION_SIDE_MENU,
|
||||
$this->_generateFilterMenu($this->_app, $this->_datasetName));
|
||||
}
|
||||
|
||||
return $saveCustomFilter;
|
||||
}
|
||||
|
||||
@@ -659,7 +576,7 @@ class FilterCmptLib
|
||||
}
|
||||
else // otherwise
|
||||
{
|
||||
$menuEntry->subscriptDescription = 'Remove';
|
||||
$menuEntry->subscriptDescription = '(Remove)';
|
||||
$menuEntry->subscriptLinkClass = 'remove-custom-filter';
|
||||
$menuEntry->subscriptLinkValue = $filter->{self::FILTER_ID};
|
||||
|
||||
@@ -851,15 +768,31 @@ class FilterCmptLib
|
||||
{
|
||||
// comparison (==)
|
||||
case self::OP_EQUAL:
|
||||
if (is_numeric($filterDefinition->condition)) $condition = '= '.$filterDefinition->condition;
|
||||
// Numeric
|
||||
if (is_numeric($filterDefinition->condition))
|
||||
{
|
||||
$condition = '= '.$filterDefinition->condition;
|
||||
}
|
||||
else // string type
|
||||
{
|
||||
$condition = '= \''.$this->_ci->FiltersModel->escapeLike($filterDefinition->condition).'\'';
|
||||
}
|
||||
break;
|
||||
// not equal (!=)
|
||||
case self::OP_NOT_EQUAL:
|
||||
if (is_numeric($filterDefinition->condition)) $condition = '!= '.$filterDefinition->condition;
|
||||
// Numeric
|
||||
if (is_numeric($filterDefinition->condition))
|
||||
{
|
||||
$condition = '!= '.$filterDefinition->condition;
|
||||
}
|
||||
else // string type
|
||||
{
|
||||
$condition = '!= \''.$this->_ci->FiltersModel->escapeLike($filterDefinition->condition).'\'';
|
||||
}
|
||||
break;
|
||||
// greater than (>)
|
||||
case self::OP_GREATER_THAN:
|
||||
// It it's a date type
|
||||
// If it's a date type
|
||||
if (is_numeric($filterDefinition->condition)
|
||||
&& isset($filterDefinition->option)
|
||||
&& ($filterDefinition->option == self::OPT_HOURS
|
||||
@@ -876,7 +809,7 @@ class FilterCmptLib
|
||||
break;
|
||||
// less than (<)
|
||||
case self::OP_LESS_THAN:
|
||||
// It it's a date type
|
||||
// If it's a date type
|
||||
if (is_numeric($filterDefinition->condition)
|
||||
&& isset($filterDefinition->option)
|
||||
&& ($filterDefinition->option == self::OPT_HOURS
|
||||
|
||||
@@ -340,20 +340,25 @@ class FilterWidgetLib
|
||||
{
|
||||
$filterDefinition = $filters[$filtersCounter]; // definition of one filter
|
||||
|
||||
if ($filtersCounter > 0)
|
||||
$where .= ' AND '; // if it's NOT the last one
|
||||
|
||||
if (!isEmptyString($filterDefinition->name)) // if the name of the applied filter is valid
|
||||
// If the name of the applied filter is valid
|
||||
if (!isEmptyString($filterDefinition->name))
|
||||
{
|
||||
// ...build the condition
|
||||
$where .= '"'.$filterDefinition->name.'"'.$this->_getDatasetQueryCondition($filterDefinition);
|
||||
// Build the query conditions
|
||||
$datasetQueryCondition = $this->_getDatasetQueryCondition($filterDefinition);
|
||||
|
||||
// If the built condition is valid then add it to the query clause
|
||||
if (!isEmptyString($datasetQueryCondition))
|
||||
{
|
||||
// // If this is NOT the first one
|
||||
if ($filtersCounter > 0) $where .= ' AND ';
|
||||
|
||||
$where .= '"'.$filterDefinition->name.'"'.$datasetQueryCondition;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($where != '') // if the SQL where clause was built
|
||||
{
|
||||
$datasetQuery .= ' WHERE '.$where;
|
||||
}
|
||||
// If the SQL where clause was built
|
||||
if ($where != '') $datasetQuery .= ' WHERE '.$where;
|
||||
}
|
||||
|
||||
return $datasetQuery;
|
||||
|
||||
@@ -122,11 +122,21 @@ class SearchBarLib
|
||||
p.person_id AS person_id,
|
||||
p.vorname || \' \' || p.nachname AS name,
|
||||
ARRAY_AGG(DISTINCT(org.bezeichnung)) AS organisationunit_name,
|
||||
b.uid || \''.'@'.DOMAIN.'\' AS email,
|
||||
COALESCE(b.alias, b.uid) || \''.'@'.DOMAIN.'\' AS email,
|
||||
TRIM(COALESCE(k.kontakt, \'\') || \' \' || COALESCE(m.telefonklappe, \'\')) AS phone,
|
||||
\''.base_url(self::PHOTO_IMG_URL).'\' || p.person_id AS photo_url
|
||||
\''.base_url(self::PHOTO_IMG_URL).'\' || p.person_id AS photo_url,
|
||||
ARRAY_AGG(DISTINCT(stdkst.bezeichnung)) AS standardkostenstelle
|
||||
FROM public.tbl_mitarbeiter m
|
||||
JOIN public.tbl_benutzer b ON(b.uid = m.mitarbeiter_uid)
|
||||
JOIN (
|
||||
SELECT o.bezeichnung, bf.uid
|
||||
FROM public.tbl_benutzerfunktion bf
|
||||
JOIN public.tbl_organisationseinheit o USING(oe_kurzbz)
|
||||
WHERE bf.funktion_kurzbz = \'kstzuordnung\'
|
||||
AND (bf.datum_von IS NULL OR bf.datum_von <= NOW())
|
||||
AND (bf.datum_bis IS NULL OR bf.datum_bis >= NOW())
|
||||
GROUP BY o.bezeichnung, bf.uid
|
||||
) stdkst ON stdkst.uid = b.uid
|
||||
JOIN public.tbl_person p USING(person_id)
|
||||
JOIN (
|
||||
SELECT o.bezeichnung, bf.uid
|
||||
@@ -136,7 +146,7 @@ class SearchBarLib
|
||||
AND (bf.datum_von IS NULL OR bf.datum_von <= NOW())
|
||||
AND (bf.datum_bis IS NULL OR bf.datum_bis >= NOW())
|
||||
GROUP BY o.bezeichnung, bf.uid
|
||||
) org USING(uid)
|
||||
) org ON org.uid = b.uid
|
||||
LEFT JOIN (
|
||||
SELECT kontakt, standort_id
|
||||
FROM public.tbl_kontakt
|
||||
@@ -145,6 +155,8 @@ class SearchBarLib
|
||||
WHERE b.uid ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
|
||||
OR p.vorname ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
|
||||
OR p.nachname ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
|
||||
OR org.bezeichnung ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
|
||||
OR stdkst.bezeichnung ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
|
||||
GROUP BY type, b.uid, p.person_id, name, email, m.telefonklappe, phone
|
||||
');
|
||||
|
||||
|
||||
@@ -528,6 +528,13 @@ class Messages_model extends CI_Model
|
||||
*/
|
||||
public function sendReply($receiver_id, $subject, $body, $relationmessage_id, $token)
|
||||
{
|
||||
// Checks that the receiver_id, relationmessage_id and token belongs to the same message
|
||||
$crossedDataResult = $this->MessageTokenModel->crossClientData($token, $relationmessage_id, $receiver_id);
|
||||
if (isError($crossedDataResult)) show_error(getError($crossedDataResult));
|
||||
if (!hasData($crossedDataResult)) show_error(
|
||||
'The parameters token, relationmessage_id and receiver_id do not belong to the same message'
|
||||
);
|
||||
|
||||
// Retrieves message sender information
|
||||
$senderResult = $this->MessageTokenModel->getSenderData($receiver_id);
|
||||
if (isError($senderResult)) show_error(getError($senderResult));
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
class Gsprogramm_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'bis.tbl_gsprogramm';
|
||||
$this->pk = 'gsprogramm_id';
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
class Mobilitaet_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'bis.tbl_mobilitaet';
|
||||
$this->pk = 'mobilitaet_id';
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
class Nation_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
@@ -11,4 +11,4 @@ class Nation_model extends DB_Model
|
||||
$this->dbTable = 'bis.tbl_nation';
|
||||
$this->pk = 'nation_code';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ class Dokumentprestudent_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_dokumentprestudent';
|
||||
$this->pk = array('prestudent_id', 'dokument_kurzbz');
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -74,10 +74,11 @@ class Konto_model extends DB_Model
|
||||
}
|
||||
}
|
||||
|
||||
public function getLastStudienbeitrag($uid, $buchungstypen)
|
||||
public function getStudienbeitraege($uid, $buchungstypen)
|
||||
{
|
||||
$query = 'SELECT konto.studiensemester_kurzbz
|
||||
FROM public.tbl_konto konto,
|
||||
FROM public.tbl_konto konto
|
||||
JOIN public.tbl_studiensemester studiensemester ON konto.studiensemester_kurzbz = studiensemester.studiensemester_kurzbz,
|
||||
public.tbl_benutzer,
|
||||
public.tbl_student
|
||||
WHERE tbl_benutzer.uid = \'' . $uid . '\'
|
||||
@@ -91,7 +92,7 @@ class Konto_model extends DB_Model
|
||||
WHERE skonto.buchungsnr = konto.buchungsnr_verweis
|
||||
OR skonto.buchungsnr_verweis = konto.buchungsnr_verweis
|
||||
)
|
||||
ORDER BY buchungsnr DESC LIMIT 1;
|
||||
ORDER BY studiensemester.start DESC;
|
||||
';
|
||||
|
||||
return $this->execQuery($query);
|
||||
|
||||
@@ -556,7 +556,7 @@ class Prestudent_model extends DB_Model
|
||||
*/
|
||||
public function getOrganisationunitsByPersonId($person_id)
|
||||
{
|
||||
$query = 'SELECT o.oe_kurzbz,
|
||||
$query = 'SELECT DISTINCT o.oe_kurzbz,
|
||||
o.bezeichnung,
|
||||
(CASE
|
||||
WHEN sg.typ = \'b\' THEN ps.prestudent_id
|
||||
|
||||
@@ -507,4 +507,14 @@ class Studiengang_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($typ, $semester));
|
||||
}
|
||||
|
||||
public function getStudiengangTyp($studiengang_kz, $typ)
|
||||
{
|
||||
$query = "SELECT DISTINCT(sgt.*)
|
||||
FROM tbl_studiengangstyp sgt JOIN tbl_studiengang sg on sgt.typ = sg.typ
|
||||
WHERE studiengang_kz IN ? and sgt.typ IN ?";
|
||||
|
||||
return $this->execQuery($query, array($studiengang_kz, $typ));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,4 +176,20 @@ class MessageToken_model extends DB_Model
|
||||
|
||||
return $this->execQuery($sql, array($oe_kurzbz));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function crossClientData($token, $relationmessage_id, $receiver_id)
|
||||
{
|
||||
$sql = 'SELECT mm.message_id
|
||||
FROM public.tbl_msg_message mm
|
||||
JOIN public.tbl_msg_recipient mr USING(message_id)
|
||||
WHERE mr.token = ?
|
||||
AND mm.message_id = ?
|
||||
AND mm.person_id = ?';
|
||||
|
||||
return $this->execQuery($sql, array($token, $relationmessage_id, $receiver_id));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,46 +1,47 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Pruefungsprotokoll',
|
||||
'jquery3' => true,
|
||||
'jqueryui1' => true,
|
||||
'bootstrap3' => true,
|
||||
'fontawesome4' => true,
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'phrases' => array(
|
||||
'abschlusspruefung' => array(
|
||||
'freigegebenAm',
|
||||
'pruefungGespeichert',
|
||||
'pruefungSpeichernFehler',
|
||||
'abschlussbeurteilungLeer',
|
||||
'beginnzeitLeer',
|
||||
'beginnzeitFormatError',
|
||||
'endezeitLeer',
|
||||
'endezeitFormatError',
|
||||
'endezeitBeforeError',
|
||||
'verfNotice'
|
||||
),
|
||||
'ui' => array(
|
||||
'stunde',
|
||||
'minute'
|
||||
)
|
||||
$sitesettings = array(
|
||||
'title' => 'Pruefungsprotokoll',
|
||||
'jquery3' => true,
|
||||
'jqueryui1' => true,
|
||||
'bootstrap3' => true,
|
||||
'fontawesome4' => true,
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'phrases' => array(
|
||||
'abschlusspruefung' => array(
|
||||
'freigegebenAm',
|
||||
'pruefungGespeichert',
|
||||
'pruefungSpeichernFehler',
|
||||
'abschlussbeurteilungLeer',
|
||||
'beginnzeitLeer',
|
||||
'beginnzeitFormatError',
|
||||
'endezeitLeer',
|
||||
'endezeitFormatError',
|
||||
'endezeitBeforeError',
|
||||
'verfNotice'
|
||||
),
|
||||
'customCSSs' => array(
|
||||
'public/css/sbadmin2/admintemplate_contentonly.css',
|
||||
'vendor/fgelinas/timepicker/jquery.ui.timepicker.css',
|
||||
'public/css/lehre/pruefungsprotokoll.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'vendor/fgelinas/timepicker/jquery.ui.timepicker.js',
|
||||
'public/js/lehre/pruefungsprotokoll.js'
|
||||
'ui' => array(
|
||||
'stunde',
|
||||
'minute'
|
||||
)
|
||||
),
|
||||
'customCSSs' => array(
|
||||
'public/css/sbadmin2/admintemplate_contentonly.css',
|
||||
'vendor/fgelinas/timepicker/jquery.ui.timepicker.css',
|
||||
'public/css/lehre/pruefungsprotokoll.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'vendor/fgelinas/timepicker/jquery.ui.timepicker.js',
|
||||
'public/js/lehre/pruefungsprotokoll.js'
|
||||
)
|
||||
);
|
||||
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
$sitesettings
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
@@ -230,4 +231,8 @@ $this->load->view(
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Footer',
|
||||
$sitesettings
|
||||
);
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
'tablesorter2' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'gruppenmanagement',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
JOIN public.tbl_gruppe_manager grpmgr USING (gruppe_kurzbz)
|
||||
WHERE grp.aktiv = TRUE
|
||||
AND grpmgr.uid = \''.$uid.'\'',
|
||||
'requiredPermissions' => 'admin',
|
||||
'requiredPermissions' => 'lehre/gruppenmanager',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'additionalColumns' => array('Teilnehmer'),
|
||||
'columnsAliases' => array(
|
||||
|
||||
@@ -1,28 +1,30 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'InfocenterDetails',
|
||||
'jquery3' => true,
|
||||
'bootstrap3' => true,
|
||||
'fontawesome4' => true,
|
||||
'jqueryui1' => true,
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'udfs' => true,
|
||||
'widgets' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'customCSSs' => array(
|
||||
'public/css/sbadmin2/admintemplate.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js'
|
||||
)
|
||||
)
|
||||
);
|
||||
$sitesettings = array(
|
||||
'title' => 'InfocenterDetails',
|
||||
'jquery3' => true,
|
||||
'bootstrap3' => true,
|
||||
'fontawesome4' => true,
|
||||
'jqueryui1' => true,
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'udfs' => true,
|
||||
'widgets' => true,
|
||||
'sbadmintemplate3' => true,
|
||||
'customCSSs' => array(
|
||||
'public/css/sbadmin2/admintemplate.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js'
|
||||
)
|
||||
);
|
||||
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
$sitesettings
|
||||
);
|
||||
?>
|
||||
|
||||
<body style="background-color: #eff0f1;">
|
||||
|
||||
|
||||
<div class="div-table">
|
||||
<div class="div-row">
|
||||
@@ -104,7 +106,4 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
<?php $this->load->view("templates/footer"); ?>
|
||||
|
||||
<?php $this->load->view("templates/FHC-Footer", $sitesettings); ?>
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
<div class="table-responsive">
|
||||
<table id="doctable" class="table table-bordered">
|
||||
<div class="table-responsive" id="uebersichtDoks">
|
||||
<table id="doctable" class="table table-bordered table-condensed tablesorter tablesorter-default">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo ucfirst($this->p->t('global','name')) ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('global','typ')) ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('global','uploaddatum')) ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('ui','loeschen')) ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('infocenter','ausstellungsnation')) ?></th>
|
||||
<?php
|
||||
if (!isset($formalReadonly))
|
||||
@@ -22,7 +23,7 @@
|
||||
<a href="outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo isEmptyString($dokument->titel) ? $dokument->bezeichnung : $dokument->titel ?></a>
|
||||
</td>
|
||||
<td>
|
||||
<select class="aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?> autocomplete="off">
|
||||
<select class="form-control aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?> autocomplete="off">
|
||||
<?php
|
||||
foreach($dokumententypen as $dokumenttyp)
|
||||
echo "<option " . ($dokumenttyp->bezeichnung === $dokument->dokument_bezeichnung ? 'selected' : '') . " value = " . $dokumenttyp->dokument_kurzbz . ">" . $dokumenttyp->bezeichnung . "</option>"
|
||||
@@ -30,7 +31,7 @@
|
||||
</select>
|
||||
|
||||
<div class="row">
|
||||
<button class="nachreichungInfos hidden" id="nachreichungInfos_<?php echo $dokument->akte_id?>"><?php echo ucfirst($this->p->t('infocenter','dokumentWirdNachgereicht')) ?></button>
|
||||
<button class="nachreichungInfos hidden btn btn-default" id="nachreichungInfos_<?php echo $dokument->akte_id?>"><?php echo ucfirst($this->p->t('infocenter','dokumentWirdNachgereicht')) ?></button>
|
||||
</div>
|
||||
|
||||
<div class="nachreichungInputs hidden" id="nachreichungInputs_<?php echo $dokument->akte_id?>">
|
||||
@@ -49,7 +50,7 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="btn-group pull-right">
|
||||
<input type="button" value="OK" class="btn btn-primary nachreichungSpeichern" id="nachreichungSpeichern_<?php echo $dokument->akte_id?>">
|
||||
<input type="button" value="OK" class="btn btn-primary nachreichungSpeichern btn-default" id="nachreichungSpeichern_<?php echo $dokument->akte_id?>">
|
||||
<input type="button" value="Abbrechen" class="btn btn-default nachreichungAbbrechen" id="nachreichungAbbrechen_<?php echo $dokument->akte_id?>">
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,6 +61,7 @@
|
||||
|
||||
</td>
|
||||
<td><?php echo date_format(date_create($dokument->erstelltam), 'd.m.Y') ?></td>
|
||||
<td><input type="button" value="<?php echo ucfirst($this->p->t('ui','loeschen')); ?>" class="btn btn-default dokLoeschen" id="dokLoeschen_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?>></td>
|
||||
<td><?php echo $dokument->langtext ?></td>
|
||||
<?php
|
||||
if (!isset($formalReadonly)) :
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$ORG_NAME = '\'InfoCenter\'';
|
||||
$ONLINE = '\'online\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -55,10 +56,13 @@
|
||||
a.dokument_kurzbz in ('.$AKTE_TYP.')
|
||||
) AS "AnzahlAkte",
|
||||
(
|
||||
SELECT CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END
|
||||
SELECT CASE WHEN student.student_uid IS NULL THEN
|
||||
(CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END)
|
||||
ELSE '. $ONLINE .' END
|
||||
FROM system.tbl_log l
|
||||
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
|
||||
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
|
||||
LEFT JOIN public.tbl_student student ON tbl_benutzer.uid = student.student_uid
|
||||
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$ORG_NAME = '\'InfoCenter\'';
|
||||
$IDENTITY = '\'identity\'';
|
||||
$ONLINE = '\'online\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -42,10 +43,13 @@ $query = '
|
||||
LIMIT 1
|
||||
) AS "LastActionType",
|
||||
(
|
||||
SELECT CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END
|
||||
SELECT CASE WHEN student.student_uid IS NULL THEN
|
||||
(CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END)
|
||||
ELSE '. $ONLINE .' END
|
||||
FROM system.tbl_log l
|
||||
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
|
||||
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
|
||||
LEFT JOIN public.tbl_student student ON tbl_benutzer.uid = student.student_uid
|
||||
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
@@ -178,7 +182,7 @@ $query = '
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
ORDER BY rtp.teilgenommen NULLS FIRST, pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestAngetreten",
|
||||
(
|
||||
@@ -199,7 +203,7 @@ $query = '
|
||||
LIMIT 1
|
||||
) AS "ReihungstestApplied",
|
||||
(
|
||||
SELECT CONCAT(rtp.datum, rtp.uhrzeit)
|
||||
SELECT (ARRAY_TO_STRING(array_agg(DISTINCT(CONCAT(rtp.datum, \' \', to_char(rtp.uhrzeit, \'HH24:MI\'), \' \', studiengang.kurzbzlang))), \', \'))
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
LEFT JOIN (
|
||||
@@ -207,14 +211,17 @@ $query = '
|
||||
rt.studiensemester_kurzbz,
|
||||
rtp.teilgenommen,
|
||||
rt.datum,
|
||||
rt.uhrzeit
|
||||
rt.uhrzeit,
|
||||
rt.studiengang_kz
|
||||
FROM public.tbl_rt_person rtp
|
||||
JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id)
|
||||
WHERE rt.stufe = 1
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
JOIN tbl_studiengang studiengang ON rtp.studiengang_kz = studiengang.studiengang_kz
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
GROUP BY pss.datum, pss.insertamum, pss.ext_id
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestDate",
|
||||
@@ -414,10 +421,6 @@ $query = '
|
||||
{
|
||||
$datasetRaw->{'ReihungstestDate'} = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d H:i');
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'ZGVNation'} == null)
|
||||
{
|
||||
|
||||
@@ -124,6 +124,32 @@
|
||||
</div>
|
||||
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
class="panel-collapse collapse<?php echo $infoonly ? '' : ' in' ?>">
|
||||
<?php
|
||||
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
|
||||
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
|
||||
{
|
||||
$disabled = $disabledStg = 'disabled';
|
||||
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
|
||||
}
|
||||
|
||||
if ($studiengangtyp !== 'b' && $studiengangtyp !== 'm')
|
||||
{
|
||||
$disabled = 'disabled';
|
||||
$disabledTxt = $this->p->t('infocenter', 'nurBachelorMasterFreigeben');
|
||||
|
||||
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
|
||||
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
|
||||
{
|
||||
$disabledStg = 'disabled';
|
||||
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorMasterFreigeben');
|
||||
}
|
||||
}
|
||||
|
||||
if (!in_array($studiengangtyp, $studienArtBerechtigung))
|
||||
$disabledPer = 'disabled';
|
||||
else
|
||||
$disabledPer = '';
|
||||
?>
|
||||
<div class="panel-body">
|
||||
<form action="javascript:void(0);" class="zgvform" id="zgvform_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<input type="hidden" name="prestudentid" value="<?php echo $zgvpruefung->prestudent_id ?>" class="prestudentidinput">
|
||||
@@ -196,12 +222,25 @@
|
||||
<a href="javascript:void(0)"><i class="fa fa-info-circle"></i> <?php echo $this->p->t('infocenter', 'zgv') ?> <?php echo $studiengangkurzbz ?></a>
|
||||
</div>
|
||||
</div>
|
||||
<?php if (!$infoonly)
|
||||
echo $this->widgetlib->widget(
|
||||
'Zgv_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code),
|
||||
array('name' => 'zgv', 'id' => 'zgv_'.$zgvpruefung->prestudent_id)
|
||||
); ?>
|
||||
<?php if (!$infoonly):
|
||||
echo "<select id='zgv_" . $zgvpruefung->prestudent_id . "' name='zgv' class='form-control'>";
|
||||
$selectedDefault = (is_null($zgvpruefung->zgv_code) ? 'selected' : '');
|
||||
echo "<option " . $selectedDefault . " value='null'>Bitte Eintrag wählen...</option>";
|
||||
foreach ($all_zgvs as $zgv)
|
||||
{
|
||||
$selected = ($zgvpruefung->zgv_code === $zgv->zgv_code) ? 'selected' : '';
|
||||
$aktiv = '';
|
||||
$class = '';
|
||||
if (!$zgv->aktiv)
|
||||
{
|
||||
$aktiv = '(inaktiv)';
|
||||
$class = 'gesperrtoption';
|
||||
}
|
||||
|
||||
echo "<option " . $selected . " value='" . $zgv->zgv_code . "' class='". $class ."'>" . $zgv->zgv_bez . " " . $aktiv ."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-<?php echo $columns[1] ?>">
|
||||
@@ -239,11 +278,26 @@
|
||||
<?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_'.$zgvpruefung->prestudent_id)
|
||||
); ?>
|
||||
{
|
||||
echo "<select id='zgvnation_" . $zgvpruefung->prestudent_id . "' name='zgvnation' class='form-control'>";
|
||||
$selectedDefault = (is_null($zgvpruefung->zgvnation_code) ? 'selected' : '');
|
||||
echo "<option " . $selectedDefault . " value='null'>Bitte Eintrag wählen...</option>";
|
||||
|
||||
foreach ($all_nations as $nation)
|
||||
{
|
||||
$selected = ($nation->nation_code === $zgvpruefung->zgvnation_code) ? 'selected' : '';
|
||||
$sperre = '';
|
||||
$class = '';
|
||||
if ($nation->sperre == 'true')
|
||||
{
|
||||
$sperre = '(gesperrt)';
|
||||
$class = 'gesperrtoption';
|
||||
}
|
||||
echo "<option " . $selected . " value='" . $nation->nation_code . "' class='" . $class ."'>" . $nation->langtext . " " . $sperre ."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -256,11 +310,25 @@
|
||||
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_'.$zgvpruefung->prestudent_id)
|
||||
); ?>
|
||||
{
|
||||
echo "<select id='zgvmas_" . $zgvpruefung->prestudent_id . "' name='zgvmas' class='form-control'>";
|
||||
$selectedDefault = (is_null($zgvpruefung->zgvmas_code) ? 'selected' : '');
|
||||
echo "<option " . $selectedDefault . " value='null'>Bitte Eintrag wählen...</option>";
|
||||
foreach ($all_zgvs_master as $zgv)
|
||||
{
|
||||
$selected = ($zgvpruefung->zgvmas_code === $zgv->zgvmas_code) ? 'selected' : '';
|
||||
$aktiv = '';
|
||||
$class = '';
|
||||
if (!$zgv->aktiv)
|
||||
{
|
||||
$aktiv = '(inaktiv)';
|
||||
$class = 'gesperrtoption';
|
||||
}
|
||||
echo "<option " . $selected . " value='" . $zgv->zgvmas_code . "' class='" . $class . "'>" . $zgv->zgvmas_bez . " " . $aktiv ."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-<?php echo $columns[1] ?>">
|
||||
@@ -300,11 +368,28 @@
|
||||
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_'.$zgvpruefung->prestudent_id)
|
||||
); ?>
|
||||
{
|
||||
echo "<select id='zgvmanation_" . $zgvpruefung->prestudent_id . "' name='zgvmanation' class='form-control'>";
|
||||
$selectedDefault = (is_null($zgvpruefung->zgvmanation_code) ? 'selected' : '');
|
||||
echo "<option " . $selectedDefault . " value='null'>Bitte Eintrag wählen...</option>";
|
||||
|
||||
foreach ($all_nations as $nation)
|
||||
{
|
||||
$selected = ($nation->nation_code === $zgvpruefung->zgvmanation_code) ? 'selected' : '';
|
||||
$sperre = '';
|
||||
$class = '';
|
||||
|
||||
if ($nation->sperre == 'true')
|
||||
{
|
||||
$sperre = '(gesperrt)';
|
||||
$class = 'gesperrtoption';
|
||||
}
|
||||
|
||||
echo "<option " . $selected . " value='" . $nation->nation_code . "' class='" . $class . "'>" . $nation->langtext . " " . $sperre ."</option>";
|
||||
}
|
||||
echo "</select>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -318,17 +403,17 @@
|
||||
<?php if (!$infoonly): ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-8 text-left zgvBearbeitungButtons" id="zgvBearbeitungButtons_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>" <?php echo $disabledPer?>>
|
||||
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
|
||||
</button>
|
||||
<button class="btn btn-default zgvRueckfragen" id="zgvRueckfragen_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<button class="btn btn-default zgvRueckfragen" <?php echo $disabledStg . ' ' . $disabledPer?> id="zgvRueckfragen_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'zgvRueckfragen') ?>
|
||||
</button>
|
||||
<span class="zgvStatusText" id="zgvStatusText_<?php echo $zgvpruefung->prestudent_id ?>" <?php (!(isset($zgvpruefung->statusZGV))) ?: print_r('data-info="need"')?>>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-xs-4 text-right">
|
||||
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>" <?php echo $disabledPer?>>
|
||||
<?php echo $this->p->t('ui', 'speichern') ?>
|
||||
</button>
|
||||
</div>
|
||||
@@ -336,7 +421,7 @@
|
||||
<?php endif; ?>
|
||||
<br />
|
||||
<?php
|
||||
if (isset($zgvpruefung->prestudentUdfs))
|
||||
if (isset($zgvpruefung->prestudentUdfs) && $studiengangtyp !== 'l')
|
||||
{
|
||||
echo $this->udflib->UDFWidget(
|
||||
array(
|
||||
@@ -362,6 +447,8 @@
|
||||
<div class="form-inline">
|
||||
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<select name="absgstatusgrund"
|
||||
<?php echo $disabledStg ?>
|
||||
<?php echo $disabledPer ?>
|
||||
class="d-inline float-right"
|
||||
required>
|
||||
<option value="null"
|
||||
@@ -373,7 +460,7 @@
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button type="button"
|
||||
class="btn btn-default absageBtn" id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
class="btn btn-default absageBtn" <?php echo $disabledStg . ' ' . $disabledPer?> id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('ui', 'absagen') ?>
|
||||
</button>
|
||||
</span>
|
||||
@@ -381,25 +468,6 @@
|
||||
</div>
|
||||
</div><!-- /.column-absage -->
|
||||
<?php
|
||||
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
|
||||
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
|
||||
{
|
||||
$disabled = $disabledStg = 'disabled';
|
||||
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
|
||||
}
|
||||
|
||||
if ($studiengangtyp !== 'b' && $studiengangtyp !== 'm')
|
||||
{
|
||||
$disabled = 'disabled';
|
||||
$disabledTxt = $this->p->t('infocenter', 'nurBachelorMasterFreigeben');
|
||||
|
||||
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
|
||||
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
|
||||
{
|
||||
$disabledStg = 'disabled';
|
||||
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorMasterFreigeben');
|
||||
}
|
||||
}
|
||||
if (!$infoonly) :
|
||||
?>
|
||||
<div class="col-lg-8 text-right">
|
||||
@@ -408,6 +476,7 @@
|
||||
<select name="frgstatusgrund"
|
||||
class="d-inline float-right"
|
||||
<?php echo $disabledStg ?>
|
||||
<?php echo $disabledPer ?>
|
||||
required>
|
||||
<option value="null"
|
||||
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
|
||||
@@ -417,14 +486,14 @@
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg ?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg . ' ' . $disabledPer?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
data-toggle="tooltip" title="<?php echo $disabledStgTxt ?>">
|
||||
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="input-group" id="igrfrgbtn">
|
||||
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled ?>
|
||||
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled . ' ' . $disabledPer?>
|
||||
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
|
||||
<?php echo $this->p->t('ui', 'freigabeZumReihungstest') ?>
|
||||
</button>
|
||||
@@ -489,6 +558,8 @@
|
||||
<div class="col-lg-4 text-left">
|
||||
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<select name="absgstatusgrund"
|
||||
<?php echo $disabledStg?>
|
||||
<?php echo $disabledPer?>
|
||||
class="d-inline float-right"
|
||||
required>
|
||||
<option value="null"
|
||||
@@ -500,6 +571,8 @@
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button type="button"
|
||||
<?php echo $disabledStg ?>
|
||||
<?php echo $disabledPer ?>
|
||||
class="btn btn-default absageBtn" id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('ui', 'absagen') ?>
|
||||
</button>
|
||||
@@ -552,4 +625,3 @@
|
||||
endforeach; // end foreach zgvpruefungen
|
||||
?>
|
||||
</div><!-- /.panel-group -->
|
||||
|
||||
|
||||
@@ -24,16 +24,10 @@
|
||||
<core-navigation-cmpt v-bind:add-side-menu-entries="appSideMenuEntries"></core-navigation-cmpt>
|
||||
|
||||
<div id="content">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
Job Logs Viewer
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<!-- Filter component -->
|
||||
<core-filter-cmpt
|
||||
title="Job Logs Viewer"
|
||||
filter-type="LogsViewer"
|
||||
:tabulator-options="logsViewerTabulatorOptions"
|
||||
:tabulator-events="logsViewerTabulatorEventHandlers"
|
||||
|
||||
@@ -90,7 +90,8 @@
|
||||
{
|
||||
generateCSSsInclude('vendor/npm-asset/primevue/resources/themes/bootstrap4-light-blue/theme.css');
|
||||
generateCSSsInclude('vendor/npm-asset/primevue/resources/primevue.min.css');
|
||||
generateCSSsInclude('vendor/npm-asset/primeicons/primeicons.css');
|
||||
// generateCSSsInclude('vendor/npm-asset/primevue/resources/primeflex.min.css');
|
||||
generateCSSsInclude('vendor/npm-asset/primeicons/primeicons.css');
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
@@ -103,13 +104,13 @@
|
||||
if ($dialoglib === true) generateCSSsInclude('public/css/DialogLib.css');
|
||||
|
||||
// VUE FilterWidget CSS
|
||||
if ($filtercomponent === true) generateCSSsInclude('public/css/FilterComponent.css');
|
||||
if ($filtercomponent === true) generateCSSsInclude('public/css/components/FilterComponent.css');
|
||||
|
||||
// FilterWidget CSS
|
||||
if ($filterwidget === true) generateCSSsInclude('public/css/FilterWidget.css');
|
||||
|
||||
// VUE NavigationWidget CSS
|
||||
if ($navigationcomponent === true) generateCSSsInclude('public/css/NavigationComponent.css');
|
||||
if ($navigationcomponent === true) generateCSSsInclude('public/css/components/NavigationComponent.css');
|
||||
|
||||
// NavigationWidget CSS
|
||||
if ($navigationwidget === true) generateCSSsInclude('public/css/NavigationWidget.css');
|
||||
|
||||
@@ -233,12 +233,21 @@ if (isset($_REQUEST["submit"]))
|
||||
continue;
|
||||
}
|
||||
$punkte=str_replace(',','.', $punkte);
|
||||
//UID ermitteln
|
||||
|
||||
//check ob statt Matrikelnummer nicht bereits student_uid (Moodle Grade Import) vorliegt..
|
||||
$student = new student();
|
||||
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
|
||||
if (!$student->checkIfValidStudentUID($matrikelnummer))
|
||||
{
|
||||
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
|
||||
continue;
|
||||
//UID ermitteln
|
||||
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
|
||||
{
|
||||
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$student_uid = $matrikelnummer;
|
||||
}
|
||||
|
||||
// Hole Zeugnisnote wenn schon eine eingetragen ist
|
||||
|
||||
@@ -803,6 +803,7 @@ if (defined('CIS_ANWESENHEITSLISTE_NOTENLISTE_ANZEIGEN') && CIS_ANWESENHEITSLIST
|
||||
{
|
||||
$hrefpath = "../notenliste.xls.php?stg=$stg_obj->studiengang_kz&lvid=$lvid&stsem=$stsem";
|
||||
echo "<br><a class='Item' href='" . $hrefpath . "'>" . $p->t('benotungstool/notenlisteImport') . "</a>";
|
||||
|
||||
}
|
||||
|
||||
// eingetragene lv-gesamtnoten freigeben
|
||||
|
||||
@@ -103,6 +103,7 @@ $gruppen_string = '';
|
||||
$gruppen_string_arr = array();
|
||||
$stg_typ = $stg->typ;
|
||||
$stg_bezeichnung = $stg->bezeichnung;
|
||||
$lv_bezeichnung = '';
|
||||
|
||||
//structure overall lehrveranstaltungs data
|
||||
if ($result = $db->db_query($qry)) {
|
||||
@@ -154,6 +155,7 @@ $qry = 'SELECT DISTINCT ON
|
||||
(nachname, vorname, person_id)
|
||||
vorname,
|
||||
nachname,
|
||||
wahlname,
|
||||
matrikelnr,
|
||||
tbl_studentlehrverband.semester,
|
||||
tbl_studentlehrverband.verband,
|
||||
@@ -238,6 +240,16 @@ if ($result = $db->db_query($qry)) {
|
||||
if ($row->stg_kz_student == $a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz .= '(a.o.)';
|
||||
|
||||
//wenn Wahlname vorhanden, wird dieser anstelle des Vornamens angezeigt
|
||||
if ($row->wahlname != '')
|
||||
{
|
||||
$vorname = $row->wahlname;
|
||||
}
|
||||
else
|
||||
{
|
||||
$vorname = $row->vorname;
|
||||
}
|
||||
|
||||
//allow admin and assistenz to see ALL fotos (even if locked by user)
|
||||
if ($show_all_fotos)
|
||||
$row->foto_sperre = 'f';
|
||||
@@ -272,7 +284,7 @@ if ($result = $db->db_query($qry)) {
|
||||
|
||||
//add studierenden data for XML
|
||||
$data[] = array('studierende' => array(
|
||||
'vorname' => $row->vorname,
|
||||
'vorname' => $vorname,
|
||||
'nachname' => mb_strtoupper($row->nachname, 'UTF-8'),
|
||||
'personenkennzeichen' => trim($row->matrikelnr),
|
||||
'geschlecht' => $row->geschlecht,
|
||||
|
||||
@@ -102,6 +102,7 @@ if (isset($_GET["handbuch"])){
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link href="../../../skin/jquery.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
|
||||
@@ -136,7 +136,7 @@ if (! check_student($user))
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT vw_student.vorname, vw_student.nachname, vw_student.prestudent_id, tbl_studiengang.studiengang_kz
|
||||
$qry = "SELECT vw_student.vorname, vw_student.nachname, vw_student.wahlname, vw_student.prestudent_id, tbl_studiengang.studiengang_kz
|
||||
FROM public.tbl_studiengang JOIN campus.vw_student USING (studiengang_kz)
|
||||
WHERE campus.vw_student.uid = " . $db->db_add_param($user) . ";";
|
||||
|
||||
@@ -148,6 +148,7 @@ else
|
||||
|
||||
$vorname = $row->vorname;
|
||||
$nachname = $row->nachname;
|
||||
$wahlname = $row->wahlname;
|
||||
$prestudent_id = $row->prestudent_id;
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->load($row->studiengang_kz);
|
||||
@@ -313,7 +314,7 @@ else
|
||||
// Noten ohne Wert werden entfernen
|
||||
if(isset($notenarr[$row->note]['notenwert']))
|
||||
{
|
||||
$notenSummenArray[$row->lehrveranstaltung_id]['notenwert'] = $notenarr[$row->note]['notenwert'];
|
||||
$notenSummenArray[$row->lehrveranstaltung_id]['notenwert'] = $notenarr[$row->note]['notenwert'];
|
||||
$notenSummenArray[$row->lehrveranstaltung_id]['ects'] = $row->ects;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ else
|
||||
//Lektoren ermitteln
|
||||
|
||||
$qry = "SELECT
|
||||
distinct vorname, nachname
|
||||
distinct vorname, nachname, wahlname
|
||||
FROM
|
||||
campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
|
||||
WHERE
|
||||
@@ -211,7 +211,7 @@ else
|
||||
$qry = "
|
||||
SELECT
|
||||
distinct on(nachname, vorname, person_id)
|
||||
vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid,
|
||||
vorname, nachname, wahlname, matrikelnr, person_id, tbl_student.student_uid as uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz
|
||||
FROM public.tbl_prestudentstatus
|
||||
@@ -277,6 +277,8 @@ else
|
||||
$worksheet->write($lines,1,$elem->uid);
|
||||
$worksheet->write($lines,2,$elem->nachname.$inc);
|
||||
$worksheet->write($lines,3,$elem->vorname);
|
||||
//wenn Wahlname vorhanden überschreibt dieser den Vornamen
|
||||
$worksheet->write($lines,3,$elem->wahlname);
|
||||
$worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
|
||||
$worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight);
|
||||
$worksheet->write($lines,6, $note, $format_highlightright);
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
/*
|
||||
* GUI fuer die FreeBusy Verwaltung
|
||||
*
|
||||
*
|
||||
* Mit diesem Tool koennen FreeBusy URLs aus verschiedenen Quellen zu einer
|
||||
* FreeBusy URL zusammengefasst werden
|
||||
*/
|
||||
@@ -32,7 +32,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
|
||||
$user = get_uid();
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
@@ -60,23 +60,23 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
<link rel="stylesheet" href="../../../skin/jquery.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<title>'.$p->t('freebusy/titel').'</title>
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#myTable").tablesorter(
|
||||
{
|
||||
sortList: [[0,1]],
|
||||
widgets: [\'zebra\']
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function seturl()
|
||||
{
|
||||
url = $("#typ option:selected").attr("url");
|
||||
@@ -116,25 +116,25 @@ if($action=='delete')
|
||||
elseif($action=='save')
|
||||
{
|
||||
//Speichern von Eintraegen
|
||||
|
||||
|
||||
$id = (isset($_POST['id'])?$_POST['id']:'');
|
||||
$aktiv = isset($_POST['aktiv']);
|
||||
|
||||
|
||||
if(isset($_POST['bezeichnung']))
|
||||
$bezeichnung = $_POST['bezeichnung'];
|
||||
else
|
||||
die($p->t('global/fehlerBeiDerParameteruebergabe'));
|
||||
|
||||
|
||||
if(isset($_POST['typ']))
|
||||
$typ = $_POST['typ'];
|
||||
else
|
||||
die($p->t('global/fehlerBeiDerParameteruebergabe'));
|
||||
|
||||
|
||||
if(isset($_POST['url']))
|
||||
$url = $_POST['url'];
|
||||
else
|
||||
die($p->t('global/fehlerBeiDerParameteruebergabe'));
|
||||
|
||||
|
||||
//Pruefen ob die URL geoeffnet werden kann
|
||||
$fp = @fopen($url,'r');
|
||||
if (!$fp)
|
||||
@@ -142,7 +142,7 @@ elseif($action=='save')
|
||||
else
|
||||
{
|
||||
fclose($fp);
|
||||
|
||||
|
||||
$fb = new freebusy();
|
||||
if($id!='')
|
||||
{
|
||||
@@ -150,8 +150,8 @@ elseif($action=='save')
|
||||
die($p->t('global/fehleraufgetreten'));
|
||||
if($fb->uid!=$user)
|
||||
die($p->t('global/keineBerechtigungZumAendernDesDatensatzes'));
|
||||
|
||||
|
||||
|
||||
|
||||
$fb->new=false;
|
||||
}
|
||||
else
|
||||
@@ -161,20 +161,20 @@ elseif($action=='save')
|
||||
$fb->insertvon = $user;
|
||||
$fb->uid = $user;
|
||||
}
|
||||
|
||||
|
||||
$fb->updateamum = date('Y-m-d H:i:s');
|
||||
$fb->updatevon = $user;
|
||||
$fb->bezeichnung = $bezeichnung;
|
||||
$fb->url = $url;
|
||||
$fb->freebusytyp_kurzbz = $typ;
|
||||
$fb->aktiv = $aktiv;
|
||||
|
||||
|
||||
if($fb->save())
|
||||
echo '<span class="ok">'.$p->t('global/erfolgreichgespeichert').'</span>';
|
||||
else
|
||||
echo '<span class="error">'.$p->t('global/fehleraufgetreten').'</span>';
|
||||
echo '<span class="error">'.$p->t('global/fehleraufgetreten').'</span>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//Tabelle mit den vorhandenen Eintraegen anzeigen
|
||||
@@ -201,7 +201,17 @@ echo '<table id="myTable" class="tablesorter">
|
||||
echo '<td></td>';
|
||||
echo '<td></td>';
|
||||
echo '</tr>';
|
||||
|
||||
|
||||
//zeitsperren
|
||||
echo '<tr>';
|
||||
echo '<td>'.$p->t('freebusy/ZeitsperrenBezeichnung').'</td>';
|
||||
echo '<td>'.$p->t('freebusy/ZeitsperrenTyp').'</td>';
|
||||
echo '<td></td>';
|
||||
echo '<td>'.$p->t('global/ja').'</td>';
|
||||
echo '<td></td>';
|
||||
echo '<td></td>';
|
||||
echo '</tr>';
|
||||
|
||||
foreach($fb->result as $row)
|
||||
{
|
||||
$typ = new freebusy();
|
||||
@@ -223,7 +233,7 @@ echo '<a href="'.$_SERVER['PHP_SELF'].'?action=neu">'.$p->t('freebusy/neuerEintr
|
||||
if($action=='edit' || $action=='neu')
|
||||
{
|
||||
$fb = new freebusy();
|
||||
|
||||
|
||||
if($action=='neu')
|
||||
{
|
||||
$new = true;
|
||||
@@ -236,7 +246,7 @@ if($action=='edit' || $action=='neu')
|
||||
if(!$fb->load($id))
|
||||
die($p->t('global/fehlerBeimLadenDesDatensatzes'));
|
||||
}
|
||||
|
||||
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'?action=save" method="POST">';
|
||||
echo '<input type="hidden" name="id" value="'.$fb->freebusy_id.'" />';
|
||||
echo '<table>
|
||||
@@ -259,7 +269,7 @@ if($action=='edit' || $action=='neu')
|
||||
$selected='selected';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
|
||||
$vorlage = mb_str_replace('$uid',$user, $row->url_vorlage);
|
||||
echo '<OPTION value="'.$db->convert_html_chars($row->freebusytyp_kurzbz).'" '.$selected.' url="'.$db->convert_html_chars($vorlage).'">'.$db->convert_html_chars($row->bezeichnung),'</OPTION>';
|
||||
}
|
||||
@@ -275,4 +285,4 @@ if($action=='edit' || $action=='neu')
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -108,7 +108,7 @@ if (defined('LOG_CONTENT') && LOG_CONTENT==true)
|
||||
//Easter Egg
|
||||
$easteregg = array ('antwort','leben','universum','rest','answer','universe','life','everything');
|
||||
$easteregg_intersect = array_intersect(array_map('strtolower',$searchItems), $easteregg);
|
||||
if (count($easteregg_intersect)==4)
|
||||
if (count($easteregg_intersect)==3)
|
||||
{
|
||||
echo '<table width="100%"><tr><td align="center"><br><br><br><p style="align:center; font-size: 2000%;"><strong>42</strong></p></td></tr></table>';
|
||||
exit;
|
||||
@@ -178,20 +178,25 @@ function searchPerson($searchItems)
|
||||
echo '<tr>';
|
||||
//echo '<td>',$row->titelpre,'</td>';
|
||||
echo '<td>',$row->anrede,'</td>';
|
||||
echo '<td>',$row->vorname,'</td>';
|
||||
|
||||
if ($row->wahlname)
|
||||
echo '<td>',$row->wahlname, ' ' ,$row->vorname, '</td>';
|
||||
else
|
||||
echo '<td>',$row->vorname, '</td>';
|
||||
|
||||
echo '<td>';
|
||||
if(!defined('CIS_SUCHE_PROFIL_ANZEIGEN'))
|
||||
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
|
||||
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname, ' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
|
||||
else if(!CIS_SUCHE_PROFIL_ANZEIGEN)
|
||||
{
|
||||
$mitarbeiter = new Mitarbeiter($uid);
|
||||
if($mitarbeiter->errormsg === NULL)
|
||||
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
|
||||
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname, ' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
|
||||
else
|
||||
echo $row->nachname;
|
||||
}
|
||||
else
|
||||
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
|
||||
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
|
||||
if($row->aktiv==false)
|
||||
echo '<span style="color: red"> (ausgeschieden)</span>';
|
||||
elseif($bisverwendung->beschausmasscode=='5')
|
||||
|
||||
@@ -158,7 +158,7 @@ $angezeigte_tage = '50';
|
||||
|
||||
$zs = new zeitsperre();
|
||||
if ($alle)
|
||||
$zs->getZeitsperrenForZeitaufzeichnung($user,'180');
|
||||
$zs->getZeitsperrenForZeitaufzeichnung($user,'360');
|
||||
else
|
||||
$zs->getZeitsperrenForZeitaufzeichnung($user,$angezeigte_tage);
|
||||
|
||||
@@ -1440,7 +1440,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
else
|
||||
{
|
||||
if ($alle==true)
|
||||
$za->getListeUserFull($user, '');
|
||||
$za->getListeUserFull($user, '360');
|
||||
else
|
||||
$za->getListeUserFull($user, $angezeigte_tage);
|
||||
}
|
||||
|
||||
@@ -105,6 +105,26 @@ else
|
||||
|
||||
$ical->importFreeBusy($doc, 'LVPLAN');
|
||||
}
|
||||
|
||||
//Zeitsperren
|
||||
$fp = fopen(APP_ROOT.'cis/public/freebusy_zeitsperren.php/'.$uid,'r');
|
||||
if (!$fp)
|
||||
{
|
||||
echo "URL kann nicht geoeffnet werden<br />\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$doc = '';
|
||||
while (!feof($fp))
|
||||
{
|
||||
$line = fgets($fp);
|
||||
$doc.=$line;
|
||||
}
|
||||
fclose($fp);
|
||||
|
||||
$ical->importFreeBusy($doc, 'Zeitsperren');
|
||||
}
|
||||
|
||||
echo $ical->getFreeBusy();
|
||||
echo "\nEND:VCALENDAR";
|
||||
?>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<title>TestTool - FH Technikum Wien</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap3/dist/css/bootstrap.min.css">
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -44,14 +44,17 @@ define('PAABGABE_PATH','/var/fhcomplete/documents/paabgabe/');
|
||||
// Pfad zu den Rauminfos
|
||||
define('RAUMINFO_PATH','/var/www/html/build/rauminfos/');
|
||||
|
||||
// Pfad zu Applikation
|
||||
define('BASE_LOCATION','/');
|
||||
|
||||
// URL zu RDF Verzeichnis
|
||||
define('XML_ROOT','http://www.fhcomplete.org/build/rdf/');
|
||||
define('XML_ROOT','http://www.fhcomplete.org'.BASE_LOCATION.'rdf/');
|
||||
// URL zu Application Root
|
||||
define('APP_ROOT','http://www.fhcomplete.org/build/');
|
||||
define('APP_ROOT','http://www.fhcomplete.org/'.BASE_LOCATION);
|
||||
// Pfad zu Document Root
|
||||
define('DOC_ROOT','/var/www/html/build/');
|
||||
// URL zu Vilesci Root
|
||||
define('VILESCI_ROOT','http://www.fhcomplete.org/build/');
|
||||
define('VILESCI_ROOT','http://www.fhcomplete.org/');
|
||||
|
||||
// Externe Funktionen - Unterordner im Include-Verzeichnis
|
||||
define('EXT_FKT_PATH','tw');
|
||||
|
||||
@@ -258,6 +258,9 @@ define('STIP_USER_PASSWORD','password');
|
||||
// Array mit Usern die nicht Kollidieren
|
||||
define('KOLLISIONSFREIE_USER',serialize(array('_DummyLektor')));
|
||||
|
||||
// UID des Dummy Lektors
|
||||
define('DUMMY_LEKTOR_UID','_DummyLektor');
|
||||
|
||||
// Soll der Lageplan am Infoterminal angezeigt werden (true|false)
|
||||
//define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN', true);
|
||||
|
||||
|
||||
@@ -33,14 +33,16 @@ define('INFOSCREEN_PASSWORD', '');
|
||||
// Name des Servers (benoetigt fuer Cronjobs
|
||||
define('SERVER_NAME', 'localhost');
|
||||
|
||||
// Pfad zu Applikation
|
||||
define('BASE_LOCATION','/');
|
||||
// URL zu FHComplete Root
|
||||
define('APP_ROOT', 'http://www.fhcomlete.org/build/');
|
||||
define('APP_ROOT', 'http://www.fhcomlete.org'.BASE_LOCATION);
|
||||
// URL zu RDF Verzeichnis
|
||||
define('XML_ROOT', 'http://www.fhcomlete.org/build/rdf/');
|
||||
define('XML_ROOT', 'http://www.fhcomlete.org'.BASE_LOCATION.'rdf/');
|
||||
// Pfad zu Document Root
|
||||
define('DOC_ROOT', '/var/www/html/build/');
|
||||
// URL zu CIS
|
||||
define('CIS_ROOT', 'http://www.fhcomlete.org/build/');
|
||||
define('CIS_ROOT', 'http://www.fhcomlete.org/');
|
||||
|
||||
// Externe Funktionen - Unterordner im Include-Verzeichnis
|
||||
define('EXT_FKT_PATH', 'tw');
|
||||
@@ -263,4 +265,7 @@ define('FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK', serialize(
|
||||
|
||||
// Spezialnoten die am Zeunigs und Diplomasupplement ignoriert werden
|
||||
define('ZEUGNISNOTE_NICHT_ANZEIGEN',serialize(array('iar', 'nz')));
|
||||
|
||||
//Default Lehrmodus
|
||||
define ('DEFAULT_LEHRMODUS','regulaer');
|
||||
?>
|
||||
|
||||
@@ -74,6 +74,7 @@ if(!$error)
|
||||
$mitarbeiter->titelpre = $_POST['titelpre'];
|
||||
$mitarbeiter->titelpost = $_POST['titelpost'];
|
||||
$mitarbeiter->vorname = $_POST['vorname'];
|
||||
$mitarbeiter->wahlname = $_POST['wahlname'];
|
||||
$mitarbeiter->vornamen = $_POST['vornamen'];
|
||||
$mitarbeiter->nachname = $_POST['nachname'];
|
||||
$mitarbeiter->gebdatum = $_POST['geburtsdatum'];
|
||||
@@ -181,7 +182,7 @@ if(!$error)
|
||||
$verwendung->azgrelevant = false;
|
||||
else
|
||||
$verwendung->azgrelevant = '';
|
||||
|
||||
|
||||
if($_POST['homeoffice']=='true')
|
||||
$verwendung->homeoffice = true;
|
||||
elseif($_POST['homeoffice']=='false')
|
||||
|
||||
@@ -85,6 +85,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Vornamen" control="mitarbeiter-detail-textbox-vornamen"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-vornamen" disabled="true" maxlength="128" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Wahlname" control="mitarbeiter-detail-textbox-wahlname"/>
|
||||
<textbox id="mitarbeiter-detail-textbox-wahlname" disabled="true" maxlength="128" oninput="MitarbeiterDetailValueChange()"/>
|
||||
</row>
|
||||
<row <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?>>
|
||||
<label value="Geburtsdatum" control="mitarbeiter-detail-textbox-geburtsdatum" />
|
||||
<hbox>
|
||||
|
||||
@@ -414,6 +414,7 @@ function MitarbeiterDetailDisableFields(val)
|
||||
document.getElementById('mitarbeiter-detail-textbox-titelpost').disabled=val;
|
||||
document.getElementById('mitarbeiter-detail-textbox-nachname').disabled=val;
|
||||
document.getElementById('mitarbeiter-detail-textbox-vorname').disabled=val;
|
||||
document.getElementById('mitarbeiter-detail-textbox-wahlname').disabled=val;
|
||||
document.getElementById('mitarbeiter-detail-textbox-vornamen').disabled=val;
|
||||
document.getElementById('mitarbeiter-detail-textbox-geburtsdatum').disabled=val;
|
||||
document.getElementById('mitarbeiter-detail-textbox-geburtsort').disabled=val;
|
||||
@@ -535,6 +536,7 @@ function MitarbeiterAuswahl()
|
||||
titelpre=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titelpre" ));
|
||||
titelpost=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titelpost" ));
|
||||
vorname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vorname" ));
|
||||
wahlname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wahlname" ));
|
||||
vornamen=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vornamen" ));
|
||||
nachname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nachname" ));
|
||||
geburtsdatum=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#geburtsdatum" ));
|
||||
@@ -576,6 +578,7 @@ function MitarbeiterAuswahl()
|
||||
document.getElementById('mitarbeiter-detail-textbox-titelpre').value=titelpre;
|
||||
document.getElementById('mitarbeiter-detail-textbox-titelpost').value=titelpost;
|
||||
document.getElementById('mitarbeiter-detail-textbox-vorname').value=vorname;
|
||||
document.getElementById('mitarbeiter-detail-textbox-wahlname').value=wahlname;
|
||||
document.getElementById('mitarbeiter-detail-textbox-vornamen').value=vornamen;
|
||||
document.getElementById('mitarbeiter-detail-textbox-nachname').value=nachname;
|
||||
document.getElementById('mitarbeiter-detail-textbox-geburtsdatum').value=geburtsdatum;
|
||||
@@ -631,7 +634,7 @@ function MitarbeiterAuswahl()
|
||||
document.getElementById('mitarbeiter-detail-textbox-alias').value=alias;
|
||||
|
||||
// ***** KONTAKTE *****
|
||||
document.getElementById('mitarbeiter-kontakt').setAttribute('src','kontakt.xul.php?person_id='+person_id);
|
||||
document.getElementById('mitarbeiter-kontakt').setAttribute('src','kontakt.xul.php?person_id='+person_id+'&'+gettimestamp());
|
||||
|
||||
// ***** BETRIEBSMITTEL *****
|
||||
document.getElementById('mitarbeiter-betriebsmittel').setAttribute('src','betriebsmitteloverlay.xul.php?person_id='+person_id+'&uid='+uid);
|
||||
@@ -818,6 +821,7 @@ function MitarbeiterSave()
|
||||
titelpre = document.getElementById('mitarbeiter-detail-textbox-titelpre').value;
|
||||
titelpost = document.getElementById('mitarbeiter-detail-textbox-titelpost').value;
|
||||
vorname = document.getElementById('mitarbeiter-detail-textbox-vorname').value;
|
||||
wahlname = document.getElementById('mitarbeiter-detail-textbox-wahlname').value;
|
||||
vornamen = document.getElementById('mitarbeiter-detail-textbox-vornamen').value;
|
||||
nachname = document.getElementById('mitarbeiter-detail-textbox-nachname').value;
|
||||
geburtsdatum = document.getElementById('mitarbeiter-detail-textbox-geburtsdatum').value;
|
||||
@@ -873,6 +877,7 @@ function MitarbeiterSave()
|
||||
req.add('titelpre', titelpre);
|
||||
req.add('titelpost', titelpost);
|
||||
req.add('vorname', vorname);
|
||||
req.add('wahlname', wahlname);
|
||||
req.add('vornamen', vornamen);
|
||||
req.add('nachname', nachname);
|
||||
req.add('geburtsdatum', ConvertDateToISO(geburtsdatum));
|
||||
@@ -988,6 +993,7 @@ function MitarbeiterDetailgetSpaltenname(id)
|
||||
if(id=='mitarbeiter-treecol-titelpre') return 'titelpre';
|
||||
if(id=='mitarbeiter-treecol-vorname') return 'vorname';
|
||||
if(id=='mitarbeiter-treecol-vornamen') return 'vornamen';
|
||||
if(id=='mitarbeiter-treecol-wahlname') return 'wahlname';
|
||||
if(id=='mitarbeiter-treecol-nachname') return 'nachname';
|
||||
if(id=='mitarbeiter-treecol-titelpost') return 'titelpost';
|
||||
if(id=='mitarbeiter-treecol-personalnummer') return 'personalnummer';
|
||||
|
||||
@@ -111,9 +111,13 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-wahlname" label="Wahlname" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#wahlname" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-vornamen" label="Vornamen" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" onclick="MitarbeiterTreeSort()"/>
|
||||
sort="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#wahlname" onclick="MitarbeiterTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="mitarbeiter-treecol-titelpost" label="TitelPost" flex="1" persist="hidden, width, ordinal" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
@@ -208,7 +212,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#wahlname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vornamen" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/mitarbeiter/rdf#aktiv" label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost" />
|
||||
<?php
|
||||
if($rechte->isBerechtigt('mitarbeiter/persoenlich'))
|
||||
|
||||
@@ -181,7 +181,9 @@ SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung,
|
||||
AND tbl_lehrveranstaltung.lehrform_kurzbz = slv.lehrform_kurzbz
|
||||
AND sle.studiensemester_kurzbz = " . $db->db_add_param($previousStsem) . "
|
||||
) AS vorjahr_lektor,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.las,
|
||||
tbl_lehrveranstaltung.alvs
|
||||
FROM lehre.tbl_lehrveranstaltung
|
||||
JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id)
|
||||
@@ -274,7 +276,7 @@ $maxlength[$spalte]=9;
|
||||
$worksheet->write($zeile,++$spalte,"LV-Nummer", $format_bold);
|
||||
$maxlength[$spalte]=9;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"Semesterstunden", $format_bold);
|
||||
$worksheet->write($zeile,++$spalte,"Lehrauftragsstunden", $format_bold);
|
||||
$maxlength[$spalte]=15;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"ECTS", $format_bold);
|
||||
@@ -295,6 +297,14 @@ $maxlength[$spalte]=10;
|
||||
$worksheet->write($zeile,++$spalte,"Start in KW", $format_bold);
|
||||
$maxlength[$spalte]=10;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"LAS der LV", $format_bold);
|
||||
$maxlength[$spalte]=10;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"ALVS der LV", $format_bold);
|
||||
$maxlength[$spalte]=10;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"Anzahl Studierende", $format_bold);
|
||||
$maxlength[$spalte]=16;
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -445,6 +455,26 @@ if($result = $db->db_query($qry))
|
||||
|
||||
//Start in KW
|
||||
$worksheet->write($zeile,++$spalte,$row->start_kw);
|
||||
|
||||
//LAS der LV
|
||||
$worksheet->write($zeile,++$spalte,$row->las);
|
||||
|
||||
//ALVS der LV
|
||||
$worksheet->write($zeile,++$spalte,$row->alvs);
|
||||
|
||||
// Anzahl Studierende in Lehreinheit
|
||||
$anzahlStudierende = 0;
|
||||
$qry_anz_std = "SELECT count(DISTINCT uid) as anzahl FROM campus.vw_student_lehrveranstaltung WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id, FHC_INTEGER);
|
||||
|
||||
if($result_anz_std = $db->db_query($qry_anz_std))
|
||||
{
|
||||
if ($row_anz_std = $db->db_fetch_object($result_anz_std))
|
||||
{
|
||||
$anzahlStudierende = $row_anz_std->anzahl;
|
||||
}
|
||||
}
|
||||
|
||||
$worksheet->write($zeile,++$spalte,$anzahlStudierende);
|
||||
}
|
||||
|
||||
//Betreuungen
|
||||
|
||||
@@ -582,6 +582,7 @@ if(!$error)
|
||||
$student->titelpre = $_POST['titelpre'];
|
||||
$student->titelpost = $_POST['titelpost'];
|
||||
$student->vorname = $_POST['vorname'];
|
||||
$student->wahlname = $_POST['wahlname'];
|
||||
$student->vornamen = $_POST['vornamen'];
|
||||
$student->nachname = $_POST['nachname'];
|
||||
$student->gebdatum = $_POST['geburtsdatum'];
|
||||
@@ -735,6 +736,7 @@ if(!$error)
|
||||
$person->titelpost = $_POST['titelpost'];
|
||||
$person->vorname = $_POST['vorname'];
|
||||
$person->vornamen = $_POST['vornamen'];
|
||||
$person->wahlname = $_POST['wahlname'];
|
||||
$person->nachname = $_POST['nachname'];
|
||||
$person->gebdatum = $_POST['geburtsdatum'];
|
||||
$person->gebort = $_POST['geburtsort'];
|
||||
@@ -3126,6 +3128,7 @@ if(!$error)
|
||||
$bisio->bisio_id = (isset($_POST['bisio_id'])?$_POST['bisio_id']:'');
|
||||
$bisio->mobilitaetsprogramm_code = $_POST['mobilitaetsprogramm_code'];
|
||||
$bisio->nation_code = $_POST['nation_code'];
|
||||
$bisio->herkunftsland_code = $_POST['herkunftsland_code'];
|
||||
$bisio->von = $_POST['von'];
|
||||
$bisio->bis = $_POST['bis'];
|
||||
$bisio->student_uid = $_POST['student_uid'];
|
||||
|
||||
@@ -226,17 +226,28 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<row>
|
||||
<label value="Vorsitz" control="student-abschlusspruefung-menulist-vorsitz" />
|
||||
<menulist id="student-abschlusspruefung-menulist-vorsitz"
|
||||
xmlns:MITARBEITER_AKTIV="http://www.technikum-wien.at/mitarbeiter/rdf#"
|
||||
editable="true" disabled="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
ref="http://www.technikum-wien.at/mitarbeiter/liste"
|
||||
oninput="StudentAbschlusspruefungMenulistMitarbeiterLoad(this)">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
|
||||
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost"
|
||||
myvalue="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
<rule MITARBEITER_AKTIV:aktiv='inaktiv'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
|
||||
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost ( rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid )"
|
||||
myvalue="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
|
||||
uri="rdf:*" style="color: grey;"/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
|
||||
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpre rdf:http://www.technikum-wien.at/mitarbeiter/rdf#titelpost ( rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid )"
|
||||
myvalue="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="PrueferIn 1" id="student-abschlusspruefung-label-pruefer1" control="student-abschlusspruefung-menulist-pruefer1" />
|
||||
|
||||
@@ -95,6 +95,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Vornamen" control="student-detail-textbox-vornamen"/>
|
||||
<textbox id="student-detail-textbox-vornamen" disabled="true" maxlength="128"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Wahlname" control="student-detail-textbox-wahlname"/>
|
||||
<textbox id="student-detail-textbox-wahlname" disabled="true" maxlength="128"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Geburtsdatum" control="student-detail-textbox-geburtsdatum"/>
|
||||
<hbox>
|
||||
@@ -303,17 +307,14 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menuitem label="Status vorrücken" oncommand="StudentPrestudentRolleVorruecken();" id="student-prestudent-rolle-tree-popup-move_forward" hidden="false"/>
|
||||
</menupopup>
|
||||
</popupset>
|
||||
<vbox hidden="true">
|
||||
<label value="Neu"/>
|
||||
<checkbox id="student-prestudent-checkbox-new" checked="false" />
|
||||
<label value="Person_id"/>
|
||||
<textbox id="student-prestudent-textbox-person_id" disabled="true"/>
|
||||
<label value="Prestudent_id"/>
|
||||
<textbox id="student-prestudent-textbox-prestudent_id" disabled="true"/>
|
||||
<label value="studiengang_kz"/>
|
||||
<textbox id="student-prestudent-textbox-studiengang_kz" disabled="true"/>
|
||||
</vbox>
|
||||
|
||||
<hbox hidden="true">
|
||||
<toolbox flex="1">
|
||||
<label value="Neu"/>
|
||||
<checkbox id="student-prestudent-checkbox-new" checked="false" />
|
||||
<label value="studiengang_kz"/>
|
||||
<textbox id="student-prestudent-textbox-studiengang_kz"/>
|
||||
</toolbox>
|
||||
</hbox>
|
||||
<groupbox id="student-detail-groupbox-zgv">
|
||||
<caption id="student-detail-groupbox-caption" label="Zugangsvoraussetzung" />
|
||||
<grid id="student-prestudent-grid-zgv" style="margin:4px;" flex="1">
|
||||
@@ -330,18 +331,44 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<?php
|
||||
$hidden = 'hidden="true"';
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$hidden = '';
|
||||
?>
|
||||
<row <?php echo $hidden ?>>
|
||||
<label value="Prestudent_id"/>
|
||||
<hbox><textbox id="student-prestudent-textbox-prestudent_id" readonly="true" maxlength="16" size="16"/></hbox>
|
||||
<label value="Person_id"/>
|
||||
<hbox><textbox id="student-prestudent-textbox-person_id" readonly="true" maxlength="16" size="16"/></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="ZGV" control="student-prestudent-menulist-zgvcode"/>
|
||||
<menulist id="student-prestudent-menulist-zgvcode" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/zgv.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/zgv/alle"
|
||||
xmlns:ZGV="http://www.technikum-wien.at/zgv/rdf#"
|
||||
style="min-width: 130px">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgv/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
<rule ZGV:aktiv='f'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgv/rdf#kurzbz"
|
||||
uri="rdf:*"
|
||||
style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgv/rdf#kurzbz"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="ZGV Ort" control="student-prestudent-textbox-zgvort"/>
|
||||
@@ -392,14 +419,26 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menulist id="student-prestudent-menulist-zgvmastercode" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/zgvmaster.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/zgvmaster/alle"
|
||||
xmlns:ZGVMASTER="http://www.technikum-wien.at/zgvmaster/rdf#"
|
||||
style="min-width: 130px" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
<rule ZGVMASTER:aktiv='f'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
|
||||
uri="rdf:*"
|
||||
style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="ZGV Master Ort" control="student-prestudent-textbox-zgvmasterort"/>
|
||||
@@ -452,13 +491,26 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="ZGV Doktor" control="student-prestudent-menulist-zgvdoktorcode"/>
|
||||
<menulist id="student-prestudent-menulist-zgvdoktorcode" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/zgvdoktor.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/zgvdoktor/alle" >
|
||||
ref="http://www.technikum-wien.at/zgvdoktor/alle"
|
||||
xmlns:ZGVDOKTOR="http://www.technikum-wien.at/zgvdoktor/rdf#">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
<rule ZGVDOKTOR:aktiv='f'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
|
||||
uri="rdf:*"
|
||||
style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="ZGV Doktor Ort" control="student-prestudent-textbox-zgvdoktorort"/>
|
||||
@@ -627,7 +679,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<checkbox id="student-prestudent-checkbox-bismelden" checked="true" disabled="true"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label value="Dual" control="student-prestudent-checkbox-dual"/>
|
||||
<label value="Duales Studium" control="student-prestudent-checkbox-dual"/>
|
||||
<checkbox id="student-prestudent-checkbox-dual" checked="false" disabled="true"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
|
||||
@@ -131,7 +131,7 @@ else
|
||||
echo '<menuitem label="Student" oncommand="StudentUnterbrecherZuStudent()" disabled="false" tooltiptext="Status ändern auf Student"/>';
|
||||
if ($id == 'interessent-toolbar-zustudent')
|
||||
echo '<menuitem label="Student" oncommand="InteressentzuStudent()" disabled="false" tooltiptext="Status ändern auf Student"/>';
|
||||
|
||||
|
||||
foreach($gruende[$status_kurzbz] as $row)
|
||||
{
|
||||
$commandWithID = str_replace('STATUSGRUNDID',$row['statusgrund_id'],$command);
|
||||
@@ -270,6 +270,10 @@ else
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/student/rdf#vorname" onclick="StudentTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-treecol-wahlname" label="Wahlname" flex="1" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/student/rdf#wahlname" onclick="StudentTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-treecol-vornamen" label="Vornamen" flex="1" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/student/rdf#vornamen" onclick="StudentTreeSort()"/>
|
||||
@@ -436,6 +440,7 @@ else
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#titelpre" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#nachname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#vorname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#wahlname" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#vornamen" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#titelpost" />
|
||||
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#svnr" />
|
||||
|
||||
@@ -171,6 +171,20 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Herkunftsland" control="student-io-menulist-herkunftsland"/>
|
||||
<menulist id="student-io-menulist-herkunftsland" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Zweck" control="student-io-menulist-zweck"/>
|
||||
<vbox>
|
||||
|
||||
@@ -727,6 +727,7 @@ function StudentDetailReset()
|
||||
document.getElementById('student-detail-textbox-titelpre').value='';
|
||||
document.getElementById('student-detail-textbox-titelpost').value='';
|
||||
document.getElementById('student-detail-textbox-vorname').value='';
|
||||
document.getElementById('student-detail-textbox-wahlname').value='';
|
||||
document.getElementById('student-detail-textbox-vornamen').value='';
|
||||
document.getElementById('student-detail-textbox-nachname').value='';
|
||||
document.getElementById('student-detail-textbox-geburtsdatum').value='';
|
||||
@@ -759,6 +760,7 @@ function StudentDetailDisableFields(val)
|
||||
document.getElementById('student-detail-textbox-titelpre').disabled=val;
|
||||
document.getElementById('student-detail-textbox-titelpost').disabled=val;
|
||||
document.getElementById('student-detail-textbox-vorname').disabled=val;
|
||||
document.getElementById('student-detail-textbox-wahlname').disabled=val;
|
||||
document.getElementById('student-detail-textbox-vornamen').disabled=val;
|
||||
document.getElementById('student-detail-textbox-nachname').disabled=val;
|
||||
document.getElementById('student-detail-textbox-geburtsdatum').disabled=val;
|
||||
@@ -799,6 +801,7 @@ function StudentDetailSave()
|
||||
titelpre = document.getElementById('student-detail-textbox-titelpre').value;
|
||||
titelpost = document.getElementById('student-detail-textbox-titelpost').value;
|
||||
vorname = document.getElementById('student-detail-textbox-vorname').value;
|
||||
wahlname = document.getElementById('student-detail-textbox-wahlname').value;
|
||||
vornamen = document.getElementById('student-detail-textbox-vornamen').value;
|
||||
nachname = document.getElementById('student-detail-textbox-nachname').value;
|
||||
geburtsdatum = document.getElementById('student-detail-textbox-geburtsdatum').value;
|
||||
@@ -857,6 +860,7 @@ function StudentDetailSave()
|
||||
req.add('titelpre', titelpre);
|
||||
req.add('titelpost', titelpost);
|
||||
req.add('vorname', vorname);
|
||||
req.add('wahlname', wahlname);
|
||||
req.add('vornamen', vornamen);
|
||||
req.add('nachname', nachname);
|
||||
req.add('geburtsdatum', ConvertDateToISO(geburtsdatum));
|
||||
@@ -1104,6 +1108,7 @@ function StudentAuswahl()
|
||||
titelpre=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titelpre" ));
|
||||
titelpost=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titelpost" ));
|
||||
vorname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vorname" ));
|
||||
wahlname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wahlname" ));
|
||||
vornamen=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vornamen" ));
|
||||
nachname=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nachname" ));
|
||||
geburtsdatum=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#geburtsdatum" ));
|
||||
@@ -1147,6 +1152,7 @@ function StudentAuswahl()
|
||||
document.getElementById('student-detail-textbox-titelpre').value=titelpre;
|
||||
document.getElementById('student-detail-textbox-titelpost').value=titelpost;
|
||||
document.getElementById('student-detail-textbox-vorname').value=vorname;
|
||||
document.getElementById('student-detail-textbox-wahlname').value=wahlname;
|
||||
document.getElementById('student-detail-textbox-vornamen').value=vornamen;
|
||||
document.getElementById('student-detail-textbox-nachname').value=nachname;
|
||||
document.getElementById('student-detail-textbox-geburtsdatum').value=geburtsdatum;
|
||||
@@ -3505,6 +3511,7 @@ function StudentIOAuswahl()
|
||||
|
||||
mobilitaetsprogramm_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#mobilitaetsprogramm_code" ));
|
||||
nation_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nation_code" ));
|
||||
herkunftsland_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#herkunftsland_code" ));
|
||||
von = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#von" ));
|
||||
bis = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bis" ));
|
||||
zweck_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zweck_code" ));
|
||||
@@ -3579,6 +3586,7 @@ function StudentIOAuswahl()
|
||||
|
||||
document.getElementById('student-io-menulist-mobilitaetsprogramm').value=mobilitaetsprogramm_code;
|
||||
document.getElementById('student-io-menulist-nation').value=nation_code;
|
||||
document.getElementById('student-io-menulist-herkunftsland').value=herkunftsland_code;
|
||||
document.getElementById('student-io-textbox-von').value=von;
|
||||
document.getElementById('student-io-textbox-bis').value=bis;
|
||||
document.getElementById('student-io-detail-textbox-uid').value=student_uid;
|
||||
@@ -3813,6 +3821,7 @@ function StudentIODetailDisableFields(val)
|
||||
document.getElementById('student-io-textbox-bis').disabled=val;
|
||||
document.getElementById('student-io-menulist-mobilitaetsprogramm').disabled=val;
|
||||
document.getElementById('student-io-menulist-nation').disabled=val;
|
||||
document.getElementById('student-io-menulist-herkunftsland').disabled=val;
|
||||
document.getElementById('student-io-menulist-zweck').disabled=val;
|
||||
document.getElementById('student-io-button-speichern').disabled=val;
|
||||
document.getElementById('student-io-menulist-lehrveranstaltung').disabled=val;
|
||||
@@ -3838,6 +3847,7 @@ function StudentIOResetFileds()
|
||||
document.getElementById('student-io-menulist-mobilitaetsprogramm').value='7';
|
||||
document.getElementById('student-io-menulist-zweck').value='2';
|
||||
document.getElementById('student-io-menulist-nation').value='A';
|
||||
document.getElementById('student-io-menulist-herkunftsland').value='A';
|
||||
document.getElementById('student-io-textbox-ort').value='';
|
||||
document.getElementById('student-io-textbox-universitaet').value='';
|
||||
document.getElementById('student-io-textbox-ects_angerechnet').value='';
|
||||
@@ -3855,6 +3865,7 @@ function StudentIODetailSpeichern()
|
||||
bis = document.getElementById('student-io-textbox-bis').value;
|
||||
mobilitaetsprogramm = document.getElementById('student-io-menulist-mobilitaetsprogramm').value;
|
||||
nation_code = document.getElementById('student-io-menulist-nation').value;
|
||||
herkunftsland_code = document.getElementById('student-io-menulist-herkunftsland').value;
|
||||
zweck_code = document.getElementById('student-io-menulist-zweck').value;
|
||||
uid = document.getElementById('student-io-detail-textbox-uid').value;
|
||||
neu = document.getElementById('student-io-detail-checkbox-neu').checked;
|
||||
@@ -3892,6 +3903,7 @@ function StudentIODetailSpeichern()
|
||||
req.add('bis', ConvertDateToISO(bis));
|
||||
req.add('mobilitaetsprogramm_code', mobilitaetsprogramm);
|
||||
req.add('nation_code', nation_code);
|
||||
req.add('herkunftsland_code', herkunftsland_code);
|
||||
req.add('zweck_code', zweck_code);
|
||||
req.add('student_uid', uid);
|
||||
req.add('studiengang_kz', studiengang_kz);
|
||||
@@ -4029,6 +4041,7 @@ function StudentIONeu()
|
||||
req.add('bis', ConvertDateToISO(defaultdatum));
|
||||
req.add('mobilitaetsprogramm_code', mobilitaetsprogramm);
|
||||
req.add('nation_code', 'A');
|
||||
req.add('herkunftsland_code', 'A');
|
||||
req.add('student_uid', uid);
|
||||
req.add('studiengang_kz', stg_kz);
|
||||
req.add('lehreinheit_id', '');
|
||||
|
||||
@@ -306,7 +306,7 @@ class OLE extends PEAR
|
||||
{
|
||||
$rawname = '';
|
||||
for ($i = 0; $i < strlen($ascii); $i++) {
|
||||
$rawname .= $ascii{$i}."\x00";
|
||||
$rawname .= $ascii[$i]."\x00";
|
||||
}
|
||||
return $rawname;
|
||||
}
|
||||
@@ -378,7 +378,7 @@ class OLE extends PEAR
|
||||
$high_part = 0;
|
||||
for ($i=0; $i<4; $i++)
|
||||
{
|
||||
$al = unpack('C', $string{(7 - $i)});
|
||||
$al = unpack('C', $string[(7 - $i)]);
|
||||
$high_part += $al[''];
|
||||
if ($i < 3) {
|
||||
$high_part *= 0x100;
|
||||
@@ -387,7 +387,7 @@ class OLE extends PEAR
|
||||
$low_part = 0;
|
||||
for ($i=4; $i<8; $i++)
|
||||
{
|
||||
$al = unpack('C', $string{(7 - $i)});
|
||||
$al = unpack('C', $string[(7 - $i)]);
|
||||
$low_part += $al[''];
|
||||
if ($i < 7) {
|
||||
$low_part *= 0x100;
|
||||
|
||||
@@ -1084,7 +1084,7 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
||||
$col = 0;
|
||||
$col_ref_length = strlen($col_ref);
|
||||
for ($i = 0; $i < $col_ref_length; $i++) {
|
||||
$col += (ord($col_ref{$i}) - ord('A') + 1) * pow(26, $expn);
|
||||
$col += (ord($col_ref[$i]) - ord('A') + 1) * pow(26, $expn);
|
||||
$expn--;
|
||||
}
|
||||
|
||||
@@ -1106,20 +1106,20 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
||||
$formula_length = strlen($this->_formula);
|
||||
// eat up white spaces
|
||||
if ($i < $formula_length) {
|
||||
while ($this->_formula{$i} == " ") {
|
||||
while ($this->_formula[$i] == " ") {
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($i < ($formula_length - 1)) {
|
||||
$this->_lookahead = $this->_formula{$i+1};
|
||||
$this->_lookahead = $this->_formula[$i+1];
|
||||
}
|
||||
$token = '';
|
||||
}
|
||||
|
||||
while ($i < $formula_length) {
|
||||
$token .= $this->_formula{$i};
|
||||
$token .= $this->_formula[$i];
|
||||
if ($i < ($formula_length - 1)) {
|
||||
$this->_lookahead = $this->_formula{$i+1};
|
||||
$this->_lookahead = $this->_formula[$i+1];
|
||||
} else {
|
||||
$this->_lookahead = '';
|
||||
}
|
||||
@@ -1134,7 +1134,7 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
||||
}
|
||||
|
||||
if ($i < ($formula_length - 2)) {
|
||||
$this->_lookahead = $this->_formula{$i+2};
|
||||
$this->_lookahead = $this->_formula[$i+2];
|
||||
} else { // if we run out of characters _lookahead becomes empty
|
||||
$this->_lookahead = '';
|
||||
}
|
||||
@@ -1282,7 +1282,7 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
||||
{
|
||||
$this->_current_char = 0;
|
||||
$this->_formula = $formula;
|
||||
$this->_lookahead = $formula{1};
|
||||
$this->_lookahead = $formula[1];
|
||||
$this->_advance();
|
||||
$this->_parse_tree = $this->_condition();
|
||||
if (PEAR::isError($this->_parse_tree)) {
|
||||
|
||||
@@ -315,7 +315,7 @@ class benutzer extends person
|
||||
|
||||
$qry = "SELECT * FROM (
|
||||
SELECT
|
||||
distinct on (uid) vorname, nachname, uid, mitarbeiter_uid, personalnummer, titelpre, titelpost, lektor, fixangestellt, alias, tbl_benutzer.aktiv, anrede,
|
||||
distinct on (uid) vorname, nachname, wahlname, uid, mitarbeiter_uid, personalnummer, titelpre, titelpost, lektor, fixangestellt, alias, tbl_benutzer.aktiv, anrede,
|
||||
(SELECT UPPER
|
||||
(tbl_studiengang.typ || tbl_studiengang.kurzbz)
|
||||
FROM public.tbl_student
|
||||
@@ -356,6 +356,8 @@ class benutzer extends person
|
||||
|
||||
$qry.=" (lower(vorname || ' ' || nachname) ~* lower(".$this->db_add_param($searchItems_string).")";
|
||||
$qry.=" OR lower(nachname || ' ' || vorname) ~* lower(".$this->db_add_param($searchItems_string).")";
|
||||
$qry.=" OR lower(nachname || ' ' || wahlname) ~* lower(".$this->db_add_param($searchItems_string).")";
|
||||
$qry.=" OR lower(wahlname || ' ' || nachname) ~* lower(".$this->db_add_param($searchItems_string).")";
|
||||
$qry.=" OR lower(uid) like lower('%".$this->db_escape(implode(' ',$searchItems))."%')";
|
||||
$qry.=" OR lower(telefonklappe) like lower('%".$this->db_escape(implode(' ',$searchItems))."%')";
|
||||
|
||||
@@ -376,6 +378,7 @@ class benutzer extends person
|
||||
|
||||
$obj->titelpre = $row->titelpre;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->wahlname = $row->wahlname;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->titelpost = $row->titelpost;
|
||||
$obj->uid = $row->uid;
|
||||
|
||||
@@ -49,6 +49,7 @@ class bisio extends basis_db
|
||||
public $lehreinheit_id; // integer
|
||||
public $ects_erworben; // numeric(5,2)
|
||||
public $ects_angerechnet; // numeric(5,2)
|
||||
public $herkunftsland_code; // varchar(3)
|
||||
|
||||
public $aufenthaltfoerderung_code; // integer
|
||||
public $bezeichnung; // varchar(64)
|
||||
@@ -100,6 +101,7 @@ class bisio extends basis_db
|
||||
$this->lehreinheit_id = $row->lehreinheit_id;
|
||||
$this->ects_angerechnet = $row->ects_angerechnet;
|
||||
$this->ects_erworben = $row->ects_erworben;
|
||||
$this->herkunftsland_code = $row->herkunftsland_code;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -202,7 +204,7 @@ class bisio extends basis_db
|
||||
|
||||
$qry='BEGIN;INSERT INTO bis.tbl_bisio (mobilitaetsprogramm_code, nation_code, von, bis,
|
||||
student_uid, updateamum, updatevon, insertamum, insertvon, ort, universitaet, lehreinheit_id,
|
||||
ects_angerechnet, ects_erworben) VALUES('.
|
||||
ects_angerechnet, ects_erworben, herkunftsland_code) VALUES('.
|
||||
$this->db_add_param($this->mobilitaetsprogramm_code, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->nation_code).', '.
|
||||
$this->db_add_param($this->von).', '.
|
||||
@@ -216,7 +218,8 @@ class bisio extends basis_db
|
||||
$this->db_add_param($this->universitaet).', '.
|
||||
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->ects_angerechnet).', '.
|
||||
$this->db_add_param($this->ects_erworben).');';
|
||||
$this->db_add_param($this->ects_erworben).', '.
|
||||
$this->db_add_param($this->herkunftsland_code).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -233,7 +236,8 @@ class bisio extends basis_db
|
||||
' universitaet='.$this->db_add_param($this->universitaet).','.
|
||||
' lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '.
|
||||
' ects_angerechnet='.$this->db_add_param($this->ects_angerechnet).', '.
|
||||
' ects_erworben='.$this->db_add_param($this->ects_erworben).
|
||||
' ects_erworben='.$this->db_add_param($this->ects_erworben).', '.
|
||||
' herkunftsland_code='.$this->db_add_param($this->herkunftsland_code).
|
||||
" WHERE bisio_id=".$this->db_add_param($this->bisio_id, FHC_INTEGER).";";
|
||||
}
|
||||
|
||||
@@ -337,6 +341,7 @@ class bisio extends basis_db
|
||||
$io->lehreinheit_id = $row->lehreinheit_id;
|
||||
$io->ects_angerechnet = $row->ects_angerechnet;
|
||||
$io->ects_erworben = $row->ects_erworben;
|
||||
$io->herkunftsland_code = $row->herkunftsland_code;
|
||||
|
||||
$this->result[] = $io;
|
||||
}
|
||||
@@ -395,6 +400,7 @@ class bisio extends basis_db
|
||||
$io->lehreinheit_id = $row->lehreinheit_id;
|
||||
$io->ects_angerechnet = $row->ects_angerechnet;
|
||||
$io->ects_erworben = $row->ects_erworben;
|
||||
$io->herkunftsland_code = $row->herkunftsland_code;
|
||||
|
||||
$this->result[] = $io;
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ class gsprogramm extends basis_db
|
||||
public $programm_code;
|
||||
public $bezeichnung;
|
||||
public $gsprogrammtyp_kurzbz;
|
||||
public $studienkennung_uni;
|
||||
|
||||
public function getAll()
|
||||
{
|
||||
@@ -57,6 +58,7 @@ class gsprogramm extends basis_db
|
||||
$obj->gsprogrammtyp_kurzbz = $row->gsprogrammtyp_kurzbz;
|
||||
|
||||
$obj->gsprogrammtyp_bezeichnung = $row->gsprogrammtyp_bezeichnung;
|
||||
$obj->studienkennung_uni = $row->studienkennung_uni;
|
||||
|
||||
$this->result[]=$obj;
|
||||
}
|
||||
@@ -86,6 +88,7 @@ class gsprogramm extends basis_db
|
||||
$this->programm_code = $row->programm_code;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->gsprogrammtyp_kurzbz = $row->gsprogrammtyp_kurzbz;
|
||||
$this->studienkennung_uni = $row->studienkennung_uni;
|
||||
$this->new = false;
|
||||
}
|
||||
return true;
|
||||
@@ -126,22 +129,56 @@ class gsprogramm extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Daten vor dem Speichern
|
||||
*
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function validate()
|
||||
{
|
||||
if(!is_numeric($this->programm_code))
|
||||
{
|
||||
$this->errormsg = 'Programm Code muss eine Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if($this->gsprogrammtyp_kurzbz=='')
|
||||
{
|
||||
$this->errormsg = 'Gsprogrammtyp Kurzbezeichnung muss eingegeben werden';
|
||||
return false;
|
||||
}
|
||||
if($this->bezeichnung=='')
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung muss eingetragen werden';
|
||||
return false;
|
||||
}
|
||||
if($this->studienkennung_uni != '' && preg_match("/^[AFHLU][UPF][A-Z]([0-9]{3}){1,3}(0[1-6]|[UP][A-W]){0,1}$/", $this->studienkennung_uni) !== 1)
|
||||
{
|
||||
$this->errormsg = 'Ungültige Studienkennung Uni';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
if($this->new)
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO bis.tbl_gsprogramm(programm_code,
|
||||
bezeichnung, gsprogrammtyp_kurzbz) VALUES('.
|
||||
bezeichnung, gsprogrammtyp_kurzbz, studienkennung_uni) VALUES('.
|
||||
$this->db_add_param($this->programm_code).','.
|
||||
$this->db_add_param($this->bezeichnung).','.
|
||||
$this->db_add_param($this->gsprogrammtyp_kurzbz).');';
|
||||
$this->db_add_param($this->gsprogrammtyp_kurzbz).','.
|
||||
$this->db_add_param($this->studienkennung_uni).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE bis.tbl_gsprogramm SET
|
||||
bezeichnung='.$this->db_add_param($this->bezeichnung).',
|
||||
gsprogrammtyp_kurzbz='.$this->db_add_param($this->gsprogrammtyp_kurzbz).',
|
||||
programm_code='.$this->db_add_param($this->programm_code, FHC_INTEGER).'
|
||||
programm_code='.$this->db_add_param($this->programm_code, FHC_INTEGER).',
|
||||
studienkennung_uni='.$this->db_add_param($this->studienkennung_uni).'
|
||||
WHERE gsprogramm_id='.$this->db_add_param($this->gsprogramm_id, FHC_INTEGER, false);
|
||||
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ class ical extends basis_db
|
||||
$dtend='';
|
||||
}
|
||||
}
|
||||
elseif($typ=='SoGo')
|
||||
elseif($typ=='SoGo' || $typ=='Zeitsperren')
|
||||
{
|
||||
if(mb_strstr($row,'FREEBUSY'))
|
||||
{
|
||||
|
||||
@@ -200,7 +200,7 @@ class LehreListHelper
|
||||
//Studierende der LV laden und in ein Array schreiben
|
||||
|
||||
$qry = 'SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid,
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id=tbl_student.prestudent_id
|
||||
@@ -276,10 +276,24 @@ class LehreListHelper
|
||||
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student
|
||||
$zusatz .= '(d.d.)';
|
||||
|
||||
if(($row->wahlname != ''))
|
||||
{
|
||||
//als Zusatz speichern
|
||||
//$zusatz .= '(Wahlname: ' . $row->wahlname . ')';
|
||||
|
||||
//wenn vorhanden statt Vornamen anzeigen
|
||||
$vorname = $row->wahlname;
|
||||
}
|
||||
else
|
||||
{
|
||||
$vorname = $row->vorname;
|
||||
}
|
||||
|
||||
|
||||
$this->studentuids[] = $row->student_uid;
|
||||
$this->data[]=array('student'=>array(
|
||||
'uid' => $row->student_uid,
|
||||
'vorname'=>$row->vorname,
|
||||
'vorname'=>$vorname,
|
||||
'nachname'=>$row->nachname,
|
||||
'personenkennzeichen'=>trim($row->matrikelnr),
|
||||
'matr_nr'=>$row->matr_nr,
|
||||
|
||||
@@ -17,15 +17,12 @@
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
|
||||
$dr = isset($_SERVER['CONTEXT_PREFIX']) ? $_SERVER["CONTEXT_PREFIX"].'/' : '/';
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'FHC-vendor/angular-tablesort/tablesort.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.BASE_LOCATION.'FHC-vendor/angular-tablesort/tablesort.css">';
|
||||
|
||||
echo '<script src="'.$dr.'FHC-vendor/angular-tablesort/js/angular-tablesort.js"></script>';
|
||||
echo '<script src="'.BASE_LOCATION.'FHC-vendor/angular-tablesort/js/angular-tablesort.js"></script>';
|
||||
|
||||
//Anpassungen
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/angular-tablesorter/tablesort.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.BASE_LOCATION.'include/vendor_custom/angular-tablesorter/tablesort.css">';
|
||||
|
||||
?>
|
||||
|
||||
@@ -17,10 +17,7 @@
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
|
||||
$dr = isset($_SERVER['CONTEXT_PREFIX']) ? $_SERVER["CONTEXT_PREFIX"].'/' : '/';
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<script src="'.$dr.'vendor/components/angular.js/angular.min.js"></script>';
|
||||
echo '<script src="'.BASE_LOCATION.'vendor/components/angular.js/angular.min.js"></script>';
|
||||
|
||||
?>
|
||||
|
||||
@@ -17,19 +17,16 @@
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
|
||||
$dr = isset($_SERVER['CONTEXT_PREFIX']) ? $_SERVER["CONTEXT_PREFIX"].'/' : '/';
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'FHC-vendor/easyui/themes/icon.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'FHC-vendor/easyui/themes/gray/easyui.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.BASE_LOCATION.'FHC-vendor/easyui/themes/icon.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.BASE_LOCATION.'FHC-vendor/easyui/themes/gray/easyui.css">';
|
||||
|
||||
echo '<script src="'.$dr.'FHC-vendor/easyui/jquery.min.js"></script>';
|
||||
echo '<script src="'.$dr.'FHC-vendor/easyui/jquery.easyui.min.js"></script>';
|
||||
echo '<script src="'.BASE_LOCATION.'FHC-vendor/easyui/jquery.min.js"></script>';
|
||||
echo '<script src="'.BASE_LOCATION.'FHC-vendor/easyui/jquery.easyui.min.js"></script>';
|
||||
|
||||
|
||||
//Anpassungen
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/easyui/easyui.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/easyui/icon.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.BASE_LOCATION.'include/vendor_custom/easyui/easyui.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.BASE_LOCATION.'include/vendor_custom/easyui/icon.css">';
|
||||
|
||||
?>
|
||||
|
||||
@@ -17,15 +17,13 @@
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
|
||||
$dr = isset($_SERVER['CONTEXT_PREFIX']) ? $_SERVER["CONTEXT_PREFIX"].'/' : '/';
|
||||
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'FHC-vendor/jquery-tablesorter/css/theme.default.css">';
|
||||
echo '<script src="'.$dr.'FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js"></script>';
|
||||
echo '<script src="'.$dr.'FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js"></script>';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.BASE_LOCATION.'FHC-vendor/jquery-tablesorter/css/theme.default.css">';
|
||||
echo '<script src="'.BASE_LOCATION.'FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js"></script>';
|
||||
echo '<script src="'.BASE_LOCATION.'FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js"></script>';
|
||||
|
||||
//Anpassungen
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/jquery-tablesorter/tablesort.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.BASE_LOCATION.'include/vendor_custom/jquery-tablesorter/tablesort.css">';
|
||||
|
||||
?>
|
||||
|
||||
@@ -17,10 +17,7 @@
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
|
||||
$dr = isset($_SERVER['CONTEXT_PREFIX']) ? $_SERVER["CONTEXT_PREFIX"].'/' : '/';
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<script src="'.$dr.'vendor/jquery/jquery2/jquery-2.2.4.min.js"></script>';
|
||||
echo '<script src="'.BASE_LOCATION.'vendor/jquery/jquery2/jquery-2.2.4.min.js"></script>';
|
||||
|
||||
?>
|
||||
|
||||
@@ -17,11 +17,8 @@
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
|
||||
$dr = isset($_SERVER['CONTEXT_PREFIX']) ? $_SERVER["CONTEXT_PREFIX"].'/' : '/';
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<script src="'.$dr.'vendor/josdejong/jsoneditor/dist/jsoneditor.js"></script>';
|
||||
echo '<link href="'.$dr.'vendor/josdejong/jsoneditor/dist/jsoneditor.css" rel="stylesheet" type="text/css">';
|
||||
echo '<script src="'.BASE_LOCATION.'vendor/josdejong/jsoneditor/dist/jsoneditor.js"></script>';
|
||||
echo '<link href="'.BASE_LOCATION.'vendor/josdejong/jsoneditor/dist/jsoneditor.css" rel="stylesheet" type="text/css">';
|
||||
|
||||
?>
|
||||
|
||||
@@ -319,7 +319,7 @@ class mitarbeiter extends benutzer
|
||||
*/
|
||||
public function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null)
|
||||
{
|
||||
$sql_query='SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
|
||||
$sql_query='SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, wahlname, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
|
||||
homepage, campus.vw_mitarbeiter.updateamum, campus.vw_mitarbeiter.updatevon, personalnummer, kurzbz, lektor, fixangestellt, standort_id, telefonklappe FROM campus.vw_mitarbeiter
|
||||
LEFT OUTER JOIN public.tbl_benutzerfunktion USING (uid)
|
||||
WHERE TRUE';
|
||||
@@ -364,6 +364,7 @@ class mitarbeiter extends benutzer
|
||||
$l->titelpre=$row->titelpre;
|
||||
$l->titelpost=$row->titelpost;
|
||||
$l->vorname=$row->vorname;
|
||||
$l->wahlname=$row->wahlname;
|
||||
$l->vornamen=$row->vornamen;
|
||||
$l->nachname=$row->nachname;
|
||||
$l->gebdatum=$row->gebdatum;
|
||||
@@ -475,6 +476,7 @@ class mitarbeiter extends benutzer
|
||||
$l->titelpre=$row->titelpre;
|
||||
$l->titelpost=$row->titelpost;
|
||||
$l->vorname=$row->vorname;
|
||||
$l->wahlname=$row->wahlname;
|
||||
$l->vornamen=$row->vornamen;
|
||||
$l->nachname=$row->nachname;
|
||||
$l->gebdatum=$row->gebdatum;
|
||||
@@ -601,7 +603,7 @@ class mitarbeiter extends benutzer
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT uid, vorname, vornamen, nachname, titelpre, titelpost, kurzbz FROM lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter, lehre.tbl_lehreinheit
|
||||
$qry = "SELECT uid, vorname, wahlname, vornamen, nachname, titelpre, titelpost, kurzbz FROM lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter, lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND mitarbeiter_uid=uid AND tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -616,6 +618,7 @@ class mitarbeiter extends benutzer
|
||||
$obj->titelpre = $row->titelpre;
|
||||
$obj->titelpost = $row->titelpost;
|
||||
$obj->kurzbz = $row->kurzbz;
|
||||
$obj->wahlname = $row->wahlname;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
|
||||
$this->result[] = $obj;
|
||||
@@ -752,6 +755,7 @@ class mitarbeiter extends benutzer
|
||||
$obj->titelpre = $row->titelpre;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->wahlname = $row->wahlname;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->gebdatum = $row->gebdatum;
|
||||
$obj->gebort = $row->gebort;
|
||||
@@ -833,7 +837,12 @@ class mitarbeiter extends benutzer
|
||||
*/
|
||||
public function getMitarbeiterFilter($filter)
|
||||
{
|
||||
$qry = "SELECT * FROM campus.vw_mitarbeiter WHERE lower(nachname) ~* lower(".$this->db_add_param($filter).") OR uid ~* ".$this->db_add_param($filter);
|
||||
$qry = "SELECT * FROM campus.vw_mitarbeiter
|
||||
WHERE lower(nachname) ~* lower(".$this->db_add_param($filter).")
|
||||
OR lower(wahlname) ~* lower(".$this->db_add_param($filter).")
|
||||
--OR lower(wahlname || ' ' || nachname) like lower(".$this->db_add_param($filter).")
|
||||
--OR lower(nachname || ' ' || wahlname) like lower(".$this->db_add_param($filter).")
|
||||
OR uid ~* ".$this->db_add_param($filter);
|
||||
$qry .= " ORDER BY nachname, vorname, kurzbz;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -849,6 +858,7 @@ class mitarbeiter extends benutzer
|
||||
$obj->titelpost = $row->titelpost;
|
||||
$obj->kurzbz = $row->kurzbz;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->wahlname = $row->wahlname;
|
||||
$obj->aktiv =$this->db_parse_bool($row->aktiv);
|
||||
$obj->fixangestellt = $this->db_parse_bool($row->fixangestellt);
|
||||
|
||||
@@ -871,14 +881,17 @@ class mitarbeiter extends benutzer
|
||||
*/
|
||||
public function search($filter, $limit=null, $aktiv=true, $positivePersonalnr=false)
|
||||
{
|
||||
$qry = "SELECT vorname, nachname, titelpre, titelpost, kurzbz, vornamen, uid
|
||||
$qry = "SELECT vorname, nachname, titelpre, titelpost, kurzbz, vornamen, wahlname, uid
|
||||
FROM campus.vw_mitarbeiter
|
||||
WHERE
|
||||
lower(nachname) like lower('%".$this->db_escape($filter)."%')
|
||||
OR lower(uid) like lower('%".$this->db_escape($filter)."%')
|
||||
OR lower(vorname) like lower('%".$this->db_escape($filter)."%')
|
||||
OR lower(wahlname) like lower('%".$this->db_escape($filter)."%')
|
||||
OR lower(vorname || ' ' || nachname) like lower('%".$this->db_escape($filter)."%')
|
||||
OR lower(nachname || ' ' || vorname) like lower('%".$this->db_escape($filter)."%')
|
||||
OR lower(wahlname || ' ' || nachname) like lower('%".$this->db_escape($filter)."%')
|
||||
OR lower(nachname || ' ' || wahlname) like lower('%".$this->db_escape($filter)."%')
|
||||
ORDER BY nachname, vorname";
|
||||
|
||||
if(!is_null($limit) && is_numeric($limit))
|
||||
@@ -897,6 +910,7 @@ class mitarbeiter extends benutzer
|
||||
$obj->titelpost = $row->titelpost;
|
||||
$obj->kurzbz = $row->kurzbz;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->wahlname = $row->wahlname;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -931,6 +945,8 @@ class mitarbeiter extends benutzer
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE lower(COALESCE(nachname,'') ||' '|| COALESCE(vorname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
|
||||
lower(COALESCE(vorname,'') ||' '|| COALESCE(nachname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
|
||||
lower(COALESCE(wahlname,'') ||' '|| COALESCE(nachname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
|
||||
lower(COALESCE(nachname,'') ||' '|| COALESCE(wahlname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
|
||||
uid ~* ".$this->db_add_param($filter)." ";
|
||||
if(is_numeric($filter))
|
||||
$qry.="OR personalnummer = ".$this->db_add_param($filter)." OR svnr = ".$this->db_add_param($filter).";";
|
||||
@@ -950,6 +966,7 @@ class mitarbeiter extends benutzer
|
||||
$obj->titelpre = $row->titelpre;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->wahlname = $row->wahlname;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->gebdatum = $row->gebdatum;
|
||||
$obj->gebort = $row->gebort;
|
||||
@@ -1509,6 +1526,7 @@ class mitarbeiter extends benutzer
|
||||
$obj->titelpre = $row->titelpre;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->wahlname = $row->wahlname;
|
||||
$obj->vornamen = $row->vornamen;
|
||||
$obj->gebdatum = $row->gebdatum;
|
||||
$obj->gebort = $row->gebort;
|
||||
|
||||
@@ -66,6 +66,7 @@ class person extends basis_db
|
||||
public $matr_nr; //varchar(32)
|
||||
public $bpk; //varchar(255)
|
||||
public $udf_values; //json
|
||||
public $wahlname;
|
||||
|
||||
/**
|
||||
* Konstruktor - Uebergibt die Connection und laedt optional eine Person
|
||||
@@ -95,7 +96,7 @@ class person extends basis_db
|
||||
gebdatum, gebort, gebzeit, foto, anmerkung, homepage, svnr, ersatzkennzeichen,
|
||||
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon, ext_id,
|
||||
geschlecht, staatsbuergerschaft, geburtsnation, kurzbeschreibung, zugangscode, foto_sperre,
|
||||
matr_nr, bpk";
|
||||
matr_nr, bpk, wahlname";
|
||||
if ($hasUDF = $udf->personHasUDF())
|
||||
$qry .= ", udf_values ";
|
||||
|
||||
@@ -142,6 +143,7 @@ class person extends basis_db
|
||||
$this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
|
||||
$this->matr_nr = $row->matr_nr;
|
||||
$this->bpk = $row->bpk;
|
||||
$this->wahlname = $row->wahlname;
|
||||
if ($hasUDF)
|
||||
{
|
||||
$this->udf_values = $row->udf_values;
|
||||
@@ -441,7 +443,7 @@ class person extends basis_db
|
||||
gebdatum, gebort, gebzeit, foto, anmerkung, homepage, svnr, ersatzkennzeichen,
|
||||
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon,
|
||||
geschlecht, geburtsnation, staatsbuergerschaft, kurzbeschreibung, zugangscode,
|
||||
foto_sperre, matr_nr, bpk)
|
||||
foto_sperre, matr_nr, bpk, wahlname)
|
||||
VALUES('.$this->db_add_param($this->sprache).','.
|
||||
$this->db_add_param($this->anrede).','.
|
||||
$this->db_add_param($this->titelpost).','.
|
||||
@@ -471,7 +473,8 @@ class person extends basis_db
|
||||
$this->db_add_param($this->zugangscode).','.
|
||||
$this->db_add_param($this->foto_sperre, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->matr_nr).','.
|
||||
$this->db_add_param($this->bpk).');';
|
||||
$this->db_add_param($this->bpk).','.
|
||||
$this->db_add_param($this->wahlname).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -510,7 +513,8 @@ class person extends basis_db
|
||||
' foto_sperre='.$this->db_add_param($this->foto_sperre, FHC_BOOLEAN).','.
|
||||
' zugangscode='.$this->db_add_param($this->zugangscode).','.
|
||||
' matr_nr ='.$this->db_add_param($this->matr_nr).','.
|
||||
' bpk = '.$this->db_add_param($this->bpk).
|
||||
' bpk = '.$this->db_add_param($this->bpk).','.
|
||||
' wahlname = '.$this->db_add_param($this->wahlname).
|
||||
' WHERE person_id='.$this->person_id.';';
|
||||
}
|
||||
|
||||
@@ -568,6 +572,8 @@ class person extends basis_db
|
||||
UPPER (vorname) ~* UPPER(".$this->db_add_param($filter).") OR
|
||||
UPPER (nachname || ' ' || vorname) ~* UPPER(".$this->db_add_param($filter).") OR
|
||||
UPPER (vorname || ' ' || nachname) ~* UPPER(".$this->db_add_param($filter).") OR
|
||||
UPPER (nachname || ' ' || wahlname) ~* UPPER(".$this->db_add_param($filter).") OR
|
||||
UPPER (wahlname || ' ' || nachname) ~* UPPER(".$this->db_add_param($filter).") OR
|
||||
uid=".$this->db_add_param($filter);
|
||||
}
|
||||
|
||||
@@ -611,6 +617,7 @@ class person extends basis_db
|
||||
$l->foto_sperre = $this->db_parse_bool($row->foto_sperre);
|
||||
$l->matr_nr = $row->matr_nr;
|
||||
$l->bpk = $row->bpk;
|
||||
$l->wahlname = $row->wahlname;
|
||||
$this->personen[] = $l;
|
||||
}
|
||||
}
|
||||
@@ -684,6 +691,7 @@ class person extends basis_db
|
||||
$adrObj->nachname = $row->nachname;
|
||||
$adrObj->vorname = $row->vorname;
|
||||
$adrObj->vornamen = $row->vornamen;
|
||||
$adrObj->wahlname = $row->wahlname;
|
||||
$adrObj->gebdatum = $row->gebdatum;
|
||||
$adrObj->gebort = $row->gebort;
|
||||
$adrObj->gebzeit = $row->gebzeit;
|
||||
@@ -868,6 +876,7 @@ class person extends basis_db
|
||||
$this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
|
||||
$this->matr_nr = $row->matr_nr;
|
||||
$this->bpk = $row->bpk;
|
||||
$this->wahlname = $row->wahlname;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -986,6 +995,7 @@ class person extends basis_db
|
||||
$this->updateaktivam = $row->updateaktivam;
|
||||
$this->aktivierungscode = $row->aktivierungscode;
|
||||
$this->bpk = $row->bpk;
|
||||
$this->wahlname = $row->wahlname;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -2542,4 +2542,80 @@ class prestudent extends person
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft, ob eine Person offene Bewerbungen besitzt
|
||||
* @param int $person_id ID der zu überprüfenden Person.
|
||||
* @return true wenn vorhanden, false wenn nicht vorhanden
|
||||
*/
|
||||
public function existsOffeneBewerbung($person_id)
|
||||
{
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$db = new basis_db();
|
||||
|
||||
$qry = "SELECT
|
||||
prestudent_id
|
||||
FROM
|
||||
tbl_prestudent ps
|
||||
WHERE
|
||||
person_id = ".$this->db_add_param($person_id)."
|
||||
And
|
||||
get_rolle_prestudent(prestudent_id, null) in ('Interessent','Bewerber','Aufgenommener','Wartender');";
|
||||
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
$num_rows = $db->db_num_rows();
|
||||
if ($num_rows > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft, ob es sich um einen Student / Unterbrecher handelt
|
||||
* @param int $person_id ID der zu überprüfenden Person.
|
||||
* @return true wenn zutreffend, false wenn nicht zutreffend
|
||||
*/
|
||||
public function isStudent($person_id)
|
||||
{
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$db = new basis_db();
|
||||
|
||||
$qry = "SELECT
|
||||
prestudent_id
|
||||
FROM
|
||||
tbl_prestudent ps
|
||||
WHERE
|
||||
person_id = ".$this->db_add_param($person_id)."
|
||||
And
|
||||
get_rolle_prestudent(prestudent_id, null) in ('Student','Unterbrecher');";
|
||||
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
$num_rows = $db->db_num_rows();
|
||||
if ($num_rows > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -524,6 +524,14 @@ class statistik extends basis_db
|
||||
}
|
||||
foreach($_REQUEST as $name=>$value)
|
||||
{
|
||||
// Inputs, die in eckigen Klammern stehen, werden als Array interpretiert
|
||||
if (substr($value, 0, 1) == '[' && substr($value, -1) == ']')
|
||||
{
|
||||
//Eckige Klammern entfernen und String aufsplitten
|
||||
$value = substr($value, 1);
|
||||
$value = substr($value, 0, -1);
|
||||
$value = explode(',', $value);
|
||||
}
|
||||
if (is_array($value))
|
||||
{
|
||||
$in = $this->db_implode4SQL($value);
|
||||
@@ -532,7 +540,6 @@ class statistik extends basis_db
|
||||
else
|
||||
$sql = str_replace('$'.$name,$this->db_add_param($value),$sql);
|
||||
}
|
||||
|
||||
if($this->data = $this->db_query($sql))
|
||||
{
|
||||
$this->html.= '<thead><tr>';
|
||||
|
||||
@@ -531,6 +531,33 @@ class student extends benutzer
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check, ob inputparameter gültige studenten_id ist
|
||||
* @param matrikelnummer oder student_uid
|
||||
* @return ok, wenn gültige Id, sonst false
|
||||
*/
|
||||
public function checkIfValidStudentUID($uid)
|
||||
{
|
||||
$qry = "SELECT student_uid FROM public.tbl_student WHERE student_uid=".$this->db_add_param($uid);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die UID anhand der Matrikelnummer
|
||||
* @param matrikelnummer
|
||||
|
||||
@@ -952,21 +952,34 @@ class studienplan extends basis_db
|
||||
/**
|
||||
* Laedt die Studienplaene zu denen eine Lehrveranstaltung zugeordnet ist
|
||||
*/
|
||||
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz = null)
|
||||
{
|
||||
$qry= "
|
||||
SELECT
|
||||
distinct tbl_studienplan.*
|
||||
DISTINCT tbl_studienplan.*
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id)
|
||||
lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung
|
||||
USING(studienplan_id)
|
||||
WHERE
|
||||
tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_studienplan_semester
|
||||
WHERE studienplan_id=tbl_studienplan.studienplan_id
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND semester = tbl_studienplan_lehrveranstaltung.semester)
|
||||
tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id IN (
|
||||
SELECT
|
||||
lv.lehrveranstaltung_id
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung AS lv
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung AS t ON t.lehrveranstaltung_id=lv.lehrveranstaltung_template_id
|
||||
WHERE
|
||||
lv.lehrtyp_kurzbz<>'tpl'
|
||||
AND (lv.lehrveranstaltung_id=" . $this->db_add_param($lehrveranstaltung_id, FHC_INTEGER) . " OR (lv.lehrveranstaltung_template_id=" . $this->db_add_param($lehrveranstaltung_id, FHC_INTEGER) . " AND t.lehrtyp_kurzbz='tpl'))
|
||||
)
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM
|
||||
lehre.tbl_studienplan_semester
|
||||
WHERE studienplan_id=tbl_studienplan.studienplan_id".
|
||||
($studiensemester_kurzbz != null ? "
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz) : "")."
|
||||
AND semester = tbl_studienplan_lehrveranstaltung.semester)
|
||||
ORDER BY bezeichnung";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
|
||||
@@ -940,7 +940,7 @@ or not exists
|
||||
$tagessaldo = $tagessaldo - $pausesumme;
|
||||
|
||||
//check if blocking error
|
||||
if (($tagessaldo > 19800 && $pausesumme < 1800) || ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000))
|
||||
if (($tagessaldo >= 19800 && $pausesumme < 1800) || ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000))
|
||||
{
|
||||
$blockingError = true;
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ $this->phrasen['benotungstool/eingetrageneNoten']='Eingetragene Noten';
|
||||
$this->phrasen['benotungstool/zeunis']='Zeugnis';
|
||||
$this->phrasen['benotungstool/handbuch']='Handbuch';
|
||||
$this->phrasen['benotungstool/punkte']='Punkte';
|
||||
$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Personenkennzeichen und Note aus der Notenliste und fügen Sie diese in folgendes Feld ein';
|
||||
$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Personenkennzeichen und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
|
||||
$this->phrasen['benotungstool/pruefung']='Prüfung';
|
||||
$this->phrasen['benotungstool/notenlisteImport']='Notenliste für den LV-Noten-Import (Excel)';
|
||||
$this->phrasen['benotungstool/bearbeitetvon']='Bearbeitet von';
|
||||
|
||||
@@ -6,6 +6,8 @@ $this->phrasen['freebusy/aktiv']='Aktiv';
|
||||
$this->phrasen['freebusy/PfadZuFreebusyUrl']='Ihre Freebusy URL ist unter folgendem Link erreichbar:';
|
||||
$this->phrasen['freebusy/LVPlanBezeichnung']='Persönlicher LVPlan';
|
||||
$this->phrasen['freebusy/LVPlanTyp']='LVPlan';
|
||||
$this->phrasen['freebusy/ZeitsperrenBezeichnung']='Meine Zeitsperren';
|
||||
$this->phrasen['freebusy/ZeitsperrenTyp']='Zeitsperren';
|
||||
$this->phrasen['freebusy/neuerEintrag']='Neuen Eintrag hinzufügen';
|
||||
$this->phrasen['freebusy/beschreibungstext1']='Auf dieser Seite können Sie verschiedene externe FreeBusy Informationen zu Ihrer persönlichen FreeBusy URL zusammenfassen. <br>
|
||||
Diese wird z.B. für das hausinterne "Coodle" herangezogen.<br><br>
|
||||
|
||||
@@ -71,6 +71,7 @@ $this->phrasen['global/aenderungenZuruecksetzen']= "Änderungen zurücks
|
||||
$this->phrasen['global/username']='Username';
|
||||
$this->phrasen['global/vorname']='Vorname';
|
||||
$this->phrasen['global/nachname']='Nachname';
|
||||
$this->phrasen['global/wahlname']='Wahlname';
|
||||
$this->phrasen['global/anrede']='Anrede';
|
||||
$this->phrasen['global/name']='Name';
|
||||
$this->phrasen['global/uid']='UID';
|
||||
|
||||
@@ -169,7 +169,7 @@ $this->phrasen['benotungstool/eingetrageneNoten']='Submitted Grades';
|
||||
$this->phrasen['benotungstool/zeunis']='Transcript';
|
||||
$this->phrasen['benotungstool/handbuch']='Handbook';
|
||||
$this->phrasen['benotungstool/punkte']='Points';
|
||||
$this->phrasen['benotungstool/importAnweisung']='Copy the columns "personal identifier" and "grade" from the grade list and insert them in the following field';
|
||||
$this->phrasen['benotungstool/importAnweisung']='Copy the columns "personal identifier" and "grade" from the grade list (or "student ID number" and "grade" from the moodle export file) and insert them in the following field';
|
||||
$this->phrasen['benotungstool/pruefung']='Examination';
|
||||
$this->phrasen['benotungstool/notenlisteImport']='Grade list for the subject grade import (Excel)';
|
||||
$this->phrasen['benotungstool/geaenderteNotenVorhanden']='There are changed grades. Please send the changes to the assistant by clicking "Approval"';
|
||||
|
||||
@@ -6,13 +6,15 @@ $this->phrasen['freebusy/aktiv']='Active';
|
||||
$this->phrasen['freebusy/PfadZuFreebusyUrl']='Your Freebusy URL can be accessed at:';
|
||||
$this->phrasen['freebusy/LVPlanBezeichnung']='Personal schedule';
|
||||
$this->phrasen['freebusy/LVPlanTyp']='Schedule';
|
||||
$this->phrasen['freebusy/ZeitsperrenBezeichnung']='My Planned Absences';
|
||||
$this->phrasen['freebusy/ZeitsperrenTyp']='Absences';
|
||||
$this->phrasen['freebusy/neuerEintrag']='Add a new Entry';
|
||||
$this->phrasen['freebusy/beschreibungstext1']='On this page you can combine different external FreeBusy information to create your personal FreeBusy URL.<br>
|
||||
This is used for example for the in-house "Coodle".<br><br>
|
||||
This is used for example for the in-house "Coodle".<br><br>
|
||||
FreeBusy is a function that allows you to see when others are free or busy (without revealing sensitive details such as the appointment titles or content).<br>
|
||||
This tool allows you and your colleagues to efficiently schedule meetings.<br><br>
|
||||
This tool allows you and your colleagues to efficiently schedule meetings.<br><br>
|
||||
To effectively use your FreeBusy URL it is necessary to carefully enter and update your calendar data.<br>
|
||||
In general, you can enter the times that you are available or busy in a web calendar for both entire calendars as well as individual appointments.<br><br>
|
||||
In general, you can enter the times that you are available or busy in a web calendar for both entire calendars as well as individual appointments.<br><br>
|
||||
<b>Examples:</b>
|
||||
<i>If I enter the vacations of my colleagues, it makes sense to add them to a separate calendar that is not included in MY availability.<br>
|
||||
Any notes that I add to my personal calendar should also be marked as "available", unless I am actually busy for that time period.</i><br>';
|
||||
|
||||
@@ -70,6 +70,7 @@ $this->phrasen['global/aenderungenZuruecksetzen']= "Reset changes";
|
||||
$this->phrasen['global/username']='Username';
|
||||
$this->phrasen['global/vorname']='First Name';
|
||||
$this->phrasen['global/nachname']='Last Name';
|
||||
$this->phrasen['global/wahlname']='Name of Choice';
|
||||
$this->phrasen['global/anrede']='Title';
|
||||
$this->phrasen['global/name']='Name';
|
||||
$this->phrasen['global/uid']='UID';
|
||||
|
||||
@@ -1,32 +1,27 @@
|
||||
.filter-header-title {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
text-decoration: none;
|
||||
color: #333;
|
||||
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
padding-top: 0.75rem !important;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.filter-header-title-span-filter {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.filter-header-title-span-icon {
|
||||
margin-right: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.filter-filter-options {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.filter-options-div {
|
||||
margin-bottom: 12px;
|
||||
padding-bottom: 12px;
|
||||
border-bottom-style: solid;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.125);
|
||||
border-bottom-width: 1px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.filter-dnd-area {
|
||||
.filter-fields-area {
|
||||
height: 50px;
|
||||
padding: 3px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.filter-dnd-object {
|
||||
.filter-fields-field {
|
||||
height: 100%;
|
||||
margin-left: 7px;
|
||||
padding: 11px;
|
||||
@@ -37,7 +32,7 @@
|
||||
border-width: 1px;
|
||||
border-radius: 7px;
|
||||
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
cursor: move;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.filter-filter-fields {
|
||||
@@ -65,3 +60,7 @@
|
||||
border-right: 2px solid #428bca;
|
||||
}
|
||||
|
||||
.filter-table-dataset {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
@@ -55,6 +55,14 @@
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
.left-side-menu-second-level span {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.remove-custom-filter {
|
||||
font-size: 10px !important;
|
||||
}
|
||||
|
||||
.left-side-menu-link-entry {
|
||||
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
font-size: 14px;
|
||||
@@ -104,3 +104,7 @@
|
||||
display: inline-block
|
||||
}
|
||||
}
|
||||
|
||||
.gesperrtoption {
|
||||
color: gray;
|
||||
}
|
||||
@@ -40,6 +40,22 @@ export const CoreFilterAPIs = {
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
*
|
||||
*/
|
||||
removeCustomFilter: function(wsParams) {
|
||||
return CoreRESTClient.post(
|
||||
'components/Filter/removeCustomFilter',
|
||||
{
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
filterId: wsParams.filterId
|
||||
},
|
||||
{
|
||||
timeout: CORE_FILTER_CMPT_TIMEOUT
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -72,38 +88,6 @@ export const CoreFilterAPIs = {
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
*
|
||||
*/
|
||||
addSelectedField: function(wsParams) {
|
||||
return CoreRESTClient.post(
|
||||
'components/Filter/addSelectedField',
|
||||
{
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
selectedField: wsParams.selectedField
|
||||
},
|
||||
{
|
||||
timeout: CORE_FILTER_CMPT_TIMEOUT
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
*
|
||||
*/
|
||||
removeSelectedField: function(wsParams) {
|
||||
return CoreRESTClient.post(
|
||||
'components/Filter/removeSelectedField',
|
||||
{
|
||||
filterUniqueId: wsParams.filterUniqueId,
|
||||
filterType: wsParams.filterType,
|
||||
selectedField: wsParams.selectedField
|
||||
},
|
||||
{
|
||||
timeout: CORE_FILTER_CMPT_TIMEOUT
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -19,6 +19,10 @@ import {CoreFilterAPIs} from './API.js';
|
||||
import {CoreRESTClient} from '../../RESTClient.js';
|
||||
import {CoreFetchCmpt} from '../../components/Fetch.js';
|
||||
|
||||
//
|
||||
const FILTER_COMPONENT_NEW_FILTER = 'Filter Component New Filter';
|
||||
const FILTER_COMPONENT_NEW_FILTER_TYPE = 'Filter Component New Filter Type';
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -28,6 +32,11 @@ export const CoreFilterCmpt = {
|
||||
CoreFetchCmpt
|
||||
},
|
||||
props: {
|
||||
title: String,
|
||||
sideMenu: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
filterType: {
|
||||
type: String,
|
||||
required: true
|
||||
@@ -38,19 +47,24 @@ export const CoreFilterCmpt = {
|
||||
data: function() {
|
||||
return {
|
||||
// FilterCmpt properties
|
||||
filterName: null,
|
||||
fields: null,
|
||||
dataset: null,
|
||||
datasetMetadata: null,
|
||||
selectedFields: null,
|
||||
notSelectedFields: null,
|
||||
filterFields: null,
|
||||
notFilterFields: null,
|
||||
columnsAlias: null,
|
||||
|
||||
availableFilters: null,
|
||||
|
||||
// FetchCmpt binded properties
|
||||
fetchCmptRefresh: false,
|
||||
fetchCmptApiFunction: null,
|
||||
fetchCmptApiFunctionParams: null,
|
||||
fetchCmptDataFetched: null
|
||||
fetchCmptDataFetched: null,
|
||||
|
||||
tabulator: null
|
||||
};
|
||||
},
|
||||
created: function() {
|
||||
@@ -100,19 +114,23 @@ export const CoreFilterCmpt = {
|
||||
// If the column has to be displayed or not
|
||||
selectedFields.indexOf(columns[i].field) >= 0 ? columns[i].visible = true : columns[i].visible = false;
|
||||
|
||||
if( columns[i].hasOwnProperty('resizable') ) {
|
||||
columns[i].visible ? columns[i].resizable = true : columns[i].resizable = false;
|
||||
if (columns[i].hasOwnProperty('resizable'))
|
||||
{
|
||||
columns[i].visible ? columns[i].resizable = true : columns[i].resizable = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.columnsAlias = columns;
|
||||
|
||||
// Define a default tabulator options in case it was not provided
|
||||
let tabulatorOptions = {
|
||||
height: 500,
|
||||
layout: "fitColumns",
|
||||
movableColumns: true,
|
||||
reactiveData: true,
|
||||
columns: columns,
|
||||
data: JSON.parse(JSON.stringify(this.dataset)),
|
||||
reactiveData: true
|
||||
data: JSON.parse(JSON.stringify(this.dataset))
|
||||
};
|
||||
|
||||
// If it was provided
|
||||
@@ -120,14 +138,15 @@ export const CoreFilterCmpt = {
|
||||
{
|
||||
// Then copy it...
|
||||
tabulatorOptions = this.tabulatorOptions;
|
||||
// ...and overwrite the properties data, reactiveData and columns
|
||||
// ...and overwrite the properties data, reactiveData, movableColumns and columns
|
||||
tabulatorOptions.data = JSON.parse(JSON.stringify(this.dataset));
|
||||
tabulatorOptions.reactiveData = true;
|
||||
tabulatorOptions.columns = columns;
|
||||
tabulatorOptions.reactiveData = true;
|
||||
tabulatorOptions.movableColumns = true;
|
||||
}
|
||||
|
||||
// Start the tabulator with the buid options
|
||||
let tabulator = new Tabulator(
|
||||
this.tabulator = new Tabulator(
|
||||
"#filterTableDataset",
|
||||
tabulatorOptions
|
||||
);
|
||||
@@ -138,7 +157,7 @@ export const CoreFilterCmpt = {
|
||||
// Attach all the provided event handlers to the started tabulator
|
||||
for (let i = 0; i < this.tabulatorEvents.length; i++)
|
||||
{
|
||||
tabulator.on(this.tabulatorEvents[i].event, this.tabulatorEvents[i].handler);
|
||||
this.tabulator.on(this.tabulatorEvents[i].event, this.tabulatorEvents[i].handler);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -158,17 +177,17 @@ export const CoreFilterCmpt = {
|
||||
if (CoreRESTClient.hasData(response))
|
||||
{
|
||||
let data = CoreRESTClient.getData(response);
|
||||
this.filterName = data.filterName;
|
||||
this.dataset = data.dataset;
|
||||
this.datasetMetadata = data.datasetMetadata;
|
||||
this.fields = data.fields;
|
||||
this.selectedFields = data.selectedFields;
|
||||
this.notSelectedFields = this.fields.filter(x => this.selectedFields.indexOf(x) === -1);
|
||||
|
||||
this.filterFields = [];
|
||||
let tmpFilterFields = [];
|
||||
|
||||
for (let i = 0; i < data.datasetMetadata.length; i++)
|
||||
{
|
||||
for (let j = 0; j< data.filters.length; j++)
|
||||
for (let j = 0; j < data.filters.length; j++)
|
||||
{
|
||||
if (data.datasetMetadata[i].name == data.filters[j].name)
|
||||
{
|
||||
@@ -176,14 +195,20 @@ export const CoreFilterCmpt = {
|
||||
filter.type = data.datasetMetadata[i].type;
|
||||
|
||||
this.filterFields.push(filter);
|
||||
tmpFilterFields.push(filter.name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.notFilterFields = this.fields.filter(x => tmpFilterFields.indexOf(x) === -1);
|
||||
this.setSideMenu(data);
|
||||
// If the side menu is active
|
||||
if (this.sideMenu === true)
|
||||
{
|
||||
this.setSideMenu(data);
|
||||
}
|
||||
else // otherwise use the dropdown in the filter options
|
||||
{
|
||||
this.setDropDownMenu(data);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -212,6 +237,26 @@ export const CoreFilterCmpt = {
|
||||
};
|
||||
}
|
||||
|
||||
for (let filtersCount = 0; filtersCount < personalFilters.length; filtersCount++)
|
||||
{
|
||||
let link = personalFilters[filtersCount].link;
|
||||
|
||||
if (link == null) link = '#';
|
||||
|
||||
filtersArray[filtersArray.length] = {
|
||||
link: link + personalFilters[filtersCount].filter_id,
|
||||
description: personalFilters[filtersCount].desc,
|
||||
subscriptDescription: personalFilters[filtersCount].subscriptDescription,
|
||||
subscriptLinkClass: personalFilters[filtersCount].subscriptLinkClass,
|
||||
subscriptLinkValue: personalFilters[filtersCount].subscriptLinkValue,
|
||||
sort: filtersCount,
|
||||
onClickCall: this.handlerGetFilterById,
|
||||
onClickSubscriptCall: this.handlerRemoveCustomFilter
|
||||
};
|
||||
}
|
||||
|
||||
this.availableFilters = filtersArray;
|
||||
|
||||
this.$emit(
|
||||
'nwNewEntry',
|
||||
{
|
||||
@@ -222,6 +267,40 @@ export const CoreFilterCmpt = {
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
* Set the drop down menu
|
||||
*/
|
||||
setDropDownMenu: function(data) {
|
||||
let filters = data.sideMenu.filters;
|
||||
let personalFilters = data.sideMenu.personalFilters;
|
||||
let filtersArray = [];
|
||||
|
||||
for (let filtersCount = 0; filtersCount < filters.length; filtersCount++)
|
||||
{
|
||||
let link = filters[filtersCount].link;
|
||||
|
||||
if (link == null) link = '#';
|
||||
|
||||
filtersArray[filtersArray.length] = {
|
||||
option: filters[filtersCount].filter_id,
|
||||
description: filters[filtersCount].desc
|
||||
};
|
||||
}
|
||||
|
||||
for (let filtersCount = 0; filtersCount < personalFilters.length; filtersCount++)
|
||||
{
|
||||
let link = personalFilters[filtersCount].link;
|
||||
|
||||
if (link == null) link = '#';
|
||||
|
||||
filtersArray[filtersArray.length] = {
|
||||
option: personalFilters[filtersCount].filter_id,
|
||||
description: personalFilters[filtersCount].desc
|
||||
};
|
||||
}
|
||||
|
||||
this.availableFilters = filtersArray;
|
||||
},
|
||||
/**
|
||||
* Used to start/refresh the FetchCmpt
|
||||
*/
|
||||
@@ -261,52 +340,72 @@ export const CoreFilterCmpt = {
|
||||
this.getFilter
|
||||
);
|
||||
},
|
||||
/**
|
||||
*
|
||||
*/
|
||||
handlerRemoveCustomFilter: function(event) {
|
||||
//
|
||||
this.startFetchCmpt(
|
||||
CoreFilterAPIs.removeCustomFilter,
|
||||
{
|
||||
filterId: event.currentTarget.getAttribute("href").substring(1)
|
||||
},
|
||||
this.getFilter
|
||||
);
|
||||
},
|
||||
/**
|
||||
*
|
||||
*/
|
||||
handlerApplyFilterFields: function(event) {
|
||||
let filterFields = [];
|
||||
let filterFieldDivs = document.getElementById('filterFields').getElementsByTagName('div');
|
||||
let filterFieldDivRows = document.getElementById('filterFields').getElementsByClassName('row');
|
||||
|
||||
for (let i = 0; i< filterFieldDivs.length; i++)
|
||||
for (let i = 0; i< filterFieldDivRows.length; i++)
|
||||
{
|
||||
let filterField = {};
|
||||
|
||||
for (let j = 0; j< filterFieldDivs[i].children.length; j++)
|
||||
for (let j = 0; j< filterFieldDivRows[i].children.length; j++)
|
||||
{
|
||||
if (filterFieldDivs[i].children[j].name != null)
|
||||
let filterColumn = filterFieldDivRows[i].children[j];
|
||||
let filterColumnElement = filterColumn.children[0];
|
||||
|
||||
// If the first column then search for the fields dropdown
|
||||
if (j == 0) filterColumnElement = filterColumnElement.querySelector('select[name=fieldName]');
|
||||
|
||||
// If the filter name is _not_ null and it is _not_ a new filter
|
||||
if (filterColumnElement.name != null && filterColumnElement.name != FILTER_COMPONENT_NEW_FILTER)
|
||||
{
|
||||
// Condition
|
||||
if (filterFieldDivs[i].children[j].name == 'condition' && filterFieldDivs[i].children[j].value == "")
|
||||
if (filterColumnElement.name == 'condition' && filterColumnElement.value == "")
|
||||
{
|
||||
alert("Please fill all the filter options");
|
||||
return;
|
||||
}
|
||||
|
||||
// Name
|
||||
if (filterFieldDivs[i].children[j].name == 'fieldName')
|
||||
if (filterColumnElement.name == 'fieldName')
|
||||
{
|
||||
filterField.name = filterFieldDivs[i].children[j].value;
|
||||
filterField.name = filterColumnElement.value;
|
||||
}
|
||||
// Operation
|
||||
if (filterFieldDivs[i].children[j].name == 'operation')
|
||||
if (filterColumnElement.name == 'operation')
|
||||
{
|
||||
filterField.operation = filterFieldDivs[i].children[j].value;
|
||||
filterField.operation = filterColumnElement.value;
|
||||
}
|
||||
// Condition
|
||||
if (filterFieldDivs[i].children[j].name == 'condition')
|
||||
if (filterColumnElement.name == 'condition')
|
||||
{
|
||||
filterField.condition = filterFieldDivs[i].children[j].value;
|
||||
filterField.condition = filterColumnElement.value;
|
||||
}
|
||||
// Option
|
||||
if (filterFieldDivs[i].children[j].name == 'option')
|
||||
if (filterColumnElement.name == 'option')
|
||||
{
|
||||
filterField.option = filterFieldDivs[i].children[j].value;
|
||||
filterField.option = filterColumnElement.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
filterFields.push(filterField);
|
||||
if (Object.entries(filterField).length > 0) filterFields.push(filterField);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -321,41 +420,66 @@ export const CoreFilterCmpt = {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
handlerAddFilterField: function(event) {
|
||||
//
|
||||
this.startFetchCmpt(
|
||||
CoreFilterAPIs.addFilterField,
|
||||
handlerChangeFilterField: function(oldValue, newValue) {
|
||||
|
||||
// If an old filter has been changed
|
||||
if (oldValue != "")
|
||||
{
|
||||
for (let i = 0; i < this.filterFields.length; i++)
|
||||
{
|
||||
filterField: event.currentTarget.value
|
||||
},
|
||||
this.getFilter
|
||||
);
|
||||
if (this.filterFields[i].name == oldValue)
|
||||
{
|
||||
this.filterFields.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Then add the new filter
|
||||
for (let i = 0; i < this.datasetMetadata.length; i++)
|
||||
{
|
||||
if (this.datasetMetadata[i].name == newValue)
|
||||
{
|
||||
let filter = {
|
||||
name: this.datasetMetadata[i].name,
|
||||
type: this.datasetMetadata[i].type
|
||||
};
|
||||
|
||||
this.filterFields.push(filter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
*
|
||||
*/
|
||||
handlerAddSelectedField: function(event) {
|
||||
//
|
||||
this.startFetchCmpt(
|
||||
CoreFilterAPIs.addSelectedField,
|
||||
{
|
||||
selectedField: event.currentTarget.value
|
||||
},
|
||||
this.getFilter
|
||||
);
|
||||
handlerAddNewFilter: function(event) {
|
||||
// Adds a new empty filter
|
||||
this.filterFields.push({
|
||||
name: FILTER_COMPONENT_NEW_FILTER,
|
||||
type: FILTER_COMPONENT_NEW_FILTER_TYPE
|
||||
});
|
||||
},
|
||||
/**
|
||||
/*
|
||||
*
|
||||
*/
|
||||
handlerRemoveSelectedField: function(event) {
|
||||
//
|
||||
this.startFetchCmpt(
|
||||
CoreFilterAPIs.removeSelectedField,
|
||||
{
|
||||
selectedField: event.currentTarget.getAttribute('field-to-remove')
|
||||
},
|
||||
this.getFilter
|
||||
);
|
||||
handlerToggleSelectedField: function(event) {
|
||||
|
||||
// If it is a selected field
|
||||
if (this.selectedFields.indexOf(event.target.innerText) != -1)
|
||||
{
|
||||
// then hide it
|
||||
this.tabulator.hideColumn(event.target.innerText);
|
||||
// and remove it from the this.selectedFields property
|
||||
this.selectedFields.splice(this.selectedFields.indexOf(event.target.innerText), 1);
|
||||
}
|
||||
else // otherwise
|
||||
{
|
||||
// show it
|
||||
this.tabulator.showColumn(event.target.innerText);
|
||||
// and add it to the this.selectedFields property
|
||||
this.selectedFields.push(event.target.innerText);
|
||||
}
|
||||
},
|
||||
/**
|
||||
*
|
||||
@@ -374,51 +498,30 @@ export const CoreFilterCmpt = {
|
||||
*
|
||||
*/
|
||||
handlerGetFilterById: function(event) {
|
||||
//
|
||||
|
||||
let filterId = null;
|
||||
|
||||
// Get the attribute href if side menu is rendered
|
||||
let attr = event.currentTarget.getAttribute("href");
|
||||
|
||||
// Otherwise get the value of the drop down menu
|
||||
if (attr == null)
|
||||
{
|
||||
filterId = event.currentTarget.value;
|
||||
}
|
||||
else
|
||||
{
|
||||
filterId = attr.substring(1);
|
||||
}
|
||||
|
||||
// Ajax call
|
||||
this.startFetchCmpt(
|
||||
CoreFilterAPIs.getFilterById,
|
||||
{
|
||||
filterId: event.currentTarget.getAttribute("href").substring(1)
|
||||
filterId: filterId
|
||||
},
|
||||
this.render
|
||||
);
|
||||
},
|
||||
handlerDragOver: function(event) {
|
||||
let draggedFieldToDisplay = event.currentTarget;
|
||||
let fieldsToDisplayDivs = document.getElementsByClassName('filter-dnd-object');
|
||||
let filterFilterOptions = document.getElementsByClassName('filter-filter-options')[0];
|
||||
|
||||
// For each draggable element
|
||||
for (let i = 0; i < fieldsToDisplayDivs.length; i++)
|
||||
{
|
||||
let fieldToDisplayDiv = fieldsToDisplayDivs[i]; //
|
||||
|
||||
// If the dragged element is not the same element in the loop
|
||||
if (draggedFieldToDisplay != fieldToDisplayDiv)
|
||||
{
|
||||
fieldToDisplayDiv.classList.remove("selection-after");
|
||||
fieldToDisplayDiv.classList.remove("selection-before");
|
||||
|
||||
let fieldToDisplayDivCenter = (filterFilterOptions.offsetLeft + fieldToDisplayDiv.offsetLeft + fieldToDisplayDiv.offsetWidth) / 2;
|
||||
|
||||
if (event.pageX > filterFilterOptions.offsetLeft + fieldToDisplayDiv.offsetLeft
|
||||
&& event.pageX < filterFilterOptions.offsetLeft + fieldToDisplayDiv.offsetLeft + fieldToDisplayDiv.offsetWidth)
|
||||
{
|
||||
if (event.pageX > fieldToDisplayDivCenter)
|
||||
{
|
||||
fieldToDisplayDiv.classList.add("selection-after");
|
||||
fieldToDisplayDiv.classList.remove("selection-before");
|
||||
}
|
||||
else if (event.pageX < fieldToDisplayDivCenter)
|
||||
{
|
||||
fieldToDisplayDiv.classList.add("selection-before");
|
||||
fieldToDisplayDiv.classList.remove("selection-after");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
handlerOnDrop: function() {
|
||||
}
|
||||
},
|
||||
template: `
|
||||
@@ -430,130 +533,192 @@ export const CoreFilterCmpt = {
|
||||
@data-fetched="fetchCmptDataFetched">
|
||||
</core-fetch-cmpt>
|
||||
|
||||
<div class="card filter-filter-options">
|
||||
<div class="card-header filter-header-title" data-bs-toggle="collapse" data-bs-target="#collapseFilterHeader">
|
||||
Filter options
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
{{ title }}
|
||||
</h3>
|
||||
</div>
|
||||
<div id="collapseFilterHeader" class="card-body collapse">
|
||||
<!-- Filter fields options -->
|
||||
<div class="filter-options-div">
|
||||
<div class="filter-dnd-area">
|
||||
<template v-for="fieldToDisplay in selectedFields">
|
||||
<div
|
||||
class="filter-dnd-object" draggable="true" @dragover="handlerDragOver">
|
||||
{{ fieldToDisplay}}
|
||||
<button
|
||||
type="button"
|
||||
class="btn-close"
|
||||
v-bind:field-to-remove="fieldToDisplay"
|
||||
@click=handlerRemoveSelectedField>
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<div id="filterCollapsables">
|
||||
|
||||
<div class="filter-header-title">
|
||||
<span class="filter-header-title-span-filter">[ {{ filterName }} ]</span>
|
||||
<span data-bs-toggle="collapse" data-bs-target="#collapseFilters" class="filter-header-title-span-icon fa-solid fa-filter fa-xl"></span>
|
||||
<span data-bs-toggle="collapse" data-bs-target="#collapseColumns" class="filter-header-title-span-icon fa-solid fa-table-columns fa-xl"></span>
|
||||
</div>
|
||||
|
||||
<div id="collapseColumns" class="card-body collapse" data-bs-parent="#filterCollapsables">
|
||||
<div class="card">
|
||||
<!-- Filter fields options -->
|
||||
<div class="row card-body filter-options-div">
|
||||
<div class="filter-fields-area">
|
||||
<template v-for="fieldToDisplay in fields">
|
||||
<div
|
||||
class="filter-fields-field"
|
||||
v-bind:class="selectedFields.indexOf(fieldToDisplay) != -1 ? 'text-light bg-dark' : '' "
|
||||
@click=handlerToggleSelectedField
|
||||
>
|
||||
{{ fieldToDisplay }}
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<select class="form-select form-select-sm" @change=handlerAddSelectedField>
|
||||
<option value="">Select a field to be displayed...</option>
|
||||
<template v-for="hiddenField in notSelectedFields">
|
||||
<option v-bind:value="hiddenField">{{ hiddenField}}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="collapseFilters" class="card-body collapse" data-bs-parent="#filterCollapsables">
|
||||
<div class="card">
|
||||
<!-- Filter options -->
|
||||
<div class="filter-options-div">
|
||||
<div>
|
||||
<select class="form-select form-select-sm" @change=handlerAddFilterField>
|
||||
<option value="">Add a field to the filter...</option>
|
||||
<template v-for="notFilterField in notFilterFields">
|
||||
<option v-bind:value="notFilterField">{{ notFilterField}}</option>
|
||||
<div class="card-body" v-if="!sideMenu">
|
||||
<select
|
||||
class="form-select"
|
||||
@change="handlerGetFilterById"
|
||||
>
|
||||
<option value="">Bitte auswählen...</option>
|
||||
<template v-for="availableFilter in availableFilters">
|
||||
<option v-bind:value="availableFilter.option">{{ availableFilter.description }}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
<div id="filterFields" class="filter-filter-fields">
|
||||
<template v-for="filterField in filterFields">
|
||||
<!-- Numeric -->
|
||||
<div v-if="filterField.type.toLowerCase().indexOf('int') >= 0" class="input-group mb-3">
|
||||
<input type="hidden" name="fieldName" v-bind:value="filterField.name">
|
||||
<span class="input-group-text">{{ filterField.name}}</span>
|
||||
<select class="form-select form-select-sm" name="operation" v-model="filterField.operation">
|
||||
<option value="equal">Equal</option>
|
||||
<option value="nequal">Not equal</option>
|
||||
<option value="gt">Greater then</option>
|
||||
<option value="lt">Less then</option>
|
||||
</select>
|
||||
<input type="number" class="form-control" v-bind:value="filterField.condition" name="condition">
|
||||
<button
|
||||
class="btn btn-sm btn-outline-dark"
|
||||
type="button"
|
||||
v-bind:field-to-remove="filterField.name"
|
||||
@click=handlerRemoveFilterField>
|
||||
 X 
|
||||
</button>
|
||||
<div class="card-body filter-options-div">
|
||||
<div>
|
||||
<span>
|
||||
Neuer Filter
|
||||
</span>
|
||||
<span>
|
||||
<button class="btn btn-outline-dark" type="button" @click=handlerAddNewFilter>+</button>
|
||||
</span>
|
||||
</div>
|
||||
<div id="filterFields" class="filter-filter-fields">
|
||||
<template v-for="(filterField, index) in filterFields">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-5">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">Filter {{ index + 1 }}</span>
|
||||
<select
|
||||
class="form-select"
|
||||
name="fieldName"
|
||||
v-bind:value="filterField.name"
|
||||
@change="handlerChangeFilterField(filterField.name, $event.target.value)"
|
||||
>
|
||||
<option value="">Feld zum Filter hinzufügen...</option>
|
||||
<template v-for="columnAlias in columnsAlias">
|
||||
<option v-bind:value="columnAlias.field">{{ columnAlias.title }}</option>
|
||||
</template>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Numeric -->
|
||||
<template
|
||||
v-if="filterField.type.toLowerCase().indexOf('int') >= 0">
|
||||
<div class="col-2">
|
||||
<select class="form-select" name="operation" v-model="filterField.operation">
|
||||
<option value="equal">Gleich</option>
|
||||
<option value="nequal">Nicht gleich</option>
|
||||
<option value="gt">Größer als</option>
|
||||
<option value="lt">Weniger als</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<input type="number" class="form-control" v-bind:value="filterField.condition" name="condition">
|
||||
</div>
|
||||
<div class="col">
|
||||
<button
|
||||
class="btn btn-outline-dark"
|
||||
type="button"
|
||||
v-bind:field-to-remove="filterField.name"
|
||||
@click=handlerRemoveFilterField>
|
||||
 X 
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- Text -->
|
||||
<template
|
||||
v-if="filterField.type.toLowerCase().indexOf('varchar') >= 0
|
||||
|| filterField.type.toLowerCase().indexOf('text') >= 0
|
||||
|| filterField.type.toLowerCase().indexOf('bpchar') >= 0">
|
||||
<div class="col-2">
|
||||
<select class="form-select" name="operation" v-model="filterField.operation">
|
||||
<option value="equal">Gleich</option>
|
||||
<option value="nequal">Nicht gleich</option>
|
||||
<option value="contains">Enthält</option>
|
||||
<option value="ncontains">Enthält nicht</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<input type="text" class="form-control" v-bind:value="filterField.condition" name="condition">
|
||||
</div>
|
||||
<div class="col">
|
||||
<button
|
||||
class="btn btn-outline-dark"
|
||||
type="button"
|
||||
v-bind:field-to-remove="filterField.name"
|
||||
@click=handlerRemoveFilterField>
|
||||
 X 
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- Timestamp and date -->
|
||||
<template
|
||||
v-if="filterField.type.toLowerCase().indexOf('timestamp') >= 0
|
||||
|| filterField.type.toLowerCase().indexOf('date') >= 0">
|
||||
<div class="col-2">
|
||||
<select class="form-select" name="operation" v-model="filterField.operation">
|
||||
<option value="gt">Größer als</option>
|
||||
<option value="lt">Weniger als</option>
|
||||
<option value="set">Eingestellt ist</option>
|
||||
<option value="nset">Eingestellt nicht ist</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<input type="number" class="form-control" v-bind:value="filterField.condition" name="condition">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select" name="option" v-model="filterField.option">
|
||||
<option value="minutes">Minuten</option>
|
||||
<option value="hours">Stunden</option>
|
||||
<option value="days">Tage</option>
|
||||
<option value="months">Monate</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button
|
||||
class="btn btn-outline-dark"
|
||||
type="button"
|
||||
v-bind:field-to-remove="filterField.name"
|
||||
@click=handlerRemoveFilterField
|
||||
> - </button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<!-- Filter save options -->
|
||||
<div class="row">
|
||||
<div class="col-7">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Filternamen eingeben..." id="customFilterName">
|
||||
<button type="button" class="btn btn-outline-secondary" @click=handlerSaveCustomFilter>Filter speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Text -->
|
||||
<div
|
||||
v-if="filterField.type.toLowerCase().indexOf('varchar') >= 0
|
||||
|| filterField.type.toLowerCase().indexOf('text') >= 0
|
||||
|| filterField.type.toLowerCase().indexOf('bpchar') >= 0"
|
||||
class="input-group mb-3">
|
||||
<input type="hidden" name="fieldName" v-bind:value="filterField.name">
|
||||
<span class="input-group-text">{{ filterField.name}}</span>
|
||||
<select class="form-select form-select-sm" name="operation" v-model="filterField.operation">
|
||||
<option value="contains">Contains</option>
|
||||
<option value="ncontains">Does not contain</option>
|
||||
</select>
|
||||
<input type="text" class="form-control" v-bind:value="filterField.condition" name="condition">
|
||||
<button
|
||||
class="btn btn-sm btn-outline-dark"
|
||||
type="button"
|
||||
v-bind:field-to-remove="filterField.name"
|
||||
@click=handlerRemoveFilterField>
|
||||
 X 
|
||||
</button>
|
||||
<div class="col">
|
||||
<button type="button" class="btn btn-outline-dark" @click=handlerApplyFilterFields>Filter anwenden</button>
|
||||
</div>
|
||||
<!-- Timestamp and date -->
|
||||
<div
|
||||
v-if="filterField.type.toLowerCase().indexOf('timestamp') >= 0
|
||||
|| filterField.type.toLowerCase().indexOf('date') >= 0"
|
||||
class="input-group mb-3">
|
||||
<input type="hidden" name="fieldName" v-bind:value="filterField.name">
|
||||
<span class="input-group-text">{{ filterField.name}}</span>
|
||||
<select class="form-select form-select-sm" name="operation" v-model="filterField.operation">
|
||||
<option value="gt">Greater then</option>
|
||||
<option value="lt">Less then</option>
|
||||
<option value="set">Is set</option>
|
||||
<option value="nset">Is not set</option>
|
||||
</select>
|
||||
<input type="number" class="form-control" v-bind:value="filterField.condition" name="condition">
|
||||
<select class="form-select form-select-sm" name="option" v-model="filterField.option">
|
||||
<option value="minutes">Minutes</option>
|
||||
<option value="hours">Hours</option>
|
||||
<option value="days">Days</option>
|
||||
<option value="months">Months</option>
|
||||
</select>
|
||||
<button
|
||||
class="btn btn-sm btn-outline-dark"
|
||||
type="button"
|
||||
v-bind:field-to-remove="filterField.name"
|
||||
@click=handlerRemoveFilterField>
|
||||
 X 
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<button type="button" class="btn btn-sm btn-outline-dark" @click=handlerApplyFilterFields>Apply changes</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Filter save options -->
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Custom filter name" id="customFilterName">
|
||||
<button type="button" class="btn btn-outline-secondary" @click=handlerSaveCustomFilter>Save</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tabulator -->
|
||||
<div id="filterTableDataset"></div>
|
||||
<div id="filterTableDataset" class="filter-table-dataset"></div>
|
||||
`
|
||||
};
|
||||
|
||||
|
||||
@@ -147,9 +147,20 @@ export const CoreNavigationCmpt = {
|
||||
<!-- 2nd level -->
|
||||
<template v-for="child in menu.children">
|
||||
<li>
|
||||
<span>
|
||||
<a class="nav-link left-side-menu-link-entry" v-bind:href="child.link" @click=child.onClickCall>
|
||||
  {{ child.description }}
|
||||
</a>
|
||||
<a
|
||||
class="nav-link left-side-menu-link-entry"
|
||||
v-bind:class="child.subscriptLinkClass"
|
||||
v-if="child.subscriptDescription"
|
||||
v-bind:href="child.link"
|
||||
@click=child.onClickSubscriptCall
|
||||
>
|
||||
{{ child.subscriptDescription }}
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
</template>
|
||||
</ul>
|
||||
|
||||
@@ -28,9 +28,19 @@ export default {
|
||||
<div class="mb-3"></div>
|
||||
|
||||
<div class="searchbar_table">
|
||||
|
||||
|
||||
<div class="searchbar_tablerow">
|
||||
<div class="searchbar_tablecell">OrgEinheit</div>
|
||||
<div class="searchbar_tablecell">Standard-Kostenstelle</div>
|
||||
<div class="searchbar_tablecell">
|
||||
<ul class="searchbar_inline_ul" v-if="res.standardkostenstelle.length > 0">
|
||||
<li v-for="(stdkst, idx) in res.standardkostenstelle" :key="idx">{{ stdkst }}</li>
|
||||
</ul>
|
||||
<span v-else="">keine</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="searchbar_tablerow">
|
||||
<div class="searchbar_tablecell">Organisations-Einheit</div>
|
||||
<div class="searchbar_tablecell">
|
||||
<ul class="searchbar_inline_ul" v-if="res.organisationunit_name.length > 0">
|
||||
<li v-for="(oe, idx) in res.organisationunit_name" :key="idx">{{ oe }}</li>
|
||||
@@ -49,7 +59,7 @@ export default {
|
||||
</div>
|
||||
|
||||
<div class="searchbar_tablerow">
|
||||
<div class="searchbar_tablecell">Phone</div>
|
||||
<div class="searchbar_tablecell">Telefon</div>
|
||||
<div class="searchbar_tablecell">
|
||||
<a :href="this.telurl">
|
||||
{{ res.phone }}
|
||||
|
||||
@@ -36,7 +36,7 @@ export default {
|
||||
<div ref="bottompanel" class="verticalsplitted"
|
||||
:style="{height: this.bottomheightcss}">
|
||||
<slot name="bottom">
|
||||
<p>Bottom Panel</p>
|
||||
<p/>
|
||||
</slot>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -7,58 +7,7 @@ $(document).ready(function ()
|
||||
|
||||
var personid = $("#hiddenpersonid").val();
|
||||
|
||||
//add click events to "formal geprüft" checkboxes
|
||||
$(".prchbox").click(function ()
|
||||
{
|
||||
var boxid = this.id;
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid);
|
||||
var checked = this.checked;
|
||||
DocUeberpruefung.saveFormalGeprueft(personid, akteid, checked)
|
||||
});
|
||||
|
||||
$('select.aktenid').change(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
var typ = $(this).val();
|
||||
DocUeberpruefung.saveDocTyp(personid, akteid, typ);
|
||||
});
|
||||
|
||||
$('.nachreichungInfos').click(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
DocUeberpruefung.checkNachreichungInputs(akteid);
|
||||
});
|
||||
|
||||
$('.nachreichungAbbrechen').click(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
DocUeberpruefung.checkNachreichungInputs(akteid);
|
||||
});
|
||||
|
||||
$('.nachreichungSpeichern').click(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
var typ = $('#aktenid_' + akteid).val();
|
||||
|
||||
var nachreichungAm = $('#nachreichungAm_' + akteid).val();
|
||||
var nachreichungAnmerkung = $('#nachreichungAnmerkung_' + akteid).val();
|
||||
|
||||
if(nachreichungAm === '')
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'));
|
||||
return false;
|
||||
}
|
||||
|
||||
var regEx = /^\d{2}\.\d{2}\.(\d{2}|\d{4})$/;
|
||||
|
||||
if(nachreichungAm.match(regEx) === null)
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'))
|
||||
return false;
|
||||
}
|
||||
|
||||
DocUeberpruefung.saveNachreichung(personid, nachreichungAm, nachreichungAnmerkung, typ);
|
||||
})
|
||||
DocUeberpruefung._addDocUeberpruefungEvents(personid)
|
||||
});
|
||||
|
||||
var DocUeberpruefung = {
|
||||
@@ -158,6 +107,33 @@ var DocUeberpruefung = {
|
||||
);
|
||||
},
|
||||
|
||||
deleteDoc: function(personid, akteid)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
CALLED_PATH + "/deleteDoc/" + encodeURIComponent(personid),
|
||||
{
|
||||
"akteid": akteid
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isSuccess(data))
|
||||
{
|
||||
DocUeberpruefung._refreshUbersichtDoks();
|
||||
InfocenterDetails._refreshLog();
|
||||
}
|
||||
else
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
},
|
||||
errorCallback: function(data)
|
||||
{
|
||||
FHC_DialogLib.alertWarning("Fehler beim Speichern!");
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
checkNachreichungInputs: function(akteid)
|
||||
{
|
||||
var inputs = $('#nachreichungInputs_' + akteid);
|
||||
@@ -197,6 +173,19 @@ var DocUeberpruefung = {
|
||||
}
|
||||
},
|
||||
|
||||
_refreshUbersichtDoks: function()
|
||||
{
|
||||
var personid = $("#hiddenpersonid").val();
|
||||
|
||||
$("#uebersichtDoks").load(
|
||||
CONTROLLER_URL + '/reloadUebersichtDoks/' + personid + '?fhc_controller_id=' + FHC_AjaxClient.getUrlParameter('fhc_controller_id'),
|
||||
function () {
|
||||
DocUeberpruefung._formatDocTable();
|
||||
DocUeberpruefung._addDocUeberpruefungEvents(personid);
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
_refreshNachzureichendeDoks: function()
|
||||
{
|
||||
var personid = $("#hiddenpersonid").val();
|
||||
@@ -205,10 +194,79 @@ var DocUeberpruefung = {
|
||||
CONTROLLER_URL + '/reloadDoks/' + personid + '?fhc_controller_id=' + FHC_AjaxClient.getUrlParameter('fhc_controller_id'),
|
||||
function () {
|
||||
DocUeberpruefung._formatDocTable();
|
||||
DocUeberpruefung._addDocUeberpruefungEvents(personid);
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
_addDocUeberpruefungEvents: function(personid)
|
||||
{
|
||||
//add click events to "formal geprüft" checkboxes
|
||||
$(".prchbox").click(function ()
|
||||
{
|
||||
var boxid = this.id;
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid);
|
||||
var checked = this.checked;
|
||||
DocUeberpruefung.saveFormalGeprueft(personid, akteid, checked)
|
||||
});
|
||||
|
||||
$('select.aktenid').change(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
var typ = $(this).val();
|
||||
DocUeberpruefung.saveDocTyp(personid, akteid, typ);
|
||||
});
|
||||
|
||||
$('.nachreichungInfos').click(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
DocUeberpruefung.checkNachreichungInputs(akteid);
|
||||
});
|
||||
|
||||
$('.nachreichungAbbrechen').click(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
DocUeberpruefung.checkNachreichungInputs(akteid);
|
||||
});
|
||||
|
||||
$('.nachreichungSpeichern').click(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
var typ = $('#aktenid_' + akteid).val();
|
||||
|
||||
var nachreichungAm = $('#nachreichungAm_' + akteid).val();
|
||||
var nachreichungAnmerkung = $('#nachreichungAnmerkung_' + akteid).val();
|
||||
|
||||
if(nachreichungAm === '')
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'));
|
||||
return false;
|
||||
}
|
||||
|
||||
var regEx = /^\d{2}\.\d{2}\.(\d{2}|\d{4})$/;
|
||||
|
||||
if(nachreichungAm.match(regEx) === null)
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'))
|
||||
return false;
|
||||
}
|
||||
|
||||
DocUeberpruefung.saveNachreichung(personid, nachreichungAm, nachreichungAnmerkung, typ);
|
||||
})
|
||||
|
||||
$('.dokLoeschen').click(function()
|
||||
{
|
||||
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
|
||||
|
||||
var confirmed = confirm('Wollen Sie sicher das Dokument des Dokumentypens: ' + $('#aktenid_' + akteid).find(':selected').text() + ' löschen?');
|
||||
|
||||
if (confirmed)
|
||||
{
|
||||
DocUeberpruefung.deleteDoc(personid, akteid);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_formatDocTable: function()
|
||||
{
|
||||
Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
|
||||
|
||||
@@ -543,8 +543,8 @@ var InfocenterDetails = {
|
||||
|
||||
var prestudentdata = prestudentresponse.retval;
|
||||
|
||||
var prestudent_id = freigabedata.prestudent_id;
|
||||
var statusgrund_id = freigabedata.statusgrund_id;
|
||||
var prestudent_id = parseInt(freigabedata.prestudent_id);
|
||||
var statusgrund_id = parseInt(freigabedata.statusgrund_id);
|
||||
var rtfreigabe = !$.isNumeric(statusgrund_id);//no Statusgrund - RT Freigabe
|
||||
|
||||
var rtFreigegeben = false;
|
||||
|
||||
@@ -34,11 +34,10 @@ var InfocenterPersonDataset = {
|
||||
|
||||
var auswahlStudienart =
|
||||
'<select class="form-control auswahlStudienArt" style="width:auto;">' +
|
||||
'<option data-id="all"> Alle </option>' +
|
||||
'<option data-id="master"> Master </option>' +
|
||||
'<option data-id="bachelor"> Bachelor </option>' +
|
||||
'</select>';
|
||||
|
||||
InfocenterPersonDataset.getStudienartData(infocenter_studiengangstyp);
|
||||
|
||||
var auswahlAbsageToggle =
|
||||
'<a class="absageToggle">Erweiterte Einstellungen</a>';
|
||||
|
||||
@@ -90,11 +89,9 @@ var InfocenterPersonDataset = {
|
||||
"<div class='h-divider'></div><hr class='studiensemesterline'>"
|
||||
);
|
||||
|
||||
InfocenterPersonDataset.selectStudiengangTyp(infocenter_studiengangstyp)
|
||||
|
||||
$('.auswahlStudienArt').change(function()
|
||||
{
|
||||
InfocenterPersonDataset.changeStudengangsTyp($(this).find('option:selected').attr('data-id'));
|
||||
InfocenterPersonDataset.changeStudengangsTyp($(this).find('option:selected').val());
|
||||
});
|
||||
|
||||
$("#datasetActionsBottom").append(
|
||||
@@ -183,22 +180,6 @@ var InfocenterPersonDataset = {
|
||||
);
|
||||
},
|
||||
|
||||
selectStudiengangTyp: function(typ)
|
||||
{
|
||||
switch (typ)
|
||||
{
|
||||
case 'b, m' :
|
||||
$('.auswahlStudienArt [data-id="all"]').attr('selected', 'selected');
|
||||
break;
|
||||
case 'b' :
|
||||
$('.auswahlStudienArt [data-id="bachelor"]').attr('selected', 'selected');
|
||||
break;
|
||||
case 'm' :
|
||||
$('.auswahlStudienArt [data-id="master"]').attr('selected', 'selected');
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* sets functionality for the actions above and beneath the person table
|
||||
*/
|
||||
@@ -257,20 +238,12 @@ var InfocenterPersonDataset = {
|
||||
});
|
||||
},
|
||||
|
||||
changeStudengangsTyp: function($typ)
|
||||
changeStudengangsTyp: function(typ)
|
||||
{
|
||||
switch ($typ)
|
||||
{
|
||||
case 'all' :
|
||||
var change = 'b\', \'m';
|
||||
break;
|
||||
case 'bachelor' :
|
||||
var change = 'b';
|
||||
break;
|
||||
case 'master' :
|
||||
var change = 'm';
|
||||
break;
|
||||
}
|
||||
let change = typ;
|
||||
|
||||
if (typ === 'all')
|
||||
change = change = 'b\', \'m\', \'l';
|
||||
|
||||
FHC_AjaxClient.showVeil();
|
||||
|
||||
@@ -372,7 +345,8 @@ var InfocenterPersonDataset = {
|
||||
'system/infocenter/InfoCenter/getAbsageData',
|
||||
{},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
successCallback: function(data, textStatus, jqXHR)
|
||||
{
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
data = FHC_AjaxClient.getData(data);
|
||||
@@ -397,6 +371,42 @@ var InfocenterPersonDataset = {
|
||||
}
|
||||
);
|
||||
},
|
||||
getStudienartData: function(infocenter_studiengangstyp)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'system/infocenter/InfoCenter/getStudienartData',
|
||||
{},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR)
|
||||
{
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
data = FHC_AjaxClient.getData(data);
|
||||
|
||||
let all = data.map(item => item.typ).join('\',\'');
|
||||
$('.auswahlStudienArt').append($("<option/>")
|
||||
.val(all)
|
||||
.text('Alle')
|
||||
);
|
||||
|
||||
$.each(data, function(key, value)
|
||||
{
|
||||
let isSelected;
|
||||
isSelected = (infocenter_studiengangstyp === value.typ && all.length !== 1) ? 'selected' : false;
|
||||
$('.auswahlStudienArt').append($("<option/>")
|
||||
.val(value.typ)
|
||||
.text(value.bezeichnung)
|
||||
.attr('selected', isSelected)
|
||||
)
|
||||
});
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
* initializes call to get the Studiensemester user variable
|
||||
*/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user