Merge branch 'feature-19473/VUE_Filter_Navigation_Widgets' of github.com:FH-Complete/FHC-Core into feature-19473/VUE_Filter_Navigation_Widgets

This commit is contained in:
Paolo
2022-10-10 14:44:31 +02:00
82 changed files with 2417 additions and 656 deletions
+2 -2
View File
@@ -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(
@@ -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'));
}
@@ -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);
@@ -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()
+118 -169
View File
@@ -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);
}
}
+15 -10
View File
@@ -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;
+13 -4
View File
@@ -122,14 +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,
ARRAY_AGG(DISTINCT(oe.bezeichnung)) AS standardkostenstelle
ARRAY_AGG(DISTINCT(stdkst.bezeichnung)) AS standardkostenstelle
FROM public.tbl_mitarbeiter m
JOIN public.tbl_benutzer b ON(b.uid = m.mitarbeiter_uid)
JOIN public.tbl_benutzerfunktion bf ON bf.uid = b.uid AND bf.funktion_kurzbz = \'kstzuordnung\'
JOIN public.tbl_organisationseinheit oe ON oe.oe_kurzbz = bf.oe_kurzbz
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
@@ -148,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
');
+7
View File
@@ -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));
+2 -2
View File
@@ -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;
}
/**
+4 -3
View File
@@ -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);
@@ -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));
}
}
@@ -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,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 -->