diff --git a/.gitignore b/.gitignore index bd98c9b59..96af3e5dc 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ application/logs/ application/models/extensions/ application/views/extensions/ application/widgets/extensions/ +application/components/extensions/ public/extensions/ diff --git a/tests/codeception/_data/.placeholder b/application/components/extensions/.placeholder similarity index 100% rename from tests/codeception/_data/.placeholder rename to application/components/extensions/.placeholder diff --git a/application/components/filters/LogsViewer.php b/application/components/filters/LogsViewer.php new file mode 100644 index 000000000..3a5390273 --- /dev/null +++ b/application/components/filters/LogsViewer.php @@ -0,0 +1,19 @@ + 'core', + 'datasetName' => 'logs', + //'filterKurzbz' => 'jobs48hours', // REMOVE ME + 'query' => ' + SELECT wsl.webservicelog_id AS "LogId", + wsl.request_id AS "RequestId", + wsl.execute_time AS "ExecutionTime", + wsl.execute_user AS "ExecutedBy", + wsl.beschreibung AS "Description", + wsl.request_data AS "Data", + wsl.webservicetyp_kurzbz AS "WebserviceType" + FROM system.tbl_webservicelog wsl + ORDER BY wsl.execute_time DESC + ', + 'requiredPermissions' => 'admin' + ); + diff --git a/application/config/anrechnung.php b/application/config/anrechnung.php index d1f4f0958..c2e38385c 100644 --- a/application/config/anrechnung.php +++ b/application/config/anrechnung.php @@ -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( diff --git a/application/config/navigation.php b/application/config/navigation.php index b788dc40c..5f3414759 100644 --- a/application/config/navigation.php +++ b/application/config/navigation.php @@ -15,7 +15,7 @@ $config['navigation_header'] = array( 'description' => 'Organisation', 'sort' => 20, 'requiredPermissions' => 'basis/vilesci:r', - 'children'=> array( + 'children' => array( 'vilesci' => array( 'link' => base_url('vilesci'), 'icon' => '', @@ -27,7 +27,7 @@ $config['navigation_header'] = array( 'oehbeitragsverwaltung' => array( 'link' => site_url('codex/Oehbeitrag'), 'icon' => '', - 'description' => 'Öhbeitragsverwaltung', + 'description' => 'ÖH-Beitragsverwaltung', 'expand' => true, 'sort' => 20, 'requiredPermissions' => 'admin:w' @@ -40,7 +40,7 @@ $config['navigation_header'] = array( 'description' => 'Lehre', 'sort' => 30, 'requiredPermissions' => 'basis/vilesci:r', - 'children'=> array( + 'children' => array( 'cis' => array( 'link' => CIS_ROOT, 'icon' => '', @@ -71,6 +71,16 @@ $config['navigation_header'] = array( 'lehre/lehrauftrag_erteilen:r' ) ), + 'zverfueg' => array( + 'link' => site_url('lehre/lvplanung/AdminZeitverfuegbarkeit'), + 'description' => 'Zeitverfügbarkeit', + 'expand' => true, + 'sort' => 45, + 'requiredPermissions' => array( + 'lehre/zeitverfuegbarkeit:rw', + 'lehre/zeitverfuegbarkeit:rw' + ) + ), 'zgvueberpruefung' => array( 'link' => site_url('system/infocenter/ZGVUeberpruefung'), 'description' => 'ZGV Überprüfung', @@ -88,7 +98,7 @@ $config['navigation_header'] = array( 'description' => 'Personen', 'sort' => 40, 'requiredPermissions' => 'basis/vilesci:r', - 'children'=> array( + 'children' => array( 'messages' => array( 'link' => site_url('system/messages/MessageClient/read'), 'icon' => '', @@ -102,6 +112,20 @@ $config['navigation_header'] = array( 'description' => 'BPK Wartung', 'sort' => 20, 'requiredPermissions' => 'admin:r' + ), + 'errormonitoring' => array( + 'link' => site_url('system/issues/Issues'), + 'description' => 'Fehler Monitoring', + 'expand' => true, + 'sort' => 30, + 'requiredPermissions' => 'system/issues_verwalten:r' + ), + 'gruppenmanagement' => array( + 'link' => site_url('person/Gruppenmanagement'), + 'description' => 'Gruppenmanagement', + 'expand' => true, + 'sort' => 40, + 'requiredPermissions' => 'lehre/gruppenmanager:r' ) ) ), @@ -112,7 +136,7 @@ $config['navigation_header'] = array( 'expand' => false, 'sort' => 50, 'requiredPermissions' => 'admin:r', - 'children'=> array( + 'children' => array( 'extensions' => array( 'link' => site_url('system/extensions/Manager'), 'description' => 'Extensions Manager', @@ -133,13 +157,6 @@ $config['navigation_header'] = array( 'expand' => true, 'sort' => 20, 'requiredPermissions' => 'system/developer:r' - ), - 'errormonitoring' => array( - 'link' => site_url('system/issues/Issues'), - 'description' => 'Fehler Monitoring', - 'expand' => true, - 'sort' => 20, - 'requiredPermissions' => 'system/issues_verwalten:r' ) ) ) @@ -184,7 +201,8 @@ $config['navigation_menu']['lehre/lehrauftrag/Lehrauftrag/*'] = array( 'icon' => 'dashboard', 'sort' => 1, 'requiredPermissions' => array('lehre/lehrauftrag_bestellen:r','lehre/lehrauftrag_erteilen:r') - ),'lehrauftragBestellen' => array( + ), + 'lehrauftragBestellen' => array( 'link' => site_url('lehre/lehrauftrag/Lehrauftrag'), 'description' => 'Lehrauftrag bestellen', 'icon' => '', @@ -206,6 +224,7 @@ $config['navigation_menu']['lehre/lehrauftrag/Lehrauftrag/*'] = array( 'requiredPermissions' => array('lehre/lehrauftrag_erteilen:r') ) ); + $config['navigation_menu']['lehre/lehrauftrag/LehrauftragErteilen/*'] = array( 'lehrauftragDashboard' => array( 'link' => site_url('lehre/lehrauftrag/Lehrauftrag/Dashboard'), @@ -213,7 +232,8 @@ $config['navigation_menu']['lehre/lehrauftrag/LehrauftragErteilen/*'] = array( 'icon' => 'dashboard', 'sort' => 1, 'requiredPermissions' => array('lehre/lehrauftrag_bestellen:r','lehre/lehrauftrag_erteilen:r') - ),'lehrauftragBestellen' => array( + ), + 'lehrauftragBestellen' => array( 'link' => site_url('lehre/lehrauftrag/Lehrauftrag'), 'description' => 'Lehrauftrag bestellen', 'icon' => '', @@ -235,3 +255,15 @@ $config['navigation_menu']['lehre/lehrauftrag/LehrauftragErteilen/*'] = array( 'requiredPermissions' => array('lehre/lehrauftrag_erteilen:r') ) ); + +$config['navigation_menu']['system/issues/Issues/*'] = array( + 'fehlerzustaendigkeiten' => array( + 'link' => site_url('system/issues/IssuesZustaendigkeiten'), + 'description' => 'Fehler Zuständigkeiten', + 'icon' => 'cogs', + 'sort' => 100, + 'target' => '_blank', + 'requiredPermissions' => array('admin:rw') + ) +); + diff --git a/application/config/routes.php b/application/config/routes.php index 36bfdcb1e..15da5698f 100644 --- a/application/config/routes.php +++ b/application/config/routes.php @@ -60,3 +60,26 @@ $route['api/v1/organisation/[G|g]eschaeftsjahr/(:any)'] = 'api/v1/organisation/g $route['api/v1/organisation/[O|o]rganisationseinheit/(:any)'] = 'api/v1/organisation/organisationseinheit2/$1'; $route['api/v1/ressource/[B|b]etriebsmittelperson/(:any)'] = 'api/v1/ressource/betriebsmittelperson2/$1'; $route['api/v1/system/[S|s]prache/(:any)'] = 'api/v1/system/sprache2/$1'; + +// load routes from extensions +$subdir = 'application/config/extensions'; +$dirlist = scandir($subdir); + +if ($dirlist) +{ + $files = array_diff($dirlist, array('.','..')); + + foreach ($files as &$item) + { + if (is_dir($subdir . DIRECTORY_SEPARATOR . $item)) + { + $routes_file = $subdir . DIRECTORY_SEPARATOR . $item . DIRECTORY_SEPARATOR . 'routes.php'; + + if (file_exists($routes_file)) + { + require($routes_file); + } + } + } +} + diff --git a/application/controllers/codex/Oehbeitrag.php b/application/controllers/codex/Oehbeitrag.php index fa27d1ebb..da8c63e08 100644 --- a/application/controllers/codex/Oehbeitrag.php +++ b/application/controllers/codex/Oehbeitrag.php @@ -4,7 +4,7 @@ if (! defined("BASEPATH")) exit("No direct script access allowed"); class Oehbeitrag extends Auth_Controller { - const STUDIENSEMESTER_START = 'WS2020'; + const STUDIENSEMESTER_START = 'WS2020'; // Öhbeitrage can be assigned beginning with this Studiensemester public function __construct() { @@ -23,6 +23,14 @@ class Oehbeitrag extends Auth_Controller $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); $this->load->library('WidgetLib'); + + $this->loadPhrases( + array( + 'global', + 'ui', + 'oehbeitrag' + ) + ); } public function index() diff --git a/application/controllers/components/Filter.php b/application/controllers/components/Filter.php new file mode 100644 index 000000000..ab7e1493e --- /dev/null +++ b/application/controllers/components/Filter.php @@ -0,0 +1,207 @@ +load->library('AuthLib'); + + // Loads the FilterCmptLib with HTTP GET/POST parameters + $this->_startFilterCmptLib(); + } + + //------------------------------------------------------------------------------------------------------------------ + // Public methods + + /** + * Retrieves data about the current filter from the session and will be written on the output in JSON format + */ + public function getFilter() + { + $this->outputJsonSuccess($this->filtercmptlib->getSession()); + } + + /** + * Remove an applied filter (SQL where condition) from the current filter + */ + public function removeFilterField() + { + $request = $this->getPostJSON(); + + if (property_exists($request, 'filterField') + && $this->filtercmptlib->removeFilterField($request->filterField) == true) + { + $this->outputJsonSuccess('Field removed'); + } + else + { + $this->outputJsonError('Error occurred'); + } + } + + /** + * Add a filter (SQL where clause) to be applied to the current filter + */ + public function addFilterField() + { + $request = $this->getPostJSON(); + + if (property_exists($request, 'filterField') + && $this->filtercmptlib->addFilterField($request->filterField) == true) + { + $this->outputJsonSuccess('Field added'); + } + else + { + $this->outputJsonError('Error occurred'); + } + } + + /** + * Apply the filter changes + */ + public function applyFilterFields() + { + $request = $this->getPostJSON(); + + if (property_exists($request, 'filterFields') + && $this->filtercmptlib->applyFilterFields($request->filterFields) == true) + { + $this->outputJsonSuccess('Applied'); + } + else + { + $this->outputJsonError('Error occurred'); + } + } + + /** + * Save the current filter as a custom filter for this user with the given description + */ + public function saveCustomFilter() + { + $request = $this->getPostJSON(); + + if (property_exists($request, 'customFilterName') + && $this->filtercmptlib->saveCustomFilter($request->customFilterName) == true) + { + $this->outputJsonSuccess('Saved'); + } + else + { + $this->outputJsonError('An error occurred while saving a custom filter'); + } + } + + /** + * Remove a custom filter by its filterId + */ + public function removeCustomFilter() + { + $request = $this->getPostJSON(); + + if (property_exists($request, 'filterId') + && $this->filtercmptlib->removeCustomFilter($request->filterId) == true) + { + $this->outputJsonSuccess('Removed'); + } + else + { + $this->outputJsonError('Wrong parameter'); + } + } + + /** + * Reloads the dataset + */ + public function reloadDataset() + { + $this->filtercmptlib->reloadDataset(); + + $this->outputJsonSuccess('Success'); + } + + //------------------------------------------------------------------------------------------------------------------ + // Private methods + + /** + * Loads the FilterCmptLib with the FILTER_UNIQUE_ID parameter + * If the parameter FILTER_UNIQUE_ID is not given then the execution of the controller is terminated and + * an error message is printed + */ + private function _startFilterCmptLib() + { + $filterUniqueId = null; + $filterType = null; + $filterId = null; + + // Try to get the POSTed JSON + $postJSON = $this->getPostJSON(); + + // POSTed JSON + if ($postJSON != null) + { + // If the mandatory parameters FILTER_UNIQUE_ID and FILTER_TYPE have been provided + if (property_exists($postJSON, self::FILTER_UNIQUE_ID) && property_exists($postJSON, self::FILTER_TYPE)) + { + // Retrives them from the POSTed JSON + $filterUniqueId = $postJSON->{self::FILTER_UNIQUE_ID}; + $filterType = $postJSON->{self::FILTER_TYPE}; + } + + // If the optional parameter FILTER_ID has been provided + if (property_exists($postJSON, self::FILTER_ID)) $filterId = $postJSON->{self::FILTER_ID}; + } + else // otherwise it is an HTTP GET call + { + // If the mandatory parameters FILTER_UNIQUE_ID and FILTER_TYPE have been provided + if (isset($_GET[self::FILTER_UNIQUE_ID]) && isset($_GET[self::FILTER_TYPE])) + { + // Retrives them from the HTTP GET + $filterUniqueId = $this->input->get(self::FILTER_UNIQUE_ID); + $filterType = $this->input->get(self::FILTER_TYPE); + } + + // If the optional parameter FILTER_ID has been provided + if (isset($_GET[self::FILTER_ID])) $filterId = $filterId = $this->input->get(self::FILTER_ID); + } + + // If the mandatory parameters have _not_ been provided, then terminate the execution and return an error + if ($filterUniqueId == null) $this->terminateWithJsonError('Parameter "'.self::FILTER_UNIQUE_ID.'" not provided!'); + if ($filterType == null) $this->terminateWithJsonError('Parameter "'.self::FILTER_TYPE.'" not provided!'); + + // Loads the FilterCmptLib that contains all the used logic + $this->load->library( + 'FilterCmptLib', + array( + 'filterUniqueId' => $filterUniqueId, + 'filterType' => $filterType, + 'filterId' => $filterId + ) + ); + + // Start the component + $this->filtercmptlib->start(); + } +} + diff --git a/application/controllers/components/SearchBar.php b/application/controllers/components/SearchBar.php new file mode 100644 index 000000000..09a49e163 --- /dev/null +++ b/application/controllers/components/SearchBar.php @@ -0,0 +1,51 @@ +load->library('SearchBarLib'); + } + + //------------------------------------------------------------------------------------------------------------------ + // Public methods + + /** + * Gets a JSON body via HTTP POST and provides the parameters + */ + public function search() + { + $json = json_decode($this->input->raw_input_stream); + + // Checks if the searchstr and the types parameters are in the POSTed JSON + if (isset($json->{self::SEARCHSTR_PARAM}) && isset($json->{self::TYPES_PARAM})) + { + // Convert to json the result from searchbarlib->search + $this->outputJson( + $this->searchbarlib->search( + $json->{self::SEARCHSTR_PARAM}, + $json->{self::TYPES_PARAM} + ) + ); + } + else // otherwise return an error in JSON format + { + $this->outputJsonError(SearchBarLib::ERROR_WRONG_JSON); + } + } +} + diff --git a/application/controllers/jobs/AnrechnungJob.php b/application/controllers/jobs/AnrechnungJob.php index f92410dbc..7aae80d54 100644 --- a/application/controllers/jobs/AnrechnungJob.php +++ b/application/controllers/jobs/AnrechnungJob.php @@ -16,9 +16,11 @@ if (!defined('BASEPATH')) exit('No direct script access allowed'); class AnrechnungJob extends JOB_Controller { const APPROVE_ANRECHNUNG_URI = '/lehre/anrechnung/ApproveAnrechnungUebersicht'; + const REVIEW_ANRECHNUNG_URI = '/lehre/anrechnung/ReviewAnrechnungUebersicht'; const ANRECHNUNGSTATUS_APPROVED = 'approved'; const ANRECHNUNGSTATUS_REJECTED = 'rejected'; + const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor'; const ANRECHNUNG_NOTIZTITEL_NOTIZ_BY_STGL = 'AnrechnungNotizSTGL'; /** @@ -33,6 +35,8 @@ class AnrechnungJob extends JOB_Controller $this->load->helper('url'); $this->load->helper('hlp_sancho_helper'); + + $this->load->library('AnrechnungLib'); } /** @@ -188,7 +192,7 @@ class AnrechnungJob extends JOB_Controller $studiengang_bezeichnung = $this->StudiengangModel->load($studiengang_kz)->retval[0]->stg_bezeichnung; // Get STGL mail address - list ($to, $vorname) = self::_getSTGLMailAddress($studiengang_kz); + $stglMailReceiver_arr = self::_getSTGLMailAddress($studiengang_kz); // Get HTML table with new Anrechnungen of that STG plus amount of them list ($anrechnungen_amount, $anrechnungen_table) = self::_getSTGLMailDataTable($studiengang_kz, $anrechnungen); @@ -199,22 +203,25 @@ class AnrechnungJob extends JOB_Controller CIS_ROOT. 'cis/menu.php?content_id=&content='. CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI; + foreach ($stglMailReceiver_arr as $stgl) + { // Prepare mail content - $body_fields = array( - 'vorname' => $vorname, - 'studiengang' => $studiengang_bezeichnung, - 'anzahl' => $anrechnungen_amount, - 'datentabelle' => $anrechnungen_table, - 'link' => anchor($url, 'Anrechnungsanträge Übersicht') - ); - - // Send mail - sendSanchoMail( - 'AnrechnungAntragStellen', - $body_fields, - $to, - 'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt' - ); + $body_fields = array( + 'vorname' => $stgl['vorname'], + 'studiengang' => $studiengang_bezeichnung, + 'anzahl' => $anrechnungen_amount, + 'datentabelle' => $anrechnungen_table, + 'link' => anchor($url, 'Anrechnungsanträge Übersicht') + ); + + // Send mail + sendSanchoMail( + 'AnrechnungAntragStellen', + $body_fields, + $stgl['to'], + 'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt' + ); + } } $this->logInfo('SUCCEDED: Sending emails to STGL about yesterdays new Anrechnungen succeded.'); @@ -339,18 +346,97 @@ html; } + /** + * Send Sancho mail to remind lecturers to provide their recommendation if not done until one week after request. + */ + public function sendMailRemindRecommendation(){ + + $this->logInfo('Start AnrechnungJob sendMailRemindRecommendation to remind lecturers to provide their recommendation.'); + + // Get Anrechnungen with pending recommendations, that were requested 1 week before today. + // Restrict query for Anrechnungen of actual semester. + $this->AnrechnungModel->addSelect('astat.anrechnung_id, astat.datum, astat.insertamum'); + $this->AnrechnungModel->addDistinct('astat.anrechnung_id'); + $this->AnrechnungModel->addJoin('lehre.tbl_anrechnung_anrechnungstatus astat', 'anrechnung_id'); + + $result = $this->AnrechnungModel->loadWhere(' + studiensemester_kurzbz = ( + SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende) + ) + AND genehmigt_von IS NULL + AND empfehlung_anrechnung IS NULL + AND status_kurzbz = '. $this->db->escape(self::ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR) .' -- in Bearbeitung durch Lektor + AND NOW()::date = (astat.datum + interval \'1 week\') -- eine Woche nach Empfehlungsanfrage + ORDER BY astat.anrechnung_id, astat.datum DESC, astat.insertamum DESC -- nur letzten status dabei prüfen + '); + + // Exit if there are no pending recommendations + if (!hasData($result)) + { + $this->logInfo('End AnrechnungJob sendMailRemindRecommendation, because no recommendations to be done.'); + exit; + } + + $anrechnung_id_arr = array_column(getData($result), 'anrechnung_id'); + + $arr_lvLector_arr = array(); + foreach ($anrechnung_id_arr as $anrechnung_id) + { + $arr_lvLector_arr[]= $this->anrechnunglib->getLectors($anrechnung_id); // Returns LV Leitung. If not present, then all lectors of LV. + } + + // Unique lector array to send only one mail per lector + $arr_lvLector_arr = array_unique($arr_lvLector_arr, SORT_REGULAR); + + // Link to 'Anrechnungen prüfen' dashboard + $url = + CIS_ROOT. 'cis/index.php?menu='. + CIS_ROOT. 'cis/menu.php?content_id=&content='. + CIS_ROOT. index_page(). self::REVIEW_ANRECHNUNG_URI; + + foreach ($arr_lvLector_arr as $lvLector_arr) + { + foreach ($lvLector_arr as $lector) + { + // Prepare mail content + $fields = array( + 'vorname' => $lector->vorname, + 'stgl_name' => 'Die Studiengangsleitung', + 'link' => anchor($url, 'Anrechnungsanträge Übersicht') + ); + + // Send mail + sendSanchoMail( + 'AnrechnungEmpfehlungAnfordern', + $fields, + $lector->uid. '@'. DOMAIN, + 'Erinnerung: Deine Empfehlung wird benötigt zur Anerkennung nachgewiesener Kenntnisse' + ); + } + } + + $this->logInfo('SUCCEDED AnrechnungJob sendMailRemindRecommendation'); + + } + // Get STGL mail address private function _getSTGLMailAddress($studiengang_kz) { + $stglMailAdress_arr = array(); $result = $this->StudiengangModel->getLeitung($studiengang_kz); // Get STGL mail address if (hasData($result)) { - return array( - $result->retval[0]->uid. '@'. DOMAIN, - $result->retval[0]->vorname - ); + foreach (getData($result) as $stgl) + { + $stglMailAdress_arr[]= array( + 'to' => $stgl->uid. '@'. DOMAIN, + 'vorname' => $stgl->vorname + ); + } + + return $stglMailAdress_arr; } // If not available, get assistance mail address else diff --git a/application/controllers/jobs/IssueResolver.php b/application/controllers/jobs/IssueResolver.php new file mode 100755 index 000000000..17c4cb9ce --- /dev/null +++ b/application/controllers/jobs/IssueResolver.php @@ -0,0 +1,28 @@ + class (library) name for resolving + $this->_codeLibMappings = array( + 'CORE_ZGV_0001' => 'CORE_ZGV_0001', + 'CORE_ZGV_0002' => 'CORE_ZGV_0002', + 'CORE_ZGV_0003' => 'CORE_ZGV_0003', + 'CORE_ZGV_0004' => 'CORE_ZGV_0004', + 'CORE_ZGV_0005' => 'CORE_ZGV_0005', + 'CORE_INOUT_0001' => 'CORE_INOUT_0001', + 'CORE_INOUT_0002' => 'CORE_INOUT_0002', + 'CORE_INOUT_0003' => 'CORE_INOUT_0003', + 'CORE_INOUT_0004' => 'CORE_INOUT_0004', + 'CORE_INOUT_0005' => 'CORE_INOUT_0005', + 'CORE_INOUT_0006' => 'CORE_INOUT_0006' + ); + } +} diff --git a/application/controllers/jobs/LVPlanJob.php b/application/controllers/jobs/LVPlanJob.php index 2688e5cc9..c3fe5495a 100644 --- a/application/controllers/jobs/LVPlanJob.php +++ b/application/controllers/jobs/LVPlanJob.php @@ -19,7 +19,7 @@ */ if (!defined('BASEPATH')) exit('No direct script access allowed'); -class LVPlanJob extends CLI_Controller +class LVPlanJob extends JOB_Controller { /** * Initialize LVPlanJob Class @@ -149,4 +149,315 @@ class LVPlanJob extends CLI_Controller echo "Failed ".$fail."\n"; } } + + /** + * Send Mail to STGL, Kompetenzfeld and LV Planung about todays updated Zeitwuensche. + * STGL gets list only of lectors who updated future assigend courses concerning their STG. + * Kompetenzleitung gets list only of lectors who updated future assigend courses concerning their KF. + * LVPlanung gets list of lectors who updated future assigend courses. + */ + public function mailUpdatedZeitwuensche() + { + // Load models + $this->load->model('ressource/Stundenplandev_model', 'StundenplandevModel'); + $this->load->model('organisation/Studiensemester_model', 'StundiensemesterModel'); + $this->load->model('education/Lehreinheit_model', 'LehreinheitModel'); + $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); + $this->load->model('person/Person_model', 'PersonModel'); + + // Load libs + $this->load->library('MailLib'); + + // Load helpers + $this->load->helper('hlp_sancho_helper'); + + // Start Log Message + $this->logInfo('Mail updated Zeitwuensche started.'); + + // Get all lectors, who updated their Zeitwunsch today + $db = new DB_Model(); + $result = $db->execReadOnlyQuery(' + SELECT + zwg.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.oe_kurzbz + FROM + campus.tbl_zeitwunsch_gueltigkeit zwg + JOIN lehre.tbl_stundenplandev stpl + ON( + stpl.mitarbeiter_uid=zwg.mitarbeiter_uid + AND stpl.datum BETWEEN zwg.von AND COALESCE(zwg.bis, \'2999-12-31\') + AND (zwg.insertamum::date = (NOW()-\'1 days\'::interval)::date + OR + zwg.updateamum::date = (NOW()-\'1 days\'::interval)::date) + AND stpl.datum > now() + ) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + GROUP BY + zwg.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.oe_kurzbz + '); + + if (!hasData($result)) + { + return; // No updated Zeitwuensche today + } + + $uidByStg_arr = array(); // Mail data for Studiengang + $uidByOe_arr = array(); // Mail data for Kompetenzfeld + $uid_arr = array(); // Mail data for Kompetenzfeld + + // Loop through lectors, who updated their Zeitwunsch today + $changed_arr = getData($result); + foreach ($changed_arr as $row) + { + + // Add unique lector array + if (!in_array($row->mitarbeiter_uid, $uid_arr)) + { + $uid_arr[]= $row->mitarbeiter_uid; + } + + // Build unique Studiengang array + if (!array_key_exists($row->studiengang_kz, $uidByStg_arr)) + { + $uidByStg_arr[$row->studiengang_kz] = array($row->mitarbeiter_uid); + + } + elseif (!in_array($row->mitarbeiter_uid, $uidByStg_arr[$row->studiengang_kz])) + { + $uidByStg_arr[$row->studiengang_kz][]= $row->mitarbeiter_uid; + } + + // Build unique Kompetenzfeld array + if (!array_key_exists($row->oe_kurzbz, $uidByOe_arr)) + { + $uidByOe_arr[$row->oe_kurzbz] = array($row->mitarbeiter_uid); + + } + elseif (!in_array($row->mitarbeiter_uid, $uidByOe_arr[$row->oe_kurzbz])) + { + $uidByOe_arr[$row->oe_kurzbz][]= $row->mitarbeiter_uid; + } + } + + // Send mail to STG Assistenz + /* + $result = $this->_sendMailToStg($uidByStg_arr); + if (isError($result)) + { + $this->logError(getError($result)); + } + */ + + // Send mail to Kompetenzfeld Leitung + $result = $this->_sendMailToKF($uidByOe_arr); + if (isError($result)) + { + $this->logError(getError($result)); + } + + // Send mail to LV Planung + $result = $this->_sendMailToLvPlanung($uid_arr); + if (isError($result)) + { + $this->logError(getError($result)); + } + + // End Log Message + $this->logInfo('Mail updated Zeitwuensche ended.'); + } + + /** + * Send Mail to STGL Assistance about lectors, who teach LV assigend to the STG, and who updated Zeitwuensche. + * + * @param $data_arr + * @param $stg_bezeichnung + */ + private function _sendMailToStg($data_arr) + { + foreach ($data_arr as $stg_kurzbz => $uid_arr) + { + // Get STG eMail + $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); + $result = $this->StudiengangModel->load($stg_kurzbz); + $stgMail = $result->retval[0]->email; + + $lektorenTabelle = ' +
| Name | +UID | +
|---|---|
| '. getData($person)[0]->vorname. ' '. getData($person)[0]->nachname. ' | +['. $uid. '] | +
| Name | +UID | +
|---|---|
| '. getData($person)[0]->vorname. ' '. getData($person)[0]->nachname. ' | +['. $uid. '] | +
| Name | +UID | +
|---|---|
| '. getData($person)[0]->vorname. ' '. getData($person)[0]->nachname. ' | +['. $lector. '] | +
| Gültig von | -Gültig bis | -Studierendenbetrag | -Versicherungsbetrag | -Aktion | +p->t('global', 'gueltigVon')) ?> | +p->t('global', 'gueltigBis')) ?> | +p->t('oehbeitrag', 'studierendenbetrag')) ?> | +p->t('oehbeitrag', 'versicherungsbetrag')) ?> | +p->t('ui', 'aktion')) ?> |
|---|---|---|---|---|---|---|---|---|---|
| p->t('lehre', 'ects'); ?> | -ects ?> | +ects ?> | |||||||
| + p->t('anrechnung', 'bisherAngerechneteEcts'); ?> + + + + | ++ Total: sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?> + [Schulisch: sumEctsSchulisch ?> / + Beruflich: sumEctsBeruflich ?> ] + + | +||||||||
| p->t('lehre', 'lektorInnen'); ?> | -+ | lektoren) - 1 ?> lektoren as $key => $lektor): ?> vorname . ' ' . $lektor->nachname; @@ -137,19 +154,23 @@ $this->load->view( | |||||||
| p->t('global', 'zgv')); ?> | -zgv ?> | +zgv ?> | |||||||
| p->t('anrechnung', 'herkunftDerKenntnisse'); ?> | -anmerkung ?> | +anmerkung ?> | |||||||
| p->t('anrechnung', 'nachweisdokumente'); ?> | -+ | dokumentname) ?> | |||||||
| p->t('global', 'begruendung'); ?> | +begruendung ?> | +||||||||
| p->t('person','titelpre')) ?> | +p->t('person', 'titelpre')) ?> | titelpre ?> | ||||||||||||||
| p->t('person','vorname')) ?> | +p->t('person', 'vorname')) ?> | vorname ?> | ||||||||||||||
| p->t('person','nachname')) ?> | +p->t('person', 'nachname')) ?> | nachname ?> | ||||||||||||||
| p->t('person','titelpost')) ?> | +p->t('person', 'titelpost')) ?> | titelpost ?> | ||||||||||||||
| p->t('person','geburtsdatum')) ?> | +p->t('person', 'geburtsdatum')) ?> | gebdatum), 'd.m.Y') ?> | ||||||||||||||
| p->t('person','svnr')) ?> | +p->t('person', 'svnr')) ?> | svnr ?> | ||||||||||||||
| p->t('person','ersatzkennzeichen')) ?> | +p->t('person', 'ersatzkennzeichen')) ?> | ersatzkennzeichen ?> | ||||||||||||||
| p->t('person','staatsbuergerschaft')) ?> | +p->t('person', 'staatsbuergerschaft')) ?> | staatsbuergerschaft ?> | ||||||||||||||
| p->t('person','geschlecht')) ?> | +p->t('person', 'geschlecht')) ?> | geschlecht ?> | ||||||||||||||
| p->t('person','bpk')) ?> | +p->t('person', 'bpk')) ?> | bpk ?> | ||||||||||||||
| p->t('person','postleitzahl')) ?> | +p->t('person', 'postleitzahl')) ?> | plz ?> | ||||||||||||||
| p->t('person','strasse')) ?> | +p->t('person', 'strasse')) ?> | strasse ?> |
| Uid | +p->t('person', 'vorname')); ?> | +p->t('person', 'nachname')); ?> | +p->t('gruppenmanagement', 'aktiv')); ?> | +p->t('ui', 'entfernen')); ?> | + + + +
|---|
| p->t('global','name')) ?> | p->t('global','typ')) ?> | p->t('global','uploaddatum')) ?> | +p->t('ui','loeschen')) ?> | p->t('infocenter','ausstellungsnation')) ?> | akte_id ?>">titel) ? $dokument->bezeichnung : $dokument->titel ?>- | erstelltam), 'd.m.Y') ?> | +> | langtext ?> |
- >
formal_geprueft_amum) ? date_format(date_create($dokument->formal_geprueft_amum), 'd.m.Y') : ''; ?>
diff --git a/application/views/system/infocenter/infocenter.php b/application/views/system/infocenter/infocenter.php
index 38e644846..0b7a20c2c 100644
--- a/application/views/system/infocenter/infocenter.php
+++ b/application/views/system/infocenter/infocenter.php
@@ -1,31 +1,30 @@
load->view(
- 'templates/FHC-Header',
- array(
- 'title' => 'Info Center',
- 'jquery' => true,
- 'jqueryui' => true,
- 'jquerycheckboxes' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
- 'tablesorter' => true,
- 'ajaxlib' => true,
- 'filterwidget' => true,
- 'navigationwidget' => true,
- 'dialoglib' => true,
- 'phrases' => array(
- 'person' => array('vorname', 'nachname'),
- 'global' => array('mailAnXversandt'),
- 'ui' => array('bitteEintragWaehlen')
- ),
- 'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
- 'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
- )
+ $includesArray = array(
+ 'title' => 'Info Center',
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'jquerycheckboxes1' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
+ 'tablesorter2' => true,
+ 'ajaxlib' => true,
+ 'bootstrapper' => true,
+ 'filterwidget' => true,
+ 'navigationwidget' => true,
+ 'dialoglib' => true,
+ 'phrases' => array(
+ 'person' => array('vorname', 'nachname'),
+ 'global' => array('mailAnXversandt'),
+ 'ui' => array('bitteEintragWaehlen')
+ ),
+ 'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
+ 'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
);
+
+ $this->load->view('templates/FHC-Header', $includesArray);
?>
-
widgetlib->widget('NavigationWidget'); ?>
@@ -46,6 +45,6 @@
-
-load->view('templates/FHC-Footer'); ?>
+load->view('templates/FHC-Footer', $includesArray); ?>
+
diff --git a/application/views/system/infocenter/infocenterAbgewiesen.php b/application/views/system/infocenter/infocenterAbgewiesen.php
new file mode 100644
index 000000000..55987a3bd
--- /dev/null
+++ b/application/views/system/infocenter/infocenterAbgewiesen.php
@@ -0,0 +1,50 @@
+load->view(
+ 'templates/FHC-Header',
+ array(
+ 'title' => 'Info Center',
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'jquerycheckboxes1' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
+ 'tablesorter2' => true,
+ 'ajaxlib' => true,
+ 'filterwidget' => true,
+ 'navigationwidget' => true,
+ 'dialoglib' => true,
+ 'phrases' => array(
+ 'person' => array('vorname', 'nachname'),
+ 'global' => array('mailAnXversandt'),
+ 'ui' => array('bitteEintragWaehlen')
+ ),
+ 'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
+ 'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
+ )
+ );
+?>
+
+
+
+
+ widgetlib->widget('NavigationWidget'); ?>
+
+
+
+
+load->view('templates/FHC-Footer'); ?>
diff --git a/application/views/system/infocenter/infocenterAbgewiesenData.php b/application/views/system/infocenter/infocenterAbgewiesenData.php
new file mode 100644
index 000000000..40582a668
--- /dev/null
+++ b/application/views/system/infocenter/infocenterAbgewiesenData.php
@@ -0,0 +1,89 @@
+config->load('infocenter');
+ $ABGEWIESENEN_STATUS = '\'Abgewiesener\'';
+ $STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
+ $ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
+ $STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
+ $LOGDATA_NAME = '\'Message sent\'';
+ $LOGDATA_VON = '\'online\'';
+
+$query = '
+ SELECT
+ p.person_id AS "PersonID",
+ ps.prestudent_id AS "PreStudentID",
+ p.vorname AS "Vorname",
+ p.nachname AS "Nachname",
+ so.studiengangkurzbzlang as "Studiengang",
+ pss.insertamum AS "AbgewiesenAm",
+ (
+ SELECT l.zeitpunkt
+ FROM system.tbl_log l
+ WHERE l.person_id = p.person_id
+ AND '. $LOGDATA_NAME .' = (
+ SELECT l.logdata->>\'name\'
+ FROM system.tbl_log l
+ WHERE l.person_id = p.person_id
+ ORDER BY l.log_id DESC
+ LIMIT 1
+ )
+ AND '. $LOGDATA_VON .' = (
+ SELECT l.insertvon
+ FROM system.tbl_log l
+ WHERE l.person_id = p.person_id
+ ORDER BY l.log_id DESC
+ LIMIT 1
+ )
+ AND l.zeitpunkt >= pss.insertamum
+ ORDER BY l.log_id DESC
+ LIMIT 1
+ ) AS "Nachricht"
+ FROM
+ public.tbl_prestudentstatus pss
+ JOIN public.tbl_prestudent ps USING(prestudent_id)
+ JOIN public.tbl_person p USING(person_id)
+ JOIN public.tbl_studiengang sg USING(studiengang_kz)
+ JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
+ WHERE pss.status_kurzbz = '. $ABGEWIESENEN_STATUS .'
+ AND pss.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
+ AND (sg.typ IN ('. $STUDIENGANG_TYP .')
+ OR
+ sg.studiengang_kz IN ('. $ADDITIONAL_STG .')
+ )
+ ORDER BY "AbgewiesenAm" DESC';
+
+ $filterWidgetArray = array(
+ 'query' => $query,
+ 'app' => InfoCenter::APP,
+ 'datasetName' => 'abgewiesen',
+ 'filter_id' => $this->input->get('filter_id'),
+ 'requiredPermissions' => 'infocenter',
+ 'datasetRepresentation' => 'tablesorter',
+ 'columnsAliases' => array(
+ 'PersonID',
+ 'PreStudentID',
+ 'Vorname',
+ 'Nachname',
+ 'Studiengang',
+ 'Abgewiesen am',
+ 'Nachricht'
+ ),
+
+ 'formatRow' => function($datasetRaw) {
+ if ($datasetRaw->{'Nachricht'} === null)
+ {
+ $datasetRaw->{'Nachricht'} = 'Nein';
+ }
+ else
+ {
+ $datasetRaw->{'Nachricht'} = 'Ja';
+ }
+
+ $datasetRaw->{'AbgewiesenAm'} = date_format(date_create($datasetRaw->{'AbgewiesenAm'}),'Y-m-d H:i');
+ return $datasetRaw;
+ }
+ );
+
+ echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
+?>
diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php
index d0e0a7126..de2bd1bca 100644
--- a/application/views/system/infocenter/infocenterData.php
+++ b/application/views/system/infocenter/infocenterData.php
@@ -6,7 +6,7 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
- $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\', \'Interessent rejected\'';
+ $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$LOGDATA_NAME_PARKED = '\'Parked\'';
$LOGDATA_NAME_ONHOLD = '\'Onhold\'';
$LOGTYPE_KURZBZ = '\'Processstate\'';
@@ -14,6 +14,8 @@
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
+ $ORG_NAME = '\'InfoCenter\'';
+ $ONLINE = '\'online\'';
$query = '
SELECT
@@ -33,7 +35,7 @@
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
) AS "LastAction",
(
@@ -42,7 +44,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
) AS "LastActionType",
(
@@ -54,12 +56,17 @@
a.dokument_kurzbz in ('.$AKTE_TYP.')
) AS "AnzahlAkte",
(
- SELECT l.insertvon
+ 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
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
) AS "User/Operator",
(
@@ -134,11 +141,12 @@
LIMIT 1
) AS "AnzahlAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
-- AND pss.bestaetigtam IS NULL
@@ -159,11 +167,12 @@
LIMIT 1
) AS "StgAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NULL
AND pss.bestaetigtam IS NULL
@@ -211,11 +220,12 @@
LIMIT 1
) AS "AnzahlStgNichtAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
AND pss.bewerbung_abgeschicktamum IS NULL
AND ps.person_id = p.person_id
@@ -248,19 +258,36 @@
ORDER BY ps.zgvmanation DESC NULLS LAST, ps.prestudent_id DESC
LIMIT 1
) AS "ZGVMNation",
+ (
+ SELECT upper(tbl_nation.nationengruppe_kurzbz)
+ FROM public.tbl_prestudent ps
+ JOIN bis.tbl_nation ON ps.zgvnation = tbl_nation.nation_code
+ WHERE ps.person_id = p.person_id
+ ORDER BY ps.zgvnation DESC NULLS LAST, ps.prestudent_id DESC
+ LIMIT 1
+ ) AS "ZGVNationGruppe",
+ (
+ SELECT upper(tbl_nation.nationengruppe_kurzbz)
+ FROM public.tbl_prestudent ps
+ JOIN bis.tbl_nation ON ps.zgvmanation = tbl_nation.nation_code
+ WHERE ps.person_id = p.person_id
+ ORDER BY ps.zgvmanation DESC NULLS LAST, ps.prestudent_id DESC
+ LIMIT 1
+ ) AS "ZGVMNationGruppe",
(
SELECT tbl_organisationseinheit.bezeichnung
FROM public.tbl_benutzerfunktion
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
+ AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
)
LIMIT 1
@@ -269,8 +296,10 @@
LEFT JOIN (
SELECT tpl.person_id,
tpl.zeitpunkt,
- tpl.uid AS lockuser
+ sp.nachname AS lockuser
FROM system.tbl_person_lock tpl
+ JOIN public.tbl_benutzer sb USING (uid)
+ JOIN public.tbl_person sp ON sb.person_id = sp.person_id
WHERE tpl.app = '.$APP.'
) pl USING(person_id)
LEFT JOIN (
@@ -352,6 +381,8 @@
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'aktiv').')',
'ZGV Nation BA',
'ZGV Nation MA',
+ 'ZGV Gruppe BA',
+ 'ZGV Gruppe MA',
'InfoCenter Mitarbeiter'
),
'formatRow' => function($datasetRaw) {
@@ -408,6 +439,10 @@
{
$datasetRaw->{'OnholdDate'} = '-';
}
+ else
+ {
+ $datasetRaw->{'OnholdDate'} = date_format(date_create($datasetRaw->{'OnholdDate'}), 'Y-m-d H:i');
+ }
if ($datasetRaw->{'StgAbgeschickt'} == null)
{
@@ -439,13 +474,23 @@
$datasetRaw->{'ZGVMNation'} = '-';
}
- if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
+ if ($datasetRaw->{'ZGVNationGruppe'} == null)
{
- $datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
+ $datasetRaw->{'ZGVNationGruppe'} = '-';
+ }
+
+ if ($datasetRaw->{'ZGVMNationGruppe'} == null)
+ {
+ $datasetRaw->{'ZGVMNationGruppe'} = '-';
+ }
+
+ if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
+ {
+ $datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
else
{
- $datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
+ $datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
}
return $datasetRaw;
diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php
index 30acb8617..158feeb2c 100644
--- a/application/views/system/infocenter/infocenterDetails.php
+++ b/application/views/system/infocenter/infocenterDetails.php
@@ -1,216 +1,230 @@
load->view(
- 'templates/FHC-Header',
- array(
- 'title' => 'InfocenterDetails',
- 'jquery' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'jqueryui' => true,
- 'dialoglib' => true,
- 'ajaxlib' => true,
- 'tablesorter' => true,
- 'tinymce' => true,
- 'sbadmintemplate' => true,
- 'addons' => true,
- 'navigationwidget' => true,
- 'udfs' => true,
- 'widgets' => true,
- 'customCSSs' => array(
- 'public/css/sbadmin2/admintemplate.css',
- 'public/css/sbadmin2/tablesort_bootstrap.css',
- 'public/css/infocenter/infocenterDetails.css'
+ $includesArray = array(
+ 'title' => 'InfocenterDetails',
+ 'jquery3' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'jqueryui1' => true,
+ 'dialoglib' => true,
+ 'ajaxlib' => true,
+ 'tablesorter2' => true,
+ 'tinymce4' => true,
+ 'sbadmintemplate3' => true,
+ 'addons' => true,
+ 'navigationwidget' => true,
+ 'udfs' => true,
+ 'widgets' => true,
+ 'customCSSs' => array(
+ 'public/css/sbadmin2/admintemplate.css',
+ 'public/css/sbadmin2/tablesort_bootstrap.css',
+ 'public/css/infocenter/infocenterDetails.css'
+ ),
+ 'customJSs' => array(
+ 'public/js/bootstrapper.js',
+ 'public/js/tablesort/tablesort.js',
+ 'public/js/infocenter/messageList.js',
+ 'public/js/infocenter/infocenterDetails.js',
+ 'public/js/infocenter/zgvUeberpruefung.js',
+ 'public/js/infocenter/docUeberpruefung.js'
+ ),
+ 'phrases' => array(
+ 'infocenter' => array(
+ 'notizHinzufuegen',
+ 'notizAendern',
+ 'bewerberParken',
+ 'bewerberAusparken',
+ 'nichtsZumAusparken',
+ 'fehlerBeimAusparken',
+ 'fehlerBeimParken',
+ 'bewerberGeparktBis',
+ 'bewerberOnHold',
+ 'bewerberOnHoldEntfernen',
+ 'bewerberOnHoldBis',
+ 'nichtsZumEntfernen',
+ 'fehlerBeimEntfernen',
+ 'rueckstelldatumUeberschritten',
+ 'parkenZurueckstellenInfo',
+ 'zgvInPruefung',
+ 'zgvErfuellt',
+ 'zgvNichtErfuellt',
+ 'zgvErfuelltPruefung',
+ 'datumUngueltig',
+ 'nachreichDatumNichtVergangenheit'
),
- 'customJSs' => array(
- 'public/js/bootstrapper.js',
- 'public/js/tablesort/tablesort.js',
- 'public/js/infocenter/messageList.js',
- 'public/js/infocenter/infocenterDetails.js',
- 'public/js/infocenter/zgvUeberpruefung.js',
- 'public/js/infocenter/docUeberpruefung.js'
+ 'ui' => array(
+ 'gespeichert',
+ 'fehlerBeimSpeichern'
),
- 'phrases' => array(
- 'infocenter' => array(
- 'notizHinzufuegen',
- 'notizAendern',
- 'bewerberParken',
- 'bewerberAusparken',
- 'nichtsZumAusparken',
- 'fehlerBeimAusparken',
- 'fehlerBeimParken',
- 'bewerberGeparktBis',
- 'bewerberOnHold',
- 'bewerberOnHoldEntfernen',
- 'bewerberOnHoldBis',
- 'nichtsZumEntfernen',
- 'fehlerBeimEntfernen',
- 'rueckstelldatumUeberschritten',
- 'parkenZurueckstellenInfo',
- 'zgvInPruefung',
- 'zgvErfuellt',
- 'zgvNichtErfuellt',
- 'zgvErfuelltPruefung',
- 'datumUngueltig',
- 'nachreichDatumNichtVergangenheit'
- ),
- 'ui' => array(
- 'gespeichert',
- 'fehlerBeimSpeichern'
- ),
- 'global' => array(
- 'bis',
- 'zeilen'
- )
+ 'global' => array(
+ 'bis',
+ 'zeilen'
)
)
);
+
+ $this->load->view('templates/FHC-Header', $includesArray);
?>
-
-
+
+
+
+
+
+
+
+ + Abgewiesene ++
+ load->view('system/infocenter/infocenterAbgewiesenData.php'); ?>
+
+
-
- widgetlib->widget('NavigationWidget'); ?>
-
-
@@ -318,17 +403,17 @@
-
-
-
-
-
- - Infocenter Details: vorname.' '.$stammdaten->nachname ?> --
-
@@ -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 "
- p->t('global', 'wirdBearbeitetVon').': ';
- echo $lockedby;
- if ($origin_page == 'index'):
- $unlockpath = 'unlockPerson/'.$stammdaten->person_id;
- $unlockpath .= '?fhc_controller_id='.$fhc_controller_id;
- $unlockpath .= '&filter_id='.$prev_filter_id;
- ?>
-
-
- p->t('ui', 'freigeben')) ?>
-
+
+
+ widgetlib->widget('NavigationWidget'); ?>
+
+
+
diff --git a/application/views/system/infocenter/infocenterZgvUeberpruefung.php b/application/views/system/infocenter/infocenterZgvUeberpruefung.php
index e0b8f9eae..7b285edb2 100644
--- a/application/views/system/infocenter/infocenterZgvUeberpruefung.php
+++ b/application/views/system/infocenter/infocenterZgvUeberpruefung.php
@@ -3,13 +3,13 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Info Center',
- 'jquery' => true,
- 'jqueryui' => true,
- 'jquerycheckboxes' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
- 'tablesorter' => true,
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'jquerycheckboxes1' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
+ 'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
diff --git a/application/views/system/infocenter/infocenterZgvUeberpruefungData.php b/application/views/system/infocenter/infocenterZgvUeberpruefungData.php
index 6614e6b2a..5bfa5b078 100644
--- a/application/views/system/infocenter/infocenterZgvUeberpruefungData.php
+++ b/application/views/system/infocenter/infocenterZgvUeberpruefungData.php
@@ -4,11 +4,6 @@ $APP = '\'infocenter\'';
$INTERESSENT_STATUS = '\'Interessent\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
-
-$uid = get_uid();
-$rechte = new benutzerberechtigung();
-$rechte->getBerechtigungen($uid);
-$oeKurz = $rechte->getOEkurzbz('lehre/zgvpruefung');
$oeKurz = '\''. implode('\',\'', $oeKurz) . '\'';
$query = '
diff --git a/application/views/system/infocenter/studiengangZgvInfo.php b/application/views/system/infocenter/studiengangZgvInfo.php
index 1b699d634..8b6d1a636 100644
--- a/application/views/system/infocenter/studiengangZgvInfo.php
+++ b/application/views/system/infocenter/studiengangZgvInfo.php
@@ -3,10 +3,10 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'ZGV Info',
- 'jquery' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
+ 'jquery3' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
'customCSSs' => 'public/css/sbadmin2/admintemplate_contentonly.css'
)
);
@@ -17,7 +17,11 @@ $this->load->view(
+
+
-
+
-
+
+ + Infocenter Details: vorname.' '.$stammdaten->nachname ?> ++
+
+ p->t('global', 'wirdBearbeitetVon').': ';
+ echo $lockedby;
+ if ($origin_page == 'index'):
+ $unlockpath = 'unlockPerson/'.$stammdaten->person_id;
+ $unlockpath .= '?fhc_controller_id='.$fhc_controller_id;
+ $unlockpath .= '&filter_id='.$prev_filter_id;
+ ?>
+
+
+ p->t('ui', 'freigeben')) ?>
+
+
+
+
-
-
-
+
-
-
-
-
-
-
-
-
- p->t('global', 'stammdaten')) ?>-
- load->view('system/infocenter/stammdaten.php'); ?>
- load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
-
-
-
+
+
+load->view('templates/FHC-Footer', $includesArray); ?>
-load->view('templates/FHC-Footer'); ?>
diff --git a/application/views/system/infocenter/infocenterFreigegeben.php b/application/views/system/infocenter/infocenterFreigegeben.php
index 4855e5cd6..d3e44ea95 100644
--- a/application/views/system/infocenter/infocenterFreigegeben.php
+++ b/application/views/system/infocenter/infocenterFreigegeben.php
@@ -3,13 +3,13 @@
'templates/FHC-Header',
array(
'title' => 'Info Center',
- 'jquery' => true,
- 'jqueryui' => true,
- 'jquerycheckboxes' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
- 'tablesorter' => true,
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'jquerycheckboxes1' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
+ 'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php
index 26c30d718..13e1d5549 100644
--- a/application/views/system/infocenter/infocenterFreigegebenData.php
+++ b/application/views/system/infocenter/infocenterFreigegebenData.php
@@ -5,13 +5,16 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
- $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
+ $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$REJECTED_STATUS = '\'Abgewiesener\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
+ $ORG_NAME = '\'InfoCenter\'';
+ $IDENTITY = '\'identity\'';
+ $ONLINE = '\'online\'';
- $query = '
+$query = '
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
@@ -27,7 +30,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
) AS "LastAction",
(
@@ -36,16 +39,21 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
) AS "LastActionType",
(
- SELECT l.insertvon
+ 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
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
) AS "User/Operator",
(
@@ -102,11 +110,12 @@
LIMIT 1
) AS "AnzahlAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sp.orgform_kurzbz)), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
@@ -124,11 +133,12 @@
LIMIT 1
) AS "StgAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
AND ps.person_id = p.person_id
@@ -172,7 +182,7 @@
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",
(
@@ -193,21 +203,25 @@
LIMIT 1
) AS "ReihungstestApplied",
(
- SELECT rtp.datum
+ 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 (
SELECT rtp.person_id,
rt.studiensemester_kurzbz,
rtp.teilgenommen,
- rt.datum
+ rt.datum,
+ 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",
@@ -231,23 +245,34 @@
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
+ AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
)
LIMIT 1
- ) AS "InfoCenterMitarbeiter"
+ ) AS "InfoCenterMitarbeiter",
+ (
+ SELECT akte.akte_id
+ FROM public.tbl_akte akte
+ JOIN public.tbl_dokument USING (dokument_kurzbz)
+ WHERE akte.person_id = p.person_id
+ AND dokument_kurzbz = '. $IDENTITY .'
+ LIMIT 1
+ ) AS "AktenId"
FROM public.tbl_person p
LEFT JOIN (
SELECT tpl.person_id,
tpl.zeitpunkt,
- tpl.uid AS lockuser
+ sp.nachname AS lockuser
FROM system.tbl_person_lock tpl
+ JOIN public.tbl_benutzer sb USING (uid)
+ JOIN public.tbl_person sp ON sb.person_id = sp.person_id
WHERE tpl.app = '.$APP.'
) pl USING(person_id)
WHERE
@@ -311,7 +336,8 @@
'Reihungstest date',
'ZGV Nation BA',
'ZGV Nation MA',
- 'InfoCenter Mitarbeiter'
+ 'InfoCenter Mitarbeiter',
+ 'Identitätsnachweis'
),
'formatRow' => function($datasetRaw) {
@@ -391,14 +417,10 @@
$datasetRaw->{'ReihungstestApplied'} = 'Nein';
}
- if ($datasetRaw->{'ReihungstestDate'} == null)
+ if ($datasetRaw->{'ReihungstestDate'} == '')
{
$datasetRaw->{'ReihungstestDate'} = '-';
}
- else
- {
- $datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d');
- }
if ($datasetRaw->{'ZGVNation'} == null)
{
@@ -410,14 +432,27 @@
$datasetRaw->{'ZGVMNation'} = '-';
}
- if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
- {
- $datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
- }
- else
+ if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
+ else
+ {
+ $datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
+ }
+
+ if ($datasetRaw->{'AktenId'} !== null)
+ {
+ $datasetRaw->{'AktenId'} = sprintf(
+ 'Identitätsnachweis',
+ $datasetRaw->{'AktenId'}
+ );
+ }
+ else
+ {
+ $datasetRaw->{'AktenId'} = '-';
+ }
+
return $datasetRaw;
},
diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviert.php b/application/views/system/infocenter/infocenterReihungstestAbsolviert.php
index f2d838fac..71a7a1d5e 100644
--- a/application/views/system/infocenter/infocenterReihungstestAbsolviert.php
+++ b/application/views/system/infocenter/infocenterReihungstestAbsolviert.php
@@ -3,13 +3,13 @@
'templates/FHC-Header',
array(
'title' => 'Info Center',
- 'jquery' => true,
- 'jqueryui' => true,
- 'jquerycheckboxes' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
- 'tablesorter' => true,
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'jquerycheckboxes1' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
+ 'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
index 81ddd2594..ea1fab83c 100644
--- a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
+++ b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
@@ -5,11 +5,12 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
- $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
+ $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
+ $ORG_NAME = '\'InfoCenter\'';
- $query = '
+$query = '
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
@@ -25,7 +26,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
) AS "LastAction",
(
@@ -34,7 +35,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
) AS "User/Operator",
(
@@ -84,11 +85,12 @@
LIMIT 1
) AS "AnzahlAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sp.orgform_kurzbz)), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
@@ -182,13 +184,14 @@
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
+ AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
- ORDER BY l.zeitpunkt DESC
+ ORDER BY l.log_id DESC
LIMIT 1
)
LIMIT 1
@@ -347,13 +350,13 @@
$datasetRaw->{'ZGVMNation'} = '-';
}
- if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
+ if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
{
- $datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
+ $datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
else
{
- $datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
+ $datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
}
return $datasetRaw;
diff --git a/application/views/system/infocenter/infocenterZgvDetails.php b/application/views/system/infocenter/infocenterZgvDetails.php
index 62fefbec8..cf3ffad8b 100644
--- a/application/views/system/infocenter/infocenterZgvDetails.php
+++ b/application/views/system/infocenter/infocenterZgvDetails.php
@@ -3,15 +3,15 @@
'templates/FHC-Header',
array(
'title' => 'InfocenterZgvDetails',
- 'jquery' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'jqueryui' => true,
+ 'jquery3' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'jqueryui1' => true,
'dialoglib' => true,
'ajaxlib' => true,
- 'tablesorter' => true,
- 'tinymce' => true,
- 'sbadmintemplate' => true,
+ 'tablesorter2' => true,
+ 'tinymce4' => true,
+ 'sbadmintemplate3' => true,
'addons' => true,
'navigationwidget' => true,
'udfs' => true,
@@ -129,15 +129,11 @@
-
+
-
+
-
+
-
-
+
-
- - p->t('infocenter', 'dokumentenpruefung')) ?> --
- load->view('system/infocenter/dokpruefung.php'); ?>
-
+
+
- load->view('system/infocenter/dokNachzureichend.php'); ?>
+
+
-
-
+
+
+ + p->t('global', 'bewerberVorhanden') . ':'; ?> ++
+ person_id . '
+
+ '; + } + ?> + +
+
-
+
-
+
-
+
- p->t('global', 'stammdaten')) ?>
-
+
-
-
-
-
-
+
+
-
+
- load->view('system/infocenter/messageList.php', $messages);
- ?>
+
+
+ load->view('system/infocenter/stammdaten.php'); ?>
+ load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
+
+
-
+
-
+
-
-
+
-
-
-
+
-
-
-
-
- load->view('system/infocenter/addNotiz.php'); ?>
+
+
-
-
+
-
+
-
+
+
-
+
-
+
-
+
-
+ load->view('system/infocenter/addNotiz.php'); ?>
+
+
+ load->view('system/infocenter/notizen.php'); ?>
+
- load->view('system/infocenter/notizen.php'); ?>
-
-
-
-
-
- load->view('system/infocenter/logs.php'); ?>
-
-
+
+
+
+ load->view('system/infocenter/logs.php'); ?>
+
+
-
p->t('infocenter', 'zugangsvoraussetzungen'); ?> -++ p->t('infocenter', 'zugangsvoraussetzungen'); ?> + - + +
@@ -35,3 +39,4 @@ $this->load->view(
load->view('templates/FHC-Footer'); ?>
+
diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php
index 253145557..2e6ea90d2 100644
--- a/application/views/system/infocenter/zgvpruefungen.php
+++ b/application/views/system/infocenter/zgvpruefungen.php
@@ -124,6 +124,32 @@
+ 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 = '';
+ ?>
- widgetlib->widget(
- 'Zgv_widget',
- array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code),
- array('name' => 'zgv', 'id' => 'zgv_'.$zgvpruefung->prestudent_id)
- ); ?>
+ prestudent_id . "' name='zgv' class='form-control'>";
+ $selectedDefault = (is_null($zgvpruefung->zgv_code) ? 'selected' : '');
+ echo "";
+ foreach ($all_zgvs as $zgv)
+ {
+ $selected = ($zgvpruefung->zgv_code === $zgv->zgv_code) ? 'selected' : '';
+ $aktiv = '';
+ $class = '';
+ if (!$zgv->aktiv)
+ {
+ $aktiv = '(inaktiv)';
+ $class = 'gesperrtoption';
+ }
+
+ echo "";
+ }
+ echo "";
+ endif;?>
@@ -239,11 +278,26 @@
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 "
@@ -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 "
-
-
@@ -336,7 +421,7 @@
prestudentUdfs)) + if (isset($zgvpruefung->prestudentUdfs) && $studiengangtyp !== 'l') { echo $this->udflib->UDFWidget( array( @@ -362,6 +447,8 @@
@@ -408,6 +476,7 @@
- - Fehler Monitoring + p->t('fehlermonitoring', 'fehlerMonitoring') ?>
+
+ widgetlib->widget('NavigationWidget'); ?>
+
+
+
+
+load->view('templates/FHC-Footer'); ?>
diff --git a/application/views/system/issues/issuesZustaendigkeitenData.php b/application/views/system/issues/issuesZustaendigkeitenData.php
new file mode 100644
index 000000000..d4cedd192
--- /dev/null
+++ b/application/views/system/issues/issuesZustaendigkeitenData.php
@@ -0,0 +1,84 @@
+ $query,
+ 'app' => 'core',
+ 'datasetName' => 'fehlerZustaendigkeiten',
+ 'filter_id' => $this->input->get('filter_id'),
+ 'tableUniqueId' => 'issuesZustaendigkeiten',
+ 'requiredPermissions' => 'admin',
+ 'datasetRepresentation' => 'tablesorter',
+ 'additionalColumns' => array('Delete'),
+ 'columnsAliases' => array(
+ 'ID',
+ ucfirst($this->p->t('fehlermonitoring', 'fehlercode')),
+ ucfirst($this->p->t('fehlermonitoring', 'fehlercodeExtern')),
+ ucfirst($this->p->t('fehlermonitoring', 'fehlerkurzbz')),
+ ucfirst($this->p->t('fehlermonitoring', 'fehlertext')),
+ ucfirst($this->p->t('fehlermonitoring', 'fehlertyp')),
+ 'app',
+ 'PersonId',
+ ucfirst($this->p->t('person', 'vorname')),
+ ucfirst($this->p->t('person', 'nachname')),
+ ucfirst($this->p->t('fehlermonitoring', 'oeKurzbz')),
+ ucfirst($this->p->t('fehlermonitoring', 'oeBezeichnung')),
+ ucfirst($this->p->t('fehlermonitoring', 'funktionKurzbz')),
+ ucfirst($this->p->t('fehlermonitoring', 'funktionBeschreibung'))
+ ),
+ 'formatRow' => function($datasetRaw) {
+
+ $datasetRaw->{'Delete'} =
+ "
+
+
+
+
+
+
+
+
+ + p->t('fehlermonitoring', 'fehlerZustaendigkeiten') ?> ++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ load->view('system/issues/issuesZustaendigkeitenData.php'); ?>
+
+
+
+
- widgetlib->widget('NavigationWidget'); ?>
+
+
-
-
-
-load->view('templates/FHC-Footer'); ?>
+load->view('templates/FHC-Footer', $includesArray); ?>
+
diff --git a/application/views/system/logs/logsViewerData.php b/application/views/system/logs/logsViewerData.php
deleted file mode 100644
index f8476df6a..000000000
--- a/application/views/system/logs/logsViewerData.php
+++ /dev/null
@@ -1,66 +0,0 @@
- '
- SELECT wsl.webservicelog_id AS "LogId",
- wsl.request_id AS "RequestId",
- wsl.execute_time AS "ExecutionTime",
- wsl.execute_user AS "ExecutedBy",
- wsl.beschreibung AS "Description",
- wsl.request_data AS "Data",
- wsl.webservicetyp_kurzbz AS "WebserviceType"
- FROM system.tbl_webservicelog wsl
- ORDER BY wsl.execute_time DESC
- ',
- 'requiredPermissions' => 'admin',
- 'datasetRepresentation' => 'tablesorter',
- 'columnsAliases' => array(
- 'Log id',
- 'Request id',
- 'Execution time',
- 'Executed by',
- 'Producer',
- 'Data',
- 'Webservice type'
- ),
- 'formatRow' => function($datasetRaw) {
-
- $datasetRaw->ExecutionTime = date_format(date_create($datasetRaw->ExecutionTime), 'd.m.Y H:i:s:u');
-
- return $datasetRaw;
- },
- 'markRow' => function($datasetRaw) {
-
- $mark = '';
-
- if (strpos($datasetRaw->RequestId, 'error') != false)
- {
- $mark = 'text-red';
- }
-
- if (strpos($datasetRaw->RequestId, 'info') != false)
- {
- $mark = 'text-green';
- }
-
- if (strpos($datasetRaw->RequestId, 'warning') != false)
- {
- $mark = 'text-orange';
- }
-
- if (strpos($datasetRaw->RequestId, 'debug') != false)
- {
- $mark = 'text-info';
- }
-
- return $mark;
- }
- );
-
- $filterWidgetArray['app'] = 'core';
- $filterWidgetArray['datasetName'] = 'logs';
- $filterWidgetArray['filter_id'] = $this->input->get('filter_id');
-
- echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
-?>
-
diff --git a/application/views/system/logs/testSearch.php b/application/views/system/logs/testSearch.php
new file mode 100644
index 000000000..882b953f5
--- /dev/null
+++ b/application/views/system/logs/testSearch.php
@@ -0,0 +1,60 @@
+ 'Test Search',
+ 'jquery3' => true,
+ 'bootstrap5' => true,
+ 'fontawesome6' => true,
+ 'tablesorter2' => true,
+ 'vue3' => true,
+ 'ajaxlib' => true,
+ 'jqueryui1' => true,
+ 'filtercomponent' => true,
+ 'navigationcomponent' => true,
+ 'phrases' => array(
+ 'global' => array('mailAnXversandt'),
+ 'ui' => array('bitteEintragWaehlen')
+ ),
+ 'customCSSs' => array(
+ 'public/css/components/verticalsplit.css',
+ 'public/css/components/searchbar.css',
+ ),
+ 'customJSs' => array('vendor/axios/axios/axios.min.js'),
+ 'customJSModules' => array('public/js/apps/TestSearch.js')
+ );
+
+ $this->load->view('templates/FHC-Header', $includesArray);
+?>
+
+
-
-
-
- - Job Logs Viewer --
- load->view('system/logs/logsViewerData.php'); ?>
-
+
+
+
+
+
+
+
+
+load->view('templates/FHC-Footer', $includesArray); ?>
+
diff --git a/application/views/system/messages/ajaxRead.php b/application/views/system/messages/ajaxRead.php
index f7d60a68d..2cb88708e 100644
--- a/application/views/system/messages/ajaxRead.php
+++ b/application/views/system/messages/ajaxRead.php
@@ -3,16 +3,16 @@
'templates/FHC-Header',
array(
'title' => 'Read personal messages',
- 'jquery' => true,
- 'jqueryui' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
- 'momentjs' => true,
- 'tabulator' => true,
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
+ 'momentjs2' => true,
+ 'tabulator4' => true,
'ajaxlib' => true,
'dialoglib' => true,
- 'tinymce' => true,
+ 'tinymce4' => true,
'phrases' => array('global', 'ui'),
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/read.js')
diff --git a/application/views/system/messages/ajaxWrite.php b/application/views/system/messages/ajaxWrite.php
index de3d79806..3b1582f22 100644
--- a/application/views/system/messages/ajaxWrite.php
+++ b/application/views/system/messages/ajaxWrite.php
@@ -3,14 +3,14 @@
'templates/FHC-Header',
array(
'title' => 'Write a new message',
- 'jquery' => true,
- 'jqueryui' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
'ajaxlib' => true,
'dialoglib' => true,
- 'tinymce' => true,
+ 'tinymce4' => true,
'phrases' => array('global', 'ui'),
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/write.js')
diff --git a/application/views/system/messages/ajaxWriteReply.php b/application/views/system/messages/ajaxWriteReply.php
index 3721565e9..0a496c93e 100644
--- a/application/views/system/messages/ajaxWriteReply.php
+++ b/application/views/system/messages/ajaxWriteReply.php
@@ -3,14 +3,14 @@
'templates/FHC-Header',
array(
'title' => 'Reply to a message',
- 'jquery' => true,
- 'jqueryui' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
'ajaxlib' => true,
'dialoglib' => true,
- 'tinymce' => true,
+ 'tinymce4' => true,
'phrases' => array('global', 'ui'),
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/writeReply.js')
diff --git a/application/views/system/messages/htmlMessageSentError.php b/application/views/system/messages/htmlMessageSentError.php
index 90191fcf0..f8a0f8491 100644
--- a/application/views/system/messages/htmlMessageSentError.php
+++ b/application/views/system/messages/htmlMessageSentError.php
@@ -3,10 +3,10 @@
'templates/FHC-Header',
array(
'title' => 'Message sent failure - Fehler beim Senden der Nachricht',
- 'jquery' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
+ 'jquery3' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css')
)
);
diff --git a/application/views/system/messages/htmlMessageSentSuccess.php b/application/views/system/messages/htmlMessageSentSuccess.php
index 48409a5f4..91eeab519 100644
--- a/application/views/system/messages/htmlMessageSentSuccess.php
+++ b/application/views/system/messages/htmlMessageSentSuccess.php
@@ -3,10 +3,10 @@
'templates/FHC-Header',
array(
'title' => 'Message sent successfully - Nachricht erfolgreich versandt!',
- 'jquery' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
+ 'jquery3' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css')
)
);
diff --git a/application/views/system/messages/htmlRead.php b/application/views/system/messages/htmlRead.php
index 5413af9f4..35e162b70 100644
--- a/application/views/system/messages/htmlRead.php
+++ b/application/views/system/messages/htmlRead.php
@@ -3,10 +3,10 @@
'templates/FHC-Header',
array(
'title' => 'Read message - Lies die Nachricht',
- 'jquery' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'sbadmintemplate' => true,
+ 'jquery3' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'sbadmintemplate3' => true,
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css')
)
);
diff --git a/application/views/system/messages/htmlWriteReply.php b/application/views/system/messages/htmlWriteReply.php
index fa3390bfa..9106d802b 100644
--- a/application/views/system/messages/htmlWriteReply.php
+++ b/application/views/system/messages/htmlWriteReply.php
@@ -3,11 +3,11 @@
'templates/FHC-Header',
array(
'title' => 'Reply to a message',
- 'jquery' => true,
- 'bootstrap' => true,
- 'fontawesome' => true,
- 'tinymce' => true,
- 'sbadmintemplate' => true,
+ 'jquery3' => true,
+ 'bootstrap3' => true,
+ 'fontawesome4' => true,
+ 'tinymce4' => true,
+ 'sbadmintemplate3' => true,
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
'customJSs' => array('public/js/bootstrapper.js', 'public/js/messaging/messageWriteReply.js')
)
diff --git a/application/views/system/messages/htmlWriteTemplate.php b/application/views/system/messages/htmlWriteTemplate.php
index 95ab12630..761e05f96 100644
--- a/application/views/system/messages/htmlWriteTemplate.php
+++ b/application/views/system/messages/htmlWriteTemplate.php
@@ -3,13 +3,13 @@
'templates/FHC-Header',
array(
'title' => 'Write a new message or reply using templates',
- 'jquery' => true,
- 'jqueryui' => true,
- 'bootstrap' => true,
+ 'jquery3' => true,
+ 'jqueryui1' => true,
+ 'bootstrap3' => true,
'ajaxlib' => true,
- 'fontawesome' => true,
- 'tinymce' => true,
- 'sbadmintemplate' => true,
+ 'fontawesome4' => true,
+ 'tinymce4' => true,
+ 'sbadmintemplate3' => true,
'dialoglib' => true,
'widgets' => true,
'customCSSs' => array('public/css/sbadmin2/admintemplate_contentonly.css', 'public/css/messaging/message.css'),
@@ -160,7 +160,10 @@
widgetlib->widget(
'Dropdown_widget',
- array('elements' => success($recipientsArray), 'emptyElement' => ucfirst($this->p->t('global', 'empfaenger')).'...'),
+ array(
+ 'elements' => success($recipientsArray),
+ 'emptyElement' => ucfirst($this->p->t('global', 'empfaenger')).'...'
+ ),
array(
'name' => 'recipients[]',
'id' => 'recipients'
diff --git a/application/views/system/phrases/phraseinhaltEdit.php b/application/views/system/phrases/phraseinhaltEdit.php
index 594e8d9dd..388f1dd06 100644
--- a/application/views/system/phrases/phraseinhaltEdit.php
+++ b/application/views/system/phrases/phraseinhaltEdit.php
@@ -1,5 +1,5 @@
load->view('templates/header', array('title' => 'TemplateEdit', 'jquery' => true, 'textile' => true));
+ $this->load->view('templates/header', array('title' => 'TemplateEdit', 'jquery3' => true, 'textile' => true));
?>
+
+
+
+
+
+ + Test Search ++
+
+
+
diff --git a/application/views/system/vorlage/templatetextEdit.php b/application/views/system/vorlage/templatetextEdit.php
index 40ebd1599..42efc1519 100644
--- a/application/views/system/vorlage/templatetextEdit.php
+++ b/application/views/system/vorlage/templatetextEdit.php
@@ -1,5 +1,5 @@
load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce' => true, 'jsonforms' => true));
+ $this->load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce4' => true, 'jsonforms' => true));
?>
diff --git a/application/views/templates/FHC-Common.php b/application/views/templates/FHC-Common.php
new file mode 100644
index 000000000..dd1d8ae1c
--- /dev/null
+++ b/application/views/templates/FHC-Common.php
@@ -0,0 +1,46 @@
+
+config->item('index_page');
+ $calledPath = $this->router->directory.$this->router->class;
+ $calledMethod = $this->router->method;
+
+ // By default set the parameters to null
+ $customJSs = isset($customJSs) ? $customJSs : null;
+ $customJSModules = isset($customJSModules) ? $customJSModules : null;
+
+ // --------------------------------------------------------------------------------------------------------
+ // Javascripts
+
+ // Generates the global object to pass useful parameters to other javascripts
+ // NOTE: must be called before any other JS include
+ generateJSDataStorageObject($indexPage, $calledPath, $calledMethod);
+
+ // Generates the global object to pass phrases to javascripts
+ // NOTE: must be called before including the PhrasesLib.js
+ if ($phrases != null) generateJSPhrasesStorageObject($phrases);
+
+ // --------------------------------------------------------------------------------------------------------
+ // From vendor folder
+
+ // Axios V0.27
+ if ($axios027 === true) generateJSsInclude('vendor/axios/axios/dist/axios.min.js');
+
+ // Securimage JS
+ if ($captcha3 === true) generateJSsInclude('vendor/dapphp/securimage/securimage.js');
+
+ // jQuery V3
+ if ($jquery3 === true) generateJSsInclude('vendor/components/jquery/jquery.min.js');
+
+ // jQuery UI
+ if ($jqueryui1 === true)
+ {
+ generateJSsInclude('vendor/components/jqueryui/jquery-ui.min.js');
+ generateJSsInclude('vendor/components/jqueryui/ui/i18n/datepicker-de.js'); // datepicker german language file
+ }
+
+ // jQuery checkboxes
+ // NOTE: keep it after jQuery includes
+ if ($jquerycheckboxes1 === true) generateJSsInclude('vendor/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js');
+
+ // jQuery treetable
+ // NOTE: keep it after jQuery includes
+ if ($jquerytreetable3 === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js');
+
+ // Bootstrap 3 JS
+ // NOTE: to be kept after jQuery!
+ if ($bootstrap3 === true) generateJSsInclude('vendor/twbs/bootstrap3/dist/js/bootstrap.min.js');
+
+ // Bootstrap 5 JS
+ if ($bootstrap5 === true) generateJSsInclude('vendor/twbs/bootstrap5/dist/js/bootstrap.min.js');
+
+ // Moment JS
+ if ($momentjs2 === true)
+ {
+ generateJSsInclude('vendor/moment/momentjs/min/moment.min.js');
+ generateJSsInclude('vendor/moment/momentjs/locale/de-at.js');
+ generateJSsInclude('vendor/moment/momentjs/locale/en-ie.js');
+ }
+
+ // PivotUI JS
+ if ($pivotui2 === true) generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js');
+
+ // SB Admin 2 template JS
+ if ($sbadmintemplate3 === true)
+ {
+ generateJSsInclude('vendor/blackrockdigital/startbootstrap-sb-admin-2/vendor/metisMenu/metisMenu.min.js');
+ generateJSsInclude('vendor/blackrockdigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js');
+ generateBackwardCompatibleJSMsIe('vendor/afarkas/html5shiv/dist/html5shiv.min.js');
+ generateBackwardCompatibleJSMsIe('vendor/scottjehl/respond/dest/respond.min.js');
+ }
+
+ // Table sorter JS
+ if ($tablesorter2 === true)
+ {
+ generateJSsInclude('vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js');
+ generateJSsInclude('vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js');
+ generateJSsInclude('vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js');
+ }
+
+ // Tabulator 4 JS
+ if ($tabulator4 === true)
+ {
+ generateJSsInclude('vendor/olifolkerd/tabulator4/dist/js/tabulator.min.js');
+ generateJSsInclude('vendor/olifolkerd/tabulator4/dist/js/jquery_wrapper.min.js');
+ }
+
+ // Tabulator 5 JS
+ if ($tabulator5 === true) generateJSsInclude('vendor/olifolkerd/tabulator5/dist/js/tabulator.min.js');
+
+ // Tinymce 4 JS
+ if ($tinymce4 === true) generateJSsInclude('vendor/tinymce/tinymce4/tinymce.min.js');
+
+ // Tinymce 5 JS
+ if ($tinymce5 === true) generateJSsInclude('vendor/tinymce/tinymce5/tinymce.min.js');
+
+ // Vue 3 JS
+ if ($vue3 === true)
+ {
+ generateJSsInclude('vendor/vuejs/vuejs3/vue.global.prod.js');
+ generateJSsInclude('vendor/vuejs/vuerouter4/vue-router.global.js');
+ }
+
+ // PrimeVue
+ if ($primevue3)
+ {
+ generateJSsInclude('vendor/npm-asset/primevue/core/core.min.js');
+ generateJSsInclude('vendor/npm-asset/primevue/organizationchart/organizationchart.min.js');
+ generateJSsInclude('vendor/npm-asset/primevue/treetable/treetable.min.js');
+ generateJSsInclude('vendor/npm-asset/primevue/column/column.min.js');
+ generateJSsInclude('vendor/npm-asset/primevue/calendar/calendar.min.js');
+ generateJSsInclude('vendor/npm-asset/primevue/skeleton/skeleton.min.js');
+ }
+
+ // --------------------------------------------------------------------------------------------------------
+ // From public folder
+
+ // DialogLib JS
+ // NOTE: must be called before including others JS libraries that use it
+ if ($dialoglib === true) generateJSsInclude('public/js/DialogLib.js');
+
+ // AjaxLib JS
+ // NOTE: must be called before including others JS libraries that use it
+ if ($ajaxlib === true) generateJSsInclude('public/js/AjaxLib.js');
+
+ // Bootstrapper include
+ // NOTE: to be used only if you know what you are doing!
+ if ($bootstrapper === true) generateJSsInclude('public/js/bootstrapper.js');
+
+ // NavigationWidget JS
+ if ($navigationwidget === true) generateJSsInclude('public/js/NavigationWidget.js');
+
+ // FilterWidget JS
+ if ($filterwidget === true) generateJSsInclude('public/js/FilterWidget.js');
+
+ // PhrasesLib JS
+ if ($phrases != null) generateJSsInclude('public/js/PhrasesLib.js');
+
+ // TableWidget JS
+ if ($tablewidget === true) generateJSsInclude('public/js/TableWidget.js');
+
+ // User Defined Fields
+ if ($udfs === true) generateJSsInclude('public/js/UDFWidget.js');
+
+ // Load addon hooks JS
+ // NOTE: keep it as the last but one
+ if ($addons === true) generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
+
+ // Eventually required JS
+ // NOTE: keep it as the latest
+ generateJSsInclude($customJSs);
+ generateJSModulesInclude($customJSModules);
+?>
+ |
|---|