Merge branch 'master' into feature-18732/NeueZeitsperreMutterschutz

This commit is contained in:
ma0068
2022-11-02 15:31:39 +01:00
358 changed files with 10464 additions and 2809 deletions
+1
View File
@@ -24,6 +24,7 @@ application/logs/
application/models/extensions/
application/views/extensions/
application/widgets/extensions/
application/components/extensions/
public/extensions/
@@ -0,0 +1,19 @@
<?php
$filterCmptArray = array(
'app' => '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'
);
+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(
+27 -16
View File
@@ -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' => '',
@@ -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,16 +71,16 @@ $config['navigation_header'] = array(
'lehre/lehrauftrag_erteilen:r'
)
),
'zverfueg' => array(
'link' => site_url('lehre/lvplanung/AdminZeitverfuegbarkeit'),
'description' => 'Zeitverf&uuml;gbarkeit',
'expand' => true,
'sort' => 45,
'requiredPermissions' => array(
'lehre/zeitverfuegbarkeit:rw',
'lehre/zeitverfuegbarkeit:rw'
)
),
'zverfueg' => array(
'link' => site_url('lehre/lvplanung/AdminZeitverfuegbarkeit'),
'description' => 'Zeitverf&uuml;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',
@@ -98,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' => '',
@@ -119,6 +119,13 @@ $config['navigation_header'] = array(
'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'
)
)
),
@@ -129,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',
@@ -194,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' => '',
@@ -216,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'),
@@ -223,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' => '',
@@ -256,3 +266,4 @@ $config['navigation_menu']['system/issues/Issues/*'] = array(
'requiredPermissions' => array('admin:rw')
)
);
+23
View File
@@ -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);
}
}
}
}
@@ -0,0 +1,207 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* This controller operates between (interface) the JS (GUI) and the FilterCmptLib (back-end)
* Provides data to the ajax get calls about the filter component
* Listens to ajax post calls to change the filter data
* This controller works with JSON calls on the HTTP GET or POST and the output is always JSON
* NOTE: extends the FHC_Controller instead of the Auth_Controller because the FilterCmpt has its
* own permissions check
*/
class Filter extends FHC_Controller
{
const FILTER_UNIQUE_ID = 'filterUniqueId'; // Name of the filter cmpt unique id (mandatory)
const FILTER_TYPE = 'filterType'; // The filter type (PHP filter definition) used (mandatory)
const FILTER_ID = 'filterId'; // The id of the used filter (optional)
/**
* Calls the parent's constructor and loads the FilterCmptLib
*/
public function __construct()
{
parent::__construct();
// Loads authentication library and starts authentication
$this->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();
}
}
@@ -0,0 +1,51 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
*
*/
class SearchBar extends FHC_Controller
{
const SEARCHSTR_PARAM = 'searchstr';
const TYPES_PARAM = 'types';
/**
* Object initialization
*/
public function __construct()
{
parent::__construct();
// Load the library SearchBarLib
$this->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);
}
}
}
@@ -6,13 +6,13 @@ class requestAnrechnung extends Auth_Controller
{
const REQUEST_ANRECHNUNG_URI = '/lehre/anrechnung/RequestAnrechnung';
const APPROVE_ANRECHNUNG_URI = '/lehre/anrechnung/ApproveAnrechnungUebersicht';
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = 'inProgressKF';
const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
const ANRECHNUNGSTATUS_APPROVED = 'approved';
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
public function __construct()
{
// Set required permissions
@@ -23,22 +23,22 @@ class requestAnrechnung extends Auth_Controller
'download' => 'student/anrechnung_beantragen:rw',
)
);
// Load models
$this->load->model('education/Anrechnung_model', 'AnrechnungModel');
$this->load->model('content/DmsVersion_model', 'DmsVersionModel');
// Load libraries
$this->load->library('WidgetLib');
$this->load->library('PermissionLib');
$this->load->library('AnrechnungLib');
$this->load->library('DmsLib');
// Load helpers
$this->load->helper('form');
$this->load->helper('url');
$this->load->helper('hlp_sancho_helper');
// Load configs
$this->load->config('anrechnung');
@@ -208,11 +208,11 @@ class requestAnrechnung extends Auth_Controller
$this->_checkIfEntitledToReadDMSDoc($dms_id);
// Get file to be downloaded from DMS
$download = $this->dmslib->download($dms_id, $filename);
if (isError($download)) return $download;
$download = $this->dmslib->download($dms_id);
if (isError($download)) return $download;
// Download file
$this->outputFile(getData($download));
// Download file
$this->outputFile(getData($download));
}
/**
@@ -221,10 +221,10 @@ class requestAnrechnung extends Auth_Controller
private function _setAuthUID()
{
$this->_uid = getAuthUID();
if (!$this->_uid) show_error('User authentification failed');
}
/**
* Check if application deadline is expired.
*
@@ -237,7 +237,7 @@ class requestAnrechnung extends Auth_Controller
private function _isExpired($start, $ende, $studiensemester_kurzbz)
{
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
// If start is not given, set to Semesterstart.
if (!isset($start) || isEmptyString($start))
{
@@ -245,7 +245,7 @@ class requestAnrechnung extends Auth_Controller
$result = $this->StudiensemesterModel->load($studiensemester_kurzbz);
$start = getData($result)[0]->start;
}
// If ende is not given, set to Semesterende.
if (!isset($ende) || isEmptyString($ende))
{
@@ -253,15 +253,15 @@ class requestAnrechnung extends Auth_Controller
$result = $this->StudiensemesterModel->load($studiensemester_kurzbz);
$ende = getData($result)[0]->ende;
}
$today = new DateTime('today midnight');
$start = new DateTime($start);
$ende = new DateTime($ende);
// True if expired
return ($today < $start || $today > $ende);
}
/**
* Check if user is entitled to read dms doc.
*
@@ -273,9 +273,9 @@ class requestAnrechnung extends Auth_Controller
{
show_error('Failed loading Student');
}
$result = $this->AnrechnungModel->loadWhere(array('dms_id' => $dms_id));
if($result = getData($result)[0])
{
if ($result->prestudent_id == $student->prestudent_id)
@@ -283,10 +283,10 @@ class requestAnrechnung extends Auth_Controller
return;
}
}
show_error('You are not entitled to read this document');
}
/**
* Check if application already exists.
*
@@ -302,15 +302,15 @@ class requestAnrechnung extends Auth_Controller
'studiensemester_kurzbz' => $studiensemester_kurzbz,
'prestudent_id' => $prestudent_id
));
if (isError($result))
{
show_error(getError($result));
}
return hasData($result);
}
/**
* Check if applications' study semester is actual study semester.
*
@@ -322,10 +322,10 @@ class requestAnrechnung extends Auth_Controller
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$result = $this->StudiensemesterModel->getNearest();
$actual_ss = getData($result)[0]->studiensemester_kurzbz;
return $studiensemester_kurzbz == $actual_ss;
}
private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id)
{
// Get Note of Lehrveranstaltung
@@ -336,12 +336,12 @@ class requestAnrechnung extends Auth_Controller
'lehrveranstaltung_id' => $lehrveranstaltung_id
)
);
// If Lehrveranstaltung has Note
if (hasData($result))
{
$note = getData($result)[0]->note;
// Check if Note is a blocking grade
if (in_array($note, $this->config->item('grades_blocking_application')))
{
@@ -350,7 +350,7 @@ class requestAnrechnung extends Auth_Controller
}
return false;
}
/**
* Upload file via DMS library.
*
@@ -367,7 +367,7 @@ class requestAnrechnung extends Auth_Controller
'insertamum' => (new DateTime())->format('Y-m-d H:i:s'),
'insertvon' => $this->_uid
);
// Upload document
return $this->dmslib->upload($dms, 'uploadfile', array('pdf'));
}
@@ -322,20 +322,10 @@ class reviewAnrechnungDetail extends Auth_Controller
// Send mail to STGL of each studiengang
foreach ($studiengang_kz_arr as $studiengang_kz)
{
// Get STGL mail address, if available, otherwise get assistance mail address
$stgmail = $this->_getSTGLMailAddress($studiengang_kz);
if(isSuccess($stgmail) && hasData($stgmail))
list ($to, $vorname) = getData($stgmail)[0];
else
show_error ('Failed retrieving DegreeProgram Mail');
// Get full name of lector
$this->load->model('person/Person_model', 'PersonModel');
if (!$lector_name = getData($this->PersonModel->getFullName($this->_uid)))
{
show_error ('Failed retrieving person');
}
$result = $this->PersonModel->getFullName($this->_uid);
$lector_name = hasData($result) ? getData($result) : 'Ein Lektor';
// Link to Antrag genehmigen
$url =
@@ -343,22 +333,26 @@ class reviewAnrechnungDetail extends Auth_Controller
CIS_ROOT. 'cis/menu.php?content_id=&content='.
CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI;
// Prepare mail content
$body_fields = array(
'vorname' => $vorname,
'lektor_name' => $lector_name,
'empfehlung' => $empfehlung ? 'positive' : 'negative',
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
// Get STGL mail address, if available, otherwise get assistance mail address
if( !$result = $this->_getSTGLMailAddress($studiengang_kz)) return false;
foreach ($result as $stgl)
{
// Prepare mail content
$body_fields = array(
'vorname' => $stgl['vorname'],
'lektor_name' => $lector_name,
'empfehlung' => $empfehlung ? 'positive' : 'negative',
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
sendSanchoMail(
'AnrechnungEmpfehlungAbgeben',
$body_fields,
$to,
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
);
sendSanchoMail(
'AnrechnungEmpfehlungAbgeben',
$body_fields,
$stgl['to'],
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
);
}
}
return true;
}
@@ -369,28 +363,33 @@ class reviewAnrechnungDetail extends Auth_Controller
$result = $this->StudiengangModel->getLeitung($stg_kz);
// Get STGL mail address, if available
if (isSuccess($result) && hasData($result))
{
return success(array(
$result->retval[0]->uid. '@'. DOMAIN,
$result->retval[0]->vorname
));
}
if (hasData($result))
{
foreach (getData($result) as $stgl)
{
$stglMailAdress_arr[]= array(
'to' => $stgl->uid. '@'. DOMAIN,
'vorname' => $stgl->vorname
);
}
return $stglMailAdress_arr;
}
// ...otherwise get assistance mail address
else
{
$result = $this->StudiengangModel->load($stg_kz);
if (isSuccess($result) && hasData($result))
if (hasData($result))
{
return success(array(
return array(
$result->retval[0]->email,
''
));
);
}
else
{
return error('Keine E-Mail für diesen Stg gefunden');
return false;
}
}
}
@@ -257,20 +257,10 @@ class reviewAnrechnungUebersicht extends Auth_Controller
// Send mail to STGL of each studiengang
foreach ($studiengang_kz_arr as $studiengang_kz)
{
// Get STGL mail address, if available, otherwise get assistance mail address
$stgmail = $this->_getSTGLMailAddress($studiengang_kz);
if(isSuccess($stgmail) && hasData($stgmail))
list ($to, $vorname) = getData($stgmail)[0];
else
show_error ('Failed retrieving DegreeProgram Mail');
// Get full name of lector
$this->load->model('person/Person_model', 'PersonModel');
if (!$lector_name = getData($this->PersonModel->getFullName($this->_uid)))
{
show_error ('Failed retrieving person');
}
$result = $this->PersonModel->getFullName($this->_uid);
$lector_name = hasData($result) ? getData($result) : 'Ein Lektor';
// Link to Antrag genehmigen
$url =
@@ -278,22 +268,26 @@ class reviewAnrechnungUebersicht extends Auth_Controller
CIS_ROOT. 'cis/menu.php?content_id=&content='.
CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI;
// Prepare mail content
$body_fields = array(
'vorname' => $vorname,
'lektor_name' => $lector_name,
'empfehlung' => $empfehlung ? 'positive' : 'negative',
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
// Get STGL mail address, if available, otherwise get assistance mail address
if (!$result = $this->_getSTGLMailAddress($studiengang_kz)) return false;
foreach ($result as $stgl)
{
// Prepare mail content
$body_fields = array(
'vorname' => $stgl['vorname'],
'lektor_name' => $lector_name,
'empfehlung' => $empfehlung ? 'positive' : 'negative',
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
sendSanchoMail(
'AnrechnungEmpfehlungAbgeben',
$body_fields,
$to,
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
);
sendSanchoMail(
'AnrechnungEmpfehlungAbgeben',
$body_fields,
$stgl['to'],
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
);
}
}
return true;
}
@@ -304,28 +298,33 @@ class reviewAnrechnungUebersicht extends Auth_Controller
$result = $this->StudiengangModel->getLeitung($stg_kz);
// Get STGL mail address, if available
if (isSuccess($result) && hasData($result))
{
return success(array(
$result->retval[0]->uid. '@'. DOMAIN,
$result->retval[0]->vorname
));
}
if (hasData($result))
{
foreach (getData($result) as $stgl)
{
$stglMailAdress_arr[]= array(
'to' => $stgl->uid. '@'. DOMAIN,
'vorname' => $stgl->vorname
);
}
return $stglMailAdress_arr;
}
// ...otherwise get assistance mail address
else
{
$result = $this->StudiengangModel->load($stg_kz);
if (isSuccess($result) && hasData($result))
if (hasData($result))
{
return success(array(
return array(
$result->retval[0]->email,
''
));
);
}
else
{
return error('Keine E-Mail für diesen Stg gefunden');
return false;
}
}
}
@@ -138,7 +138,7 @@ class Studiensemester extends Auth_Controller
$start = $this->input->post("semstart");
$ende = $this->input->post("semende");
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
$beschreibung = $this->input->post("beschreibung");
$beschreibung = isEmptyString($this->input->post("beschreibung")) ? null : $this->input->post("beschreibung");
$onlinebewerbung = $this->input->post("onlinebewerbung");
$onlinebewerbung = isset($onlinebewerbung);
@@ -7,8 +7,6 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
*/
class BPKWartung extends Auth_Controller
{
private $_uid; // contains the UID of the logged user
/**
* Constructor
*/
@@ -46,7 +44,7 @@ class BPKWartung extends Auth_Controller
// Public methods
/**
* Main page of the InfoCenter tool
* Main page of the bPK Wartung.
*/
public function index()
{
@@ -56,9 +54,7 @@ class BPKWartung extends Auth_Controller
}
/**
* Personal details page of the InfoCenter tool
* Initialization function, gets person and prestudent data and loads the view with the data
* @param $person_id
* bPK Details initialization function, gets person data and loads the view with the data.
*/
public function showDetails()
{
@@ -85,8 +81,7 @@ class BPKWartung extends Auth_Controller
}
/**
* Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master
* @param $prestudent_id
* Saves a bPK for a person.
*/
public function saveBPK()
{
@@ -112,7 +107,7 @@ class BPKWartung extends Auth_Controller
// Private methods
/**
* Loads all necessary Person data: Stammdaten (name, svnr, contact, ...), Dokumente, Logs and Notizen
* Loads all necessary Person data.
* @param $person_id
* @return array
*/
@@ -0,0 +1,254 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Page for managing groups of which user is the manager
*/
class Gruppenmanagement extends Auth_Controller
{
private $_uid; // contains the UID of the logged user
/**
* Constructor
*/
public function __construct()
{
parent::__construct(
array(
'index' => 'lehre/gruppenmanager:r',
'showBenutzergruppe' => 'lehre/gruppenmanager:r',
'getBenutzer' => 'lehre/gruppenmanager:r',
'getAllBenutzer' => 'lehre/gruppenmanager:r',
'addBenutzer' => 'lehre/gruppenmanager:rw',
'removeBenutzer' => 'lehre/gruppenmanager:rw'
)
);
// 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');
$this->load->library('WidgetLib');
$this->loadPhrases(
array(
'global',
'person',
'lehre',
'ui',
'filter',
'gruppenmanagement'
)
);
$this->setControllerId(); // sets the controller id
$this->_setAuthUID(); // sets property uid
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
/**
* Main page
*/
public function index()
{
$this->load->view(
'person/gruppenmanagement/gruppenmanagement.php',
array('uid' => $this->_uid)
);
}
/**
* Shows Benutzergruppe overview page.
*/
public function showBenutzergruppe()
{
$this->_setNavigationMenuShowDetails();
$gruppe_kurzbz = $this->input->get('gruppe_kurzbz');
$data[self::FHC_CONTROLLER_ID] = $this->getControllerId();
$this->load->view(
'person/gruppenmanagement/benutzergruppe.php',
array('gruppe_kurzbz' => $gruppe_kurzbz)
);
}
/**
* Gets Benutzer assigned to a Gruppe
*/
public function getBenutzer()
{
$gruppe_kurzbz = $this->input->get('gruppe_kurzbz');
$this->BenutzergruppeModel->addSelect('uid, vorname, nachname, ben.aktiv');
$this->BenutzergruppeModel->addJoin('public.tbl_benutzer ben', 'uid');
$this->BenutzergruppeModel->addJoin('public.tbl_person', 'person_id');
$benutzerRes = $this->BenutzergruppeModel->loadWhere(array('gruppe_kurzbz' => $gruppe_kurzbz));
$this->outputJson($benutzerRes);
}
/**
* Gets all Benutzer for assignment to Gruppe
*/
public function getAllBenutzer()
{
$this->BenutzerModel->addSelect('uid, vorname, nachname');
$this->BenutzerModel->addJoin('public.tbl_person', 'person_id');
$benutzerRes = $this->BenutzerModel->loadWhere(
array('tbl_benutzer.aktiv' => true)
);
$this->outputJson($benutzerRes);
}
/**
* Adds a Benutzer to Gruppe
*/
public function addBenutzer()
{
$uid = $this->input->post('uid');
$gruppe_kurzbz = $this->input->post('gruppe_kurzbz');
if (isEmptyString($uid))
$result = error('Uid missing');
else
{
$benutzerExistsRes = $this->BenutzergruppeModel->loadWhere(
array(
'uid' => $uid,
'gruppe_kurzbz' => $gruppe_kurzbz
)
);
if (isError($benutzerExistsRes))
{
$this->outputJsonError(getError($benutzerExistsRes));
return;
}
if (hasData($benutzerExistsRes))
{
$this->outputJsonError($this->p->t('gruppenmanagement', 'benutzerSchonZugewiesen'));
return;
}
$result = $this->BenutzergruppeModel->insert(
array(
'uid' => $uid,
'gruppe_kurzbz' => $gruppe_kurzbz,
'insertamum' => date('Y-m-d H:i:s'),
'insertvon' => $this->_uid
)
);
// log the group add
$lastQry = $this->db->last_query();
if (isSuccess($result))
{
$beschreibung = 'Gruppenmanagement: Nutzer zu Gruppe hinzugefügt';
$this->_writeLog($this->_uid, $beschreibung, $lastQry);
}
}
$this->outputJson($result);
}
/**
* Removes Benutzer from Gruppe
*/
public function removeBenutzer()
{
$uid = $this->input->post('uid');
$gruppe_kurzbz = $this->input->post('gruppe_kurzbz');
if (isEmptyString($uid))
$result = error('Uid missing');
else
{
$result = $this->BenutzergruppeModel->delete(
array(
'uid' => $uid,
'gruppe_kurzbz' => $gruppe_kurzbz
)
);
}
// log the group remove
$lastQry = $this->db->last_query();
if (isSuccess($result))
{
$beschreibung = 'Gruppenmanagement: Nutzer aus Gruppe entfernt';
$this->_writeLog($this->_uid, $beschreibung, $lastQry);
}
$this->outputJson($result);
}
// -----------------------------------------------------------------------------------------------------------------
// Private methods
/**
* Define the navigation menu for the showDetails page
*/
private function _setNavigationMenuShowDetails()
{
$this->load->library('NavigationLib', array('navigation_page' => 'person/Gruppenmanagement/showBenutzergruppe'));
$link = site_url('person/Gruppenmanagement');
$this->navigationlib->setSessionMenu(
array(
'back' => $this->navigationlib->oneLevel(
'Zurück', // description
$link, // link
array(), // children
'angle-left', // icon
true, // expand
null, // subscriptDescription
null, // subscriptLinkClass
null, // subscriptLinkValue
'', // target
1 // sort
)
)
);
}
/**
* Set uid of authentificated user
*/
private function _setAuthUID()
{
$this->_uid = getAuthUID();
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
));
}
}
@@ -1,4 +1,20 @@
<?php
/**
* Copyright (C) 2022 fhcomplete.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
@@ -0,0 +1,44 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Test Search Vue Component
*/
class TestSearch extends Auth_Controller
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct(
array(
'index' => 'system/developer:r'
)
);
// Loads WidgetLib
$this->load->library('WidgetLib');
// Loads phrases system
$this->loadPhrases(
array(
'global',
'ui',
'filter'
)
);
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
/**
* Everything has a beginning
*/
public function index()
{
$this->load->view('system/logs/testSearch.php');
}
}
@@ -88,6 +88,12 @@ class InfoCenter extends Auth_Controller
'message' => 'Type of Document %s was updated, set to %s',
'success' => null
),
'deletedoc' => array(
'logtype' => 'Action',
'name' => 'Document deleted',
'message' => 'Document %s deleted',
'success' => null
),
);
// Name of Interessentenstatus
@@ -131,6 +137,7 @@ class InfoCenter extends Auth_Controller
'reloadZgvPruefungen' => 'infocenter:r',
'reloadMessages' => 'infocenter:r',
'reloadDoks' => 'infocenter:r',
'reloadUebersichtDoks' => 'infocenter:r',
'reloadNotizen' => array('infocenter:r', 'lehre/zgvpruefung:r'),
'reloadLogs' => 'infocenter:r',
'outputAkteContent' => array('infocenter:r', 'lehre/zgvpruefung:r'),
@@ -142,7 +149,9 @@ class InfoCenter extends Auth_Controller
'getStudienjahrEnd' => array('infocenter:r', 'lehre/zgvpruefung:r'),
'setNavigationMenuArrayJson' => 'infocenter:r',
'getAbsageData' => 'infocenter:r',
'saveAbsageForAll' => 'infocenter:rw'
'saveAbsageForAll' => 'infocenter:rw',
'deleteDoc' => 'infocenter:rw',
'getStudienartData' => 'infocenter:rw'
)
);
@@ -159,6 +168,10 @@ class InfoCenter extends Auth_Controller
$this->load->model('system/Message_model', 'MessageModel');
$this->load->model('system/Filters_model', 'FiltersModel');
$this->load->model('system/PersonLock_model', 'PersonLockModel');
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$this->load->model('codex/Zgv_model', 'ZgvModel');
$this->load->model('codex/Zgvmaster_model', 'ZgvmasterModel');
$this->load->model('codex/Nation_model', 'NationModel');
// Loads libraries
$this->load->library('PersonLogLib');
@@ -398,6 +411,35 @@ class InfoCenter extends Auth_Controller
$this->outputJsonSuccess(array($json));
}
public function deleteDoc($person_id)
{
$akte_id = $this->input->post('akteid');
if (isset($akte_id) && isset($person_id))
{
$this->load->library('AkteLib');
$akte = $this->aktelib->get($akte_id);
if (hasData($akte))
{
$akte = getData($akte);
if ($akte->person_id === (int)$person_id)
{
$result = $this->aktelib->remove($akte_id);
if (isError($result))
{
$this->terminateWithJsonError('Error deleting document');
}
$this->_log($person_id, 'deletedoc', array($akte->bezeichnung));
$this->outputJsonSuccess('success');
}
}
}
}
/**
* Gets prestudent data for a person in json format
* @param $person_id
@@ -1074,6 +1116,17 @@ class InfoCenter extends Auth_Controller
$this->load->view('system/infocenter/dokNachzureichend.php', array('dokumente_nachgereicht' => $dokumente_nachgereicht->retval));
}
public function reloadUebersichtDoks($person_id)
{
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false);
$this->DokumentModel->addOrder('bezeichnung');
$dokumentdata = array('dokumententypen' => (getData($this->DokumentModel->load())));
$data = array_merge($dokumentdata, ['dokumente' => $dokumente->retval]);
$this->load->view('system/infocenter/dokpruefung.php', $data);
}
/**
* Outputs content of an Akte, sends appropriate headers (so the document can be downloaded)
* @param $akte_id
@@ -1932,10 +1985,25 @@ class InfoCenter extends Auth_Controller
$abwstatusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$intstatusgruende = $this->StatusgrundModel->getStatus(self::INTERESSENTSTATUS)->retval;
$studienArtBerechtigung = array_column($this->getStudienArtBerechtigung(), 'typ');
$this->ZgvModel->addOrder('zgv_bez');
$allZGVs = getData($this->ZgvModel->load());
$this->ZgvModel->addOrder('zgvmas_bez');
$allZGVsMaster = getData($this->ZgvmasterModel->load());
$this->NationModel->addOrder('langtext');
$allNations = getData($this->NationModel->load());
$data = array (
'zgvpruefungen' => $zgvpruefungen,
'abwstatusgruende' => $abwstatusgruende,
'intstatusgruende' => $intstatusgruende
'intstatusgruende' => $intstatusgruende,
'studienArtBerechtigung' => $studienArtBerechtigung,
'all_zgvs' => $allZGVs,
'all_zgvs_master' => $allZGVsMaster,
'all_nations' => $allNations,
);
return $data;
@@ -2194,18 +2262,36 @@ class InfoCenter extends Auth_Controller
public function getAbsageData()
{
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm']);
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(['b', 'm'], $studienSemester);
if (hasData($stg_typ))
{
$stg_typ = getData($stg_typ);
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(array_column($stg_typ, 'typ'), $studienSemester);
$data = array (
'statusgruende' => $statusgruende,
'studiengaenge' => $studiengaenge->retval
);
$data = array (
'statusgruende' => $statusgruende,
'studiengaenge' => $studiengaenge->retval
);
$this->outputJsonSuccess($data);
$this->outputJsonSuccess($data);
}
else
$this->outputJsonSuccess(null);
}
public function getStudienArtBerechtigung()
{
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm', 'l']);
return getData($stg_typ);
}
public function getStudienartData()
{
$this->outputJsonSuccess($this->getStudienArtBerechtigung());
}
public function saveAbsageForAll()
@@ -81,7 +81,7 @@ class Issues extends Auth_Controller
}
if (isEmptyString($changeIssueMethod))
$errors[] = error("Invalid issue status given");
$errors[] = "Invalid issue status given";
else
{
$issueRes = $this->issueslib->{$changeIssueMethod}($issue_id, $user);
+10
View File
@@ -169,6 +169,15 @@ abstract class FHC_Controller extends CI_Controller
}
}
/**
* Return the JSON decoded HTTP POST request
* If the request is not in JSON format then a null value is returned
*/
protected function getPostJSON()
{
return json_decode($this->input->raw_input_stream);
}
//------------------------------------------------------------------------------------------------------------------
// Private methods
@@ -185,3 +194,4 @@ abstract class FHC_Controller extends CI_Controller
}
}
}
+93 -39
View File
@@ -1,20 +1,19 @@
<?php
/**
* FH-Complete
* Copyright (C) 2022 fhcomplete.org
*
* @package FHC-Helper
* @author FHC-Team
* @copyright Copyright (c) 2016 fhcomplete.org
* @license GPLv3
* @since Version 1.0.0
*/
/**
* FHC Helper
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @subpackage Helpers
* @category Helpers
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
@@ -42,15 +41,19 @@ function generateToken($length = 64)
{
$firstGeneratedToken = random_bytes($length); // try to generates cryptographically secure pseudo-random bytes...
}
catch (Exception $e) { $firstGeneratedToken = null; } // if fails $firstGeneratedToken is set to null
catch (Exception $e)
{
// If fails $firstGeneratedToken is set to null
$firstGeneratedToken = null;
}
}
// For PHP >= 5.3 and < 7 and openssl is available
elseif (function_exists('openssl_random_pseudo_bytes'))
{
$firstGeneratedToken = openssl_random_pseudo_bytes($length, $strong);
// If the token generation ended with errors OR the generated token is NOT strong enough
if ($firstGeneratedToken == false || $strong == false) $firstGeneratedToken = null; // $firstGeneratedToken is set to null
}
if ($firstGeneratedToken == false || $strong == false) $firstGeneratedToken = null; // $firstGeneratedToken is set to null
}
if ($firstGeneratedToken != null) // If everything was fine
{
@@ -107,10 +110,7 @@ function var_dump_to_error_log($parameter)
function loadResource($path, $resources = null, $subdir = false)
{
// Place a / character at the and of the string if not present
if (strrpos($path, '/') < strlen($path) - 1)
{
$path .= '/';
}
if (strrpos($path, '/') < strlen($path) - 1) $path .= '/';
// Loads in $tmpResources all the given resources
$tmpResources = $resources;
@@ -125,28 +125,36 @@ function loadResource($path, $resources = null, $subdir = false)
// Loads in $tmpPaths path and eventually the subdirectories
$tmpPaths = array($path);
// NOTE: Used @ to prevent ugly error messages
if (is_dir($path) && ($dirHandler = @opendir($path)) !== false)
// If path is a directory
if (is_dir($path))
{
// Reads all file system entries present in path
while (($entry = readdir($dirHandler)) !== false)
// NOTE: Used @ to prevent ugly error messages
$dirHandler = @opendir($path);
// Successfully opened
if ($dirHandler !== false)
{
// If entry is a directory but not the current and subdirectories should be loaded
if ($subdir === true && $entry != '.' && $entry != '..' && is_dir($entry))
// Reads all file system entries present in path
while (($entry = readdir($dirHandler)) !== false)
{
$tmpPaths[] = $entry;
}
// If no resources are specified and the current file system entry is a file
if ($resources == null && is_file($path.$entry))
{
// If the current entry is a php file store the name without extension
if ($entry != ($tmpName = str_replace('.php', '', $entry)))
// If entry is a directory but not the current and subdirectories should be loaded
if ($subdir === true && $entry != '.' && $entry != '..' && is_dir($path.$entry))
{
$tmpResources[] = $tmpName;
$tmpPaths[] = $path.$entry.'/';
}
// If no resources are specified and the current file system entry is a file
if ($resources == null && is_file($path.$entry))
{
// Name without php extension
$tmpName = str_replace('.php', '', $entry);
// If the current entry is a php file store the name without extension
if ($entry != $tmpName) $tmpResources[] = $tmpName;
}
}
closedir($dirHandler);
}
closedir($dirHandler);
}
// Loops through the resources
@@ -156,10 +164,7 @@ function loadResource($path, $resources = null, $subdir = false)
foreach ($tmpPaths as $tmpPath)
{
$fileName = $tmpPath.$tmpResource.'.php'; // Php extension
if (file_exists($fileName))
{
include_once($fileName);
}
if (file_exists($fileName)) include_once($fileName);
}
}
}
@@ -351,3 +356,52 @@ function sanitizeProblemChars($str)
return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc));
}
/**
*
*/
function findResource($path, $resource, $subdir = false, $extraDir = null)
{
// Place a / character at the and of the string if not present
if (strrpos($path, '/') < strlen($path) - 1) $path .= '/';
// Loads in $tmpPaths path and eventually the subdirectories
$tmpPaths = array($path);
if (is_dir($path))
{
// NOTE: Used @ to prevent ugly error messages
$dirHandler = @opendir($path);
// Successfully opened
if ($dirHandler !== false)
{
// Reads all file system entries present in path
while (($entry = readdir($dirHandler)) !== false)
{
// If entry is a directory but not the current and subdirectories should be loaded
if ($subdir === true && $entry != '.' && $entry != '..' && is_dir($path.$entry))
{
if ($extraDir == null)
{
$tmpPaths[] = $path.$entry.'/';
}
else
{
$tmpPaths[] = $path.$entry.'/'.$extraDir.'/';
}
}
}
closedir($dirHandler);
}
}
// Loops through the paths
foreach ($tmpPaths as $tmpPath)
{
$fileName = $tmpPath.$resource.'.php'; // Php extension
if (file_exists($fileName)) return $fileName;
}
return null;
}
+37 -1
View File
@@ -149,6 +149,31 @@ function generateJSsInclude($JSs)
}
}
/**
* Generates tags for the javascript modules you want to include, the parameter could by a string or an array of strings
*/
function generateJSModulesInclude($JSModules)
{
$jsInclude = '<script type="module" src="%s"></script>';
$ci =& get_instance();
$cachetoken = '?'.$ci->config->item('fhcomplete_build_version');
if (isset($JSModules))
{
$tmpJSs = is_array($JSModules) ? $JSModules : array($JSModules);
for ($tmpJSsCounter = 0; $tmpJSsCounter < count($tmpJSs); $tmpJSsCounter++)
{
$toPrint = sprintf($jsInclude, base_url($tmpJSs[$tmpJSsCounter].$cachetoken)).PHP_EOL;
if ($tmpJSsCounter > 0) $toPrint = "\t\t".$toPrint;
echo $toPrint;
}
}
}
/**
* Generates all the includes needed by the Addons
*/
@@ -156,16 +181,26 @@ function generateAddonsJSsInclude($calledFrom)
{
$aktive_addons = array_filter(explode(";", ACTIVE_ADDONS));
// For each active addon
foreach ($aktive_addons as $addon)
{
// Build the path to the hook file
$hookfile = DOC_ROOT.'addons/'.$addon.'/hooks.config.inc.php';
// If the hook file exists
if (file_exists($hookfile))
{
include($hookfile);
$js_hooks = array(); // default value
include($hookfile); // include the hook file where the array js_hooks should be setup
// If it contains the provided key calledFrom
if (key_exists($calledFrom, $js_hooks))
{
foreach ($js_hooks[$calledFrom] as $js_file)
{
generateJSsInclude('addons/'.$addon.'/'.$js_file);
}
}
}
}
@@ -180,3 +215,4 @@ function generateBackwardCompatibleJSMsIe($js)
echo ' <script type="text/javascript" src="'.$js.'"></script>'."\n";
echo "<![endif]-->\n";
}
+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);
}
}
+44 -20
View File
@@ -1,7 +1,25 @@
<?php
/**
* Copyright (C) 2022 fhcomplete.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
use \stdClass as stdClass;
/**
* Library to manage core extensions
*/
@@ -23,7 +41,7 @@ class ExtensionsLib
// Directories that are part of the extension archive
private $SOFTLINK_TARGET_DIRECTORIES = array(
APPPATH => array('config', 'controllers', 'helpers', 'hooks', 'libraries', 'models', 'views', 'widgets'),
APPPATH => array('config', 'components', 'controllers', 'helpers', 'hooks', 'libraries', 'models', 'views', 'widgets'),
DOC_ROOT => array('public')
);
@@ -181,17 +199,15 @@ class ExtensionsLib
// Select all the version of this extension
$this->_ci->ExtensionsModel->addSelect('extension_id');
$result = $this->_ci->ExtensionsModel->loadWhere(array('name' => $extensionName));
if (hasData($result)) // if something was found
// If something was found
if (hasData($result))
{
$extsArray = array();
foreach ($result->retval as $key => $extension) // loops on them
// Loops on them
foreach ($result->retval as $extension)
{
// Remove them all
$result = $this->_ci->ExtensionsModel->delete($extension->extension_id);
if (isSuccess($result))
{
$delExtension = true;
}
if (isSuccess($result)) $delExtension = true;
}
}
}
@@ -432,9 +448,13 @@ class ExtensionsLib
// If no errors occurred
if ($extensionJson != null)
{
// Default value
$fhcomplete_version = 0;
require_once('version.php'); // get the core version
// Checks if the required core version of the extension is the same of this system
if (isset($extensionJson->core_version) && $extensionJson->core_version == $fhcomplete_version)
if (isset($extensionJson->core_version) && version_compare($extensionJson->core_version, $fhcomplete_version,'<='))
{
$this->_printMessage('Required core version: '.$extensionJson->core_version);
$this->_printMessage('Current core version: '.$fhcomplete_version);
@@ -587,18 +607,22 @@ class ExtensionsLib
for ($sqlDir = $startVersion; $sqlDir <= $extensionJson->version; $sqlDir++)
{
// If a directory with the same value of the version is present in the sql scripts directory
if (($files = glob($pkgSQLsPath.'/'.$sqlDir.'/*'.ExtensionsLib::SQL_FILE_EXTENSION)) != false)
{
$files = glob($pkgSQLsPath.'/'.$sqlDir.'/*'.ExtensionsLib::SQL_FILE_EXTENSION);
if ($files != false)
{
// Loads every sql files
foreach ($files as $file)
{
$sql = file_get_contents($file); // gets the entire content of the file
foreach ($files as $file)
{
$sql = file_get_contents($file); // gets the entire content of the file
$this->_printMessage('Executing query:');
$this->_printMessage($sql);
// Try to execute that
if (!isSuccess($result = @$this->_ci->ExtensionsModel->executeQuery($sql)))
$resultQuery = @$this->_ci->ExtensionsModel->executeQuery($sql);
// If _not_ a success
if (!isSuccess($resultQuery))
{
$this->_errorOccurred = true;
$this->_printFailure(' error occurred while executing the query');
@@ -608,11 +632,11 @@ class ExtensionsLib
else
{
$this->_printMessage('Query result:');
var_dump($result->retval); // KEEP IT!!!
var_dump(getData($resultQuery)); // KEEP IT!!!
$this->_ci->eprintflib->printEOL();
}
}
}
}
}
}
$this->_printSuccess(!$this->_errorOccurred);
@@ -673,7 +697,7 @@ class ExtensionsLib
foreach ($this->SOFTLINK_TARGET_DIRECTORIES as $rootPath => $targetDirectories)
{
foreach ($targetDirectories as $key => $targetDirectory)
foreach ($targetDirectories as $targetDirectory)
{
if (file_exists($rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName))
{
@@ -727,7 +751,7 @@ class ExtensionsLib
// For every target directory
foreach ($this->SOFTLINK_TARGET_DIRECTORIES as $rootPath => $targetDirectories)
{
foreach ($targetDirectories as $key => $targetDirectory)
foreach ($targetDirectories as $targetDirectory)
{
// If destination of the symlink does not exist
if (!file_exists($rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName))
File diff suppressed because it is too large Load Diff
+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;
+34 -7
View File
@@ -1,4 +1,20 @@
<?php
/**
* Copyright (C) 2022 fhcomplete.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
@@ -37,7 +53,7 @@ class NavigationLib
// Loads library ExtensionsLib
$this->_ci->load->library('ExtensionsLib');
$this->_navigationPage = $this->_getNavigationtPage($params); // sets the id for the related navigation widget
$this->_navigationPage = $this->_getNavigationPage($params); // sets the id for the related navigation widget
}
//------------------------------------------------------------------------------------------------------------------
@@ -67,9 +83,19 @@ class NavigationLib
* Returns the structure for one level of the menu
*/
public function oneLevel(
$description, $link = '#', $children = null, $icon = '', $expand = false,
$subscriptDescription = null, $subscriptLinkClass = null, $subscriptLinkValue = null, $target = '',
$sort = null, $requiredPermissions = null, $subscriptLinkHref = '#')
$description,
$link = '#',
$children = null,
$icon = '',
$expand = false,
$subscriptDescription = null,
$subscriptLinkClass = null,
$subscriptLinkValue = null,
$target = '',
$sort = null,
$requiredPermissions = null,
$subscriptLinkHref = '#'
)
{
return array(
'description' => $description,
@@ -223,7 +249,8 @@ class NavigationLib
$filename = APPPATH.'config/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$ext->name.'/'.self::CONFIG_NAVIGATION_FILENAME;
if (file_exists($filename))
{
unset($config);
$config = array(); // default value
include($filename);
if (isset($config[$configName]) && is_array($config[$configName]))
@@ -278,7 +305,7 @@ class NavigationLib
}
else
{
foreach ($navigationArray as $key=>$row)
foreach ($navigationArray as $key => $row)
{
// Search for * Entries
if (mb_strpos($key, '*') === 0 || mb_strpos($key, '*') === mb_strlen($key) - 1)
@@ -300,7 +327,7 @@ class NavigationLib
* Return an unique string that identify this navigation widget
* NOTE: The default value is the URI where the NavigationWidget is called
*/
private function _getNavigationtPage($params)
private function _getNavigationPage($params)
{
if ($params != null
&& is_array($params)
+298
View File
@@ -0,0 +1,298 @@
<?php
/**
* Copyright (C) 2022 fhcomplete.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
use \stdClass as stdClass;
/**
*
*/
class SearchBarLib
{
// Error constats
const ERROR_WRONG_JSON = 'ERR001';
const ERROR_WRONG_SEARCHSTR = 'ERR002';
const ERROR_NO_TYPES = 'ERR003';
const ERROR_WRONG_TYPES = 'ERR004';
// List of allowed types of search
const ALLOWED_TYPES = ['mitarbeiter', 'organisationunit', 'raum', 'person', 'student', 'prestudent', 'document', 'cms'];
const PHOTO_IMG_URL = '/cis/public/bild.php?src=person&person_id=';
private $_ci; // Code igniter instance
/**
* Gets the CI instance and loads model
*/
public function __construct()
{
$this->_ci =& get_instance(); // get code igniter instance
// It is loaded only to have the DB_Model available
$this->_ci->load->model('person/Benutzer_model', 'BenutzerModel');
}
//------------------------------------------------------------------------------------------------------------------
// Public methods
/**
* It performes the search of the given search string using the specified search types
*/
public function search($searchstr, $types)
{
// Checks if the given parameters are fine
$search = $this->_checkParameters($searchstr, $types);
// If the check was successful then perform the search
if (isSuccess($search)) $search = $this->_search($searchstr, $types);
return $search; // return the result
}
//------------------------------------------------------------------------------------------------------------------
// Private methods
/**
* Checks:
* - The given searchstr is a not empty string
* - The given types is a not empty array and contains allowed search types
*/
private function _checkParameters($searchstr, $types)
{
// If searchstr is empty
if (isEmptyString($searchstr)) return error(self::ERROR_WRONG_SEARCHSTR);
// If types is not an array or it is empty
if (isEmptyArray($types)) return error(self::ERROR_NO_TYPES);
// If all the elements in types are allowed search types
if (!isEmptyArray(array_diff($types, self::ALLOWED_TYPES))) return error(self::ERROR_WRONG_TYPES);
return success(); // The check is fine!
}
/**
* Loops on types and perform the search of that type using searchstr
* Then it collects all the returned data into an array as property of an object
*/
private function _search($searchstr, $types)
{
// Object to be returned
$result = new stdClass();
$result->data = array();
// For each search type
foreach ($types as $type)
{
// Perform the search and then add the result to data
$result->data = array_merge($result->data, $this->{'_'.$type}($searchstr, $type));
}
return $result;
}
/**
* Search for employees
*/
private function _mitarbeiter($searchstr, $type)
{
$dbModel = new DB_Model();
$employees = $dbModel->execReadOnlyQuery('
SELECT
\''.$type.'\' AS type,
b.uid AS uid,
p.person_id AS person_id,
p.vorname || \' \' || p.nachname AS name,
ARRAY_AGG(DISTINCT(org.bezeichnung)) AS organisationunit_name,
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(stdkst.bezeichnung)) AS standardkostenstelle
FROM public.tbl_mitarbeiter m
JOIN public.tbl_benutzer b ON(b.uid = m.mitarbeiter_uid)
JOIN (
SELECT o.bezeichnung, bf.uid
FROM public.tbl_benutzerfunktion bf
JOIN public.tbl_organisationseinheit o USING(oe_kurzbz)
WHERE bf.funktion_kurzbz = \'kstzuordnung\'
AND (bf.datum_von IS NULL OR bf.datum_von <= NOW())
AND (bf.datum_bis IS NULL OR bf.datum_bis >= NOW())
GROUP BY o.bezeichnung, bf.uid
) stdkst ON stdkst.uid = b.uid
JOIN public.tbl_person p USING(person_id)
JOIN (
SELECT o.bezeichnung, bf.uid
FROM public.tbl_benutzerfunktion bf
JOIN public.tbl_organisationseinheit o USING(oe_kurzbz)
WHERE bf.funktion_kurzbz = \'oezuordnung\'
AND (bf.datum_von IS NULL OR bf.datum_von <= NOW())
AND (bf.datum_bis IS NULL OR bf.datum_bis >= NOW())
GROUP BY o.bezeichnung, bf.uid
) org ON org.uid = b.uid
LEFT JOIN (
SELECT kontakt, standort_id
FROM public.tbl_kontakt
WHERE kontakttyp = \'telefon\'
) k ON(k.standort_id = m.standort_id)
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
');
// If something has been found then return it
if (hasData($employees)) return getData($employees);
// Otherwise return an empty array
return array();
}
/**
* Seach for organisation units
*/
private function _organisationunit($searchstr, $type)
{
$dbModel = new DB_Model();
$ous = $dbModel->execReadOnlyQuery('
SELECT
\''.$type.'\' AS type,
o.oe_kurzbz AS oe_kurzbz,
o.bezeichnung AS name,
oParent.oe_kurzbz AS parentoe_kurzbz,
oParent.bezeichnung AS parentoe_name,
ARRAY_AGG(DISTINCT(bfLeader.uid)) AS leader_uid,
ARRAY_AGG(DISTINCT(bfLeader.vorname || \' \' || bfLeader.nachname)) AS leader_name,
COUNT(bfCount.benutzerfunktion_id) AS number_of_people,
(CASE WHEN o.mailverteiler = TRUE THEN o.oe_kurzbz || \''.'@'.DOMAIN.'\' END) AS mailgroup
FROM public.tbl_organisationseinheit o
LEFT JOIN public.tbl_organisationseinheit oParent ON(oParent.oe_kurzbz = o.oe_parent_kurzbz)
LEFT JOIN (
SELECT benutzerfunktion_id, oe_kurzbz
FROM public.tbl_benutzerfunktion
WHERE funktion_kurzbz = \'oezuordnung\'
AND (datum_von IS NULL OR datum_von <= NOW())
AND (datum_bis IS NULL OR datum_bis >= NOW())
) bfCount ON(bfCount.oe_kurzbz = o.oe_kurzbz)
LEFT JOIN (
SELECT bf.oe_kurzbz, bf.uid, p.vorname, p.nachname
FROM public.tbl_benutzerfunktion bf
JOIN public.tbl_benutzer b USING(uid)
JOIN public.tbl_person p USING(person_id)
WHERE funktion_kurzbz = \'Leitung\'
AND (datum_von IS NULL OR datum_von <= NOW())
AND (datum_bis IS NULL OR datum_bis >= NOW())
AND b.aktiv = TRUE
) bfLeader ON(bfLeader.oe_kurzbz = o.oe_kurzbz)
WHERE o.oe_kurzbz ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
OR o.bezeichnung ILIKE \'%'.$dbModel->escapeLike($searchstr).'%\'
GROUP BY type, o.oe_kurzbz, o.bezeichnung, oParent.oe_kurzbz, oParent.bezeichnung
');
// If something has been found
if (hasData($ous))
{
// Loop through the returned dataset
foreach (getData($ous) as $ou)
{
// Create the new property leaders as an empty array
$ou->leaders = array();
// Loop through the found leaders for this organisation unit
for ($i = 0; $i < count($ou->leader_uid); $i++)
{
// If a leader exists for this organisationunit and has a name :D
if (!isEmptyString($ou->leader_uid[$i]) && !isEmptyString($ou->leader_name[$i]))
{
// Empty object that will contains the leader uid and name
$leader = new stdClass();
// Set the properties name and uid
$leader->uid = $ou->leader_uid[$i];
$leader->name = $ou->leader_name[$i];
// Add the leader object to the leaders array
$ou->leaders[] = $leader;
}
}
// Remove the not needed properties leader_uid and leader_name
unset($ou->leader_uid);
unset($ou->leader_name);
}
// Returns the changed dataset
return getData($ous);
}
// Otherwise return an empty array
return array();
}
/**
* Search for persons
*/
private function _person($searchstr, $type)
{
return array();
}
/**
* Search for students
*/
private function _student($searchstr, $type)
{
return array();
}
/**
* Search for prestudents
*/
private function _prestudent($searchstr, $type)
{
return array();
}
/**
* Search for documents
*/
private function _document($searchstr, $type)
{
return array();
}
/**
* Search for CMSs
*/
private function _cms($searchstr, $type)
{
return array();
}
/**
* Search for rooms
*/
private function _raum($searchstr, $type)
{
return array();
}
}
+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));
@@ -0,0 +1,15 @@
<?php
class Gsprogramm_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'bis.tbl_gsprogramm';
$this->pk = 'gsprogramm_id';
}
}
@@ -0,0 +1,14 @@
<?php
class Mobilitaet_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'bis.tbl_mobilitaet';
$this->pk = 'mobilitaet_id';
}
}
+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;
}
/**
+1 -1
View File
@@ -556,7 +556,7 @@ class Prestudent_model extends DB_Model
*/
public function getOrganisationunitsByPersonId($person_id)
{
$query = 'SELECT o.oe_kurzbz,
$query = 'SELECT DISTINCT o.oe_kurzbz,
o.bezeichnung,
(CASE
WHEN sg.typ = \'b\' THEN ps.prestudent_id
@@ -507,4 +507,14 @@ class Studiengang_model extends DB_Model
return $this->execQuery($query, array($typ, $semester));
}
public function getStudiengangTyp($studiengang_kz, $typ)
{
$query = "SELECT DISTINCT(sgt.*)
FROM tbl_studiengangstyp sgt JOIN tbl_studiengang sg on sgt.typ = sg.typ
WHERE studiengang_kz IN ? and sgt.typ IN ?";
return $this->execQuery($query, array($studiengang_kz, $typ));
}
}
@@ -0,0 +1,14 @@
<?php
class Adressentyp_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_adressentyp';
$this->pk = 'adressentyp_kurzbz';
}
}
@@ -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));
}
}
+6 -6
View File
@@ -3,12 +3,12 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'ÖH-Beitragsverwaltung',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'dialoglib' => true,
'ajaxlib' => true,
'navigationwidget' => true,
+26 -32
View File
@@ -1,42 +1,36 @@
<?php
$this->load->view('templates/FHC-Header',
array(
$includesArray = array(
'title' => 'FH-Complete',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'ajaxlib' => true,
'bootstrapper' => true, // to be used only if you know what you are doing!
'addons' => true,
'navigationwidget' => true
)
);
);
$this->load->view('templates/FHC-Header', $includesArray);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">FH-Complete</h3>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">FH-Complete</h3>
</div>
</div>
<span>
<div id="dashboard"></div>
</span>
</div>
<span>
<div id="dashboard"></div>
</span>
</div>
</div>
</div>
<script>
//javascript hacks for bootstrap
$("select").addClass("form-control");
$("input[type=text]").addClass("form-control");
$("input[type=button]").addClass("btn btn-default");
$("#tableDataset").addClass('table-bordered');
</script>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
@@ -3,10 +3,10 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => $this->p->t('anrechnung', 'anrechnungenGenehmigen'),
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'phrases' => array(
@@ -3,11 +3,11 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => $this->p->t('anrechnung', 'anrechnungenGenehmigen'),
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'tabulator' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'tabulator4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
@@ -3,13 +3,13 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => $this->p->t('anrechnung', 'neueAnrechnung'),
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tabulator' => true,
'tabulator4' => true,
'tablewidget' => true,
'phrases' => array(
'global' => array(
@@ -101,7 +101,7 @@ $this->load->view(
<th class="col-xs-5 col-lg-2"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?> *</th>
<td>
<select name="lehrveranstaltung_id" id="select-lehrveranstaltung" class="form-control select-w500">
<option value="" <?php echo set_select('lehrveranstaltung', '', TRUE); ?> >
<option value="" <?php echo set_select('lehrveranstaltung', '', true); ?> >
<?php echo $this->p->t('ui', 'bitteWaehlen'); ?>
</option>
</select>
@@ -112,7 +112,7 @@ $this->load->view(
<th class="col-xs-5 col-lg-2"><?php echo $this->p->t('global', 'begruendung'); ?> *</th>
<td>
<select name="begruendung_id" id="select-begruendung" class="form-control select-w500">
<option value="" <?php echo set_select('begruendung', '', TRUE); ?> >
<option value="" <?php echo set_select('begruendung', '', true); ?> >
<?php echo $this->p->t('ui', 'bitteWaehlen'); ?>
</option>
<?php foreach ($begruendungen as $begruendung) : ?>
@@ -5,10 +5,10 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => $this->p->t('anrechnung', 'antragStellen'),
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'phrases' => array(
@@ -3,10 +3,10 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => $this->p->t('anrechnung', 'anrechnungenPruefen'),
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'phrases' => array(
@@ -3,11 +3,11 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => $this->p->t('anrechnung', 'anrechnungenPruefen'),
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'tabulator' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'tabulator4' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
@@ -3,11 +3,11 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Lehrauftrag bestellen',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'ajaxlib' => true,
'dialoglib' => true,
'navigationwidget' => true,
@@ -3,10 +3,10 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Lehrauftrag bestellen',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'jquery3' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'ajaxlib' => true,
'navigationwidget' => true,
)
@@ -3,14 +3,14 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Lehrauftrag annehmen',
'jquery' => true,
'jqueryui' => true,
'jquerycheckboxes' => true,
'bootstrap' => true,
'fontawesome' => true,
'jquery3' => true,
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate' => false,
'tabulator' => true,
'momentjs' => true,
'tabulator4' => true,
'momentjs2' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
@@ -225,3 +225,4 @@ $this->load->view(
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -3,14 +3,14 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Lehrauftrag erteilen',
'jquery' => true,
'jqueryui' => true,
'jquerycheckboxes' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tabulator' => true,
'momentjs' => true,
'jquery3' => true,
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tabulator4' => true,
'momentjs2' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
@@ -210,3 +210,4 @@ $this->load->view(
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -3,14 +3,14 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Lehrauftrag bestellen',
'jquery' => true,
'jqueryui' => true,
'jquerycheckboxes' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tabulator' => true,
'momentjs' => true,
'jquery3' => true,
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tabulator4' => true,
'momentjs2' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
@@ -169,7 +169,9 @@ $this->load->view(
);
?>
</div>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">
<?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?>
</button>
</form>
</div>
</div>
@@ -204,4 +206,5 @@ $this->load->view(
<br>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -3,16 +3,16 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Zeitverfuegbarkeit verwalten',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'momentjs' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'momentjs2' => true,
'ajaxlib' => true,
'tabulator' => true,
'tabulator4' => true,
'tablewidget' => true,
'navigationwidget' => true,
'sbadmintemplate' => true,
'sbadmintemplate3' => true,
'phrases' => array(
'global' => array(
'bis',
@@ -49,7 +49,9 @@ $this->load->view(
<!-- title -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>Zeitverf&uuml;gbarkeiten verwalten<small> | Punktuelle Zeitverfügbarkeiten von Lehrenden für die LV-Planung verwalten</small></h3>
<h3>Zeitverf&uuml;gbarkeiten verwalten<small>
| Punktuelle Zeitverfügbarkeiten von Lehrenden für die LV-Planung verwalten</small>
</h3>
</div>
</div>
+44 -38
View File
@@ -1,46 +1,47 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Pruefungsprotokoll',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'dialoglib' => true,
'ajaxlib' => true,
'sbadmintemplate' => true,
'phrases' => array(
'abschlusspruefung' => array(
'freigegebenAm',
'pruefungGespeichert',
'pruefungSpeichernFehler',
'abschlussbeurteilungLeer',
'beginnzeitLeer',
'beginnzeitFormatError',
'endezeitLeer',
'endezeitFormatError',
'endezeitBeforeError',
'verfNotice'
),
'ui' => array(
'stunde',
'minute'
)
$sitesettings = array(
'title' => 'Pruefungsprotokoll',
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'dialoglib' => true,
'ajaxlib' => true,
'sbadmintemplate3' => true,
'phrases' => array(
'abschlusspruefung' => array(
'freigegebenAm',
'pruefungGespeichert',
'pruefungSpeichernFehler',
'abschlussbeurteilungLeer',
'beginnzeitLeer',
'beginnzeitFormatError',
'endezeitLeer',
'endezeitFormatError',
'endezeitBeforeError',
'verfNotice'
),
'customCSSs' => array(
'public/css/sbadmin2/admintemplate_contentonly.css',
'vendor/fgelinas/timepicker/jquery.ui.timepicker.css',
'public/css/lehre/pruefungsprotokoll.css'
),
'customJSs' => array(
'vendor/fgelinas/timepicker/jquery.ui.timepicker.js',
'public/js/lehre/pruefungsprotokoll.js'
'ui' => array(
'stunde',
'minute'
)
),
'customCSSs' => array(
'public/css/sbadmin2/admintemplate_contentonly.css',
'vendor/fgelinas/timepicker/jquery.ui.timepicker.css',
'public/css/lehre/pruefungsprotokoll.css'
),
'customJSs' => array(
'vendor/fgelinas/timepicker/jquery.ui.timepicker.js',
'public/js/lehre/pruefungsprotokoll.js'
)
);
$this->load->view(
'templates/FHC-Header',
$sitesettings
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
@@ -229,4 +230,9 @@ $this->load->view(
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php
$this->load->view(
'templates/FHC-Footer',
$sitesettings
);
@@ -3,12 +3,12 @@
'templates/FHC-Header',
array(
'title' => 'Prüfungsprotokoll',
'jquery' => true,
'jqueryui' => true,
'jquerycheckboxes' => true,
'bootstrap' => true,
'fontawesome' => true,
'tablesorter' => true,
'jquery3' => true,
'jqueryui1' => true,
'jquerycheckboxes1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
@@ -33,25 +33,25 @@
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo $this->p->t('abschlusspruefung','pruefungsprotokoll'); ?>
<?php echo $this->p->t('abschlusspruefung', 'pruefungsprotokoll'); ?>
</h3>
</div>
</div>
<?php echo $this->p->t('abschlusspruefung','einfuehrungstext'); ?>
<?php echo $this->p->t('abschlusspruefung', 'einfuehrungstext'); ?>
<br><br>
<div class="row">
<div class="col-lg-12">
<form action="" method="post">
<label><?php echo $this->p->t('ui','zeitraum'); ?>:&nbsp;&nbsp;</label>
<label><?php echo $this->p->t('ui', 'zeitraum'); ?>:&nbsp;&nbsp;</label>
<div class="btn-group" role="group">
<button type="submit" class="btn btn-default <?php echo $period == 'today' ? 'active' : ''?>"
name="period" value="today"><?php echo $this->p->t('ui','heute'); ?></button>
name="period" value="today"><?php echo $this->p->t('ui', 'heute'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'lastWeek' ? 'active' : ''?>"
name="period" value="lastWeek"><?php echo $this->p->t('ui','letzteWoche'); ?></button>
name="period" value="lastWeek"><?php echo $this->p->t('ui', 'letzteWoche'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'upcoming' ? 'active' : ''?>"
name="period" value="upcoming"><?php echo $this->p->t('ui','zukuenftige'); ?></button>
name="period" value="upcoming"><?php echo $this->p->t('ui', 'zukuenftige'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'all' ? 'active' : ''?>"
name="period" value="all"><?php echo $this->p->t('ui','alle'); ?></button>
name="period" value="all"><?php echo $this->p->t('ui', 'alle'); ?></button>
</div>
</form>
</div>
@@ -3,12 +3,12 @@
'templates/FHC-Header',
array(
'title' => 'Reihungstest',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
@@ -1,6 +1,6 @@
<?php
$jahr = $studienjahr[0];
$this->load->view('templates/header', array('title' => 'StudienjahrEdit', 'jquery' => true));
$this->load->view('templates/header', array('title' => 'StudienjahrEdit', 'jquery3' => true));
?>
<body>
<div class="row">
+1 -1
View File
@@ -76,4 +76,4 @@
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
?>
+20 -20
View File
@@ -3,14 +3,14 @@
'templates/FHC-Header',
array(
'title' => 'bPK Details',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
'jqueryui' => true,
'jquery3' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'jqueryui1' => true,
'ajaxlib' => true,
'tablesorter' => true,
'tinymce' => true,
'sbadmintemplate' => true,
'tablesorter2' => true,
'tinymce4' => true,
'sbadmintemplate3' => true,
'addons' => true,
'navigationwidget' => true,
'customCSSs' => array(
@@ -64,62 +64,62 @@
<table class="table">
<?php if (!empty($stammdaten->titelpre)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpre')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'titelpre')) ?></strong></td>
<td><?php echo $stammdaten->titelpre ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','vorname')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'vorname')) ?></strong></td>
<td><?php echo $stammdaten->vorname ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','nachname')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'nachname')) ?></strong></td>
<td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<?php if (!empty($stammdaten->titelpost)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpost')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'titelpost')) ?></strong></td>
<td><?php echo $stammdaten->titelpost ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geburtsdatum')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'geburtsdatum')) ?></strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','svnr')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'svnr')) ?></strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','ersatzkennzeichen')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'ersatzkennzeichen')) ?></strong></td>
<td>
<?php echo $stammdaten->ersatzkennzeichen ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','staatsbuergerschaft')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'staatsbuergerschaft')) ?></strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geschlecht')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'geschlecht')) ?></strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','bpk')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'bpk')) ?></strong></td>
<td>
<?php echo $stammdaten->bpk ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','postleitzahl')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'postleitzahl')) ?></strong></td>
<td>
<?php echo $adresse->plz ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','strasse')) ?></strong></td>
<td><strong><?php echo ucfirst($this->p->t('person', 'strasse')) ?></strong></td>
<td>
<?php echo $adresse->strasse ?></td>
</tr>
@@ -129,7 +129,7 @@
<form action="<?php echo base_url('soap/datenverbund_client.php?action=pruefeBPK');?>" method="POST" target="_blank">
<input type="hidden" name="vorname" value="<?php echo $stammdaten->vorname; ?>"/>
<input type="hidden" name="nachname" value="<?php echo $stammdaten->nachname; ?>"/>
<input type="hidden" name="geburtsdatum" value="<?php echo mb_str_replace('-','',$stammdaten->gebdatum); ?>"/>
<input type="hidden" name="geburtsdatum" value="<?php echo mb_str_replace('-', '',$stammdaten->gebdatum); ?>"/>
<input type="hidden" name="geschlecht" value="<?php echo mb_strtoupper($stammdaten->geschlecht); ?>"/>
<input type="submit" value="Namenssuche starten" class="btn btn-default"/>
</form>
+6 -6
View File
@@ -3,12 +3,12 @@
'templates/FHC-Header',
array(
'title' => 'bPK Wartung',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
@@ -3,10 +3,10 @@
'templates/FHC-Header',
array(
'title' => 'Gradelist',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'ajaxlib' => true,
'customCSSs' => array(
'public/css/tools/gradelist.css',
@@ -31,14 +31,26 @@
</div>
</div>
<div>
<b><?php echo $this->p->t('lehre', 'notendurchschnitt'); ?>
<img src="../../../../skin/images/information.png" title="<?php echo htmlentities($this->p->t('lehre', 'info_notendurchschnitt')); ?>" />:</b>
<b>
<?php echo $this->p->t('lehre', 'notendurchschnitt'); ?>
<img
src="../../../../skin/images/information.png"
title="<?php echo htmlentities($this->p->t('lehre', 'info_notendurchschnitt')); ?>"
/>:
</b>
<?php echo $courses['overall']['notendurchschnitt'] ?><br>
<b><?php echo $this->p->t('lehre', 'gewichteternotendurchschnitt'); ?>
<img src="../../../../skin/images/information.png" title="<?php echo htmlentities($this->p->t('lehre', 'info_notendurchschnitt_gewichtet')); ?>" />:</b>
<b>
<?php echo $this->p->t('lehre', 'gewichteternotendurchschnitt'); ?>
<img
src="../../../../skin/images/information.png"
title="<?php echo htmlentities($this->p->t('lehre', 'info_notendurchschnitt_gewichtet')); ?>"
/>:
</b>
<?php echo $courses['overall']['notendurchschnittgewichtet'] ?><br>
<b><?php echo $this->p->t('lehre', 'ects'); ?>
<img src="../../../../skin/images/information.png" title="Summe der positiv absolvierten ECTS" />:</b>
<b>
<?php echo $this->p->t('lehre', 'ects'); ?>
<img src="../../../../skin/images/information.png" title="Summe der positiv absolvierten ECTS" />:
</b>
<?php echo $courses['overall']['ectssumme_positiv'] ?><br>
<br>
<?php
@@ -54,3 +66,4 @@
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,75 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Benutzer in Gruppe',
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'dialoglib' => true,
'navigationwidget' => true,
'phrases' => array(
'gruppenmanagement',
'ui'
),
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('public/js/bootstrapper.js', 'public/js/tablesort/tablesort.js', 'public/js/person/benutzergruppe.js')
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo ucfirst($this->p->t('gruppenmanagement', 'benutzergruppe')).' '.$gruppe_kurzbz ?>
</h3>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="form-inline">
<div class="input-group" id="absgstatusgrselect_137998">
<input type="text" class="form-control" name="teilnehmerSelect" id="teilnehmerSelect">
<input type="hidden" name="teilnehmer_uid" id="teilnehmer_uid">
<input type="hidden" name="gruppe_kurzbz" id="gruppe_kurzbz" value="<?php echo $gruppe_kurzbz ?>">
<span class="input-group-btn">
<button type="button" class="btn btn-default" id="teilnehmerHinzufuegen">
<?php echo $this->p->t('gruppenmanagement', 'benutzerHinzufuegen') ?>
</button>
</span>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<table class="table table-bordered table-condensed table-responsive" id="benutzer-table">
<thead>
<th>Uid</th>
<th><?php echo ucfirst($this->p->t('person', 'vorname')); ?></th>
<th><?php echo ucfirst($this->p->t('person', 'nachname')); ?></th>
<th><?php echo ucfirst($this->p->t('gruppenmanagement', 'aktiv')); ?></th>
<th><?php echo ucfirst($this->p->t('ui', 'entfernen')); ?></th>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,46 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Gruppenmanagement',
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'phrases' => array(
'ui'
),
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('public/js/bootstrapper.js')
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo ucfirst($this->p->t('gruppenmanagement', 'gruppenmanagement')); ?>
</h3>
</div>
</div>
<div>
<?php $this->load->view('person/gruppenmanagement/gruppenmanagementData.php'); ?>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,66 @@
<?php
$filterWidgetArray = array(
'query' => '
SELECT gruppe_kurzbz, grp.bezeichnung AS gruppe_bezeichnung, grp.beschreibung AS gruppe_beschreibung,
studiengang_kz, UPPER(stg.typ||stg.kurzbz) AS studiengang_kurzbz, semester, sichtbar, lehre, grp.aktiv, mailgrp, generiert
FROM public.tbl_gruppe grp
JOIN public.tbl_studiengang stg USING (studiengang_kz)
JOIN public.tbl_gruppe_manager grpmgr USING (gruppe_kurzbz)
WHERE grp.aktiv = TRUE
AND grpmgr.uid = \''.$uid.'\'',
'requiredPermissions' => 'lehre/gruppenmanager',
'datasetRepresentation' => 'tablesorter',
'additionalColumns' => array('Teilnehmer'),
'columnsAliases' => array(
ucfirst($this->p->t('gruppenmanagement', 'kurzbezeichnung')),
ucfirst($this->p->t('gruppenmanagement', 'bezeichnung')),
ucfirst($this->p->t('gruppenmanagement', 'beschreibung')),
ucfirst($this->p->t('lehre', 'studiengangskennzahlLehre')),
ucfirst($this->p->t('lehre', 'studiengang')),
ucfirst($this->p->t('lehre', 'semester')),
'Sichtbar',
'Lehre',
'Aktiv',
'Mailgrp',
'Generiert'
),
'formatRow' => function($datasetRaw) {
/* NOTE: Dont use $this here for PHP Version compatibility */
$datasetRaw->{'Teilnehmer'} = sprintf(
'<a href="%s?gruppe_kurzbz=%s&origin_page=%s&fhc_controller_id=%s">'.$this->p->t('gruppenmanagement', 'zuweisenloeschen').'</a>',
site_url('person/Gruppenmanagement/showBenutzergruppe'),
$datasetRaw->{'gruppe_kurzbz'},
'index',
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
);
if ($datasetRaw->{'gruppe_bezeichnung'} == null)
{
$datasetRaw->{'gruppe_bezeichnung'} = '-';
}
if ($datasetRaw->{'gruppe_beschreibung'} == null)
{
$datasetRaw->{'gruppe_beschreibung'} = '-';
}
if ($datasetRaw->{'semester'} == null)
{
$datasetRaw->{'semester'} = '-';
}
$datasetRaw->{'sichtbar'} = $datasetRaw->{'sichtbar'} == 'true' ? 'ja' : 'nein';
$datasetRaw->{'lehre'} = $datasetRaw->{'lehre'} == 'true' ? 'ja' : 'nein';
$datasetRaw->{'aktiv'} = $datasetRaw->{'aktiv'} == 'true' ? 'ja' : 'nein';
$datasetRaw->{'mailgrp'} = $datasetRaw->{'mailgrp'} == 'true' ? 'ja' : 'nein';
$datasetRaw->{'generiert'} = $datasetRaw->{'generiert'} == 'true' ? 'ja' : 'nein';
return $datasetRaw;
}
);
$filterWidgetArray['app'] = 'core';
$filterWidgetArray['datasetName'] = 'gruppenmanagement';
$filterWidgetArray['filterKurzbz'] = 'gruppenmanagement';
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
+109 -110
View File
@@ -1,110 +1,109 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'InfocenterDetails',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
'jqueryui' => true,
'dialoglib' => true,
'ajaxlib' => true,
'udfs' => true,
'widgets' => true,
'sbadmintemplate' => true,
'customCSSs' => array(
'public/css/sbadmin2/admintemplate.css'
),
'customJSs' => array(
'public/js/bootstrapper.js'
)
)
);
?>
<body style="background-color: #eff0f1;">
<div class="div-table">
<div class="div-row">
<div class="div-cell" style="font-size: 20px; font-weight: bold;">
Zusatzfelder
</div>
</div>
<div class="div-row">
<div class="div-cell">
&nbsp;
</div>
</div>
<div class="div-row">
<?php
if (isset($personUdfs))
{
?>
<div class="div-cell">
<?php
echo $this->udflib->UDFWidget(
array(
UDFLib::UDF_UNIQUE_ID => 'fasPersonUDFs',
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_person',
UDFLib::PRIMARY_KEY_NAME => 'person_id',
UDFLib::PRIMARY_KEY_VALUE => $person_id,
UDFLib::UDFS_ARG_NAME => $personUdfs
)
);
?>
</div>
<div class="div-cell" style="width: 40px;">
&nbsp;
</div>
<?php
}
?>
<?php
if (isset($prestudentUdfs))
{
?>
<div class="div-cell">
<?php
echo $this->udflib->UDFWidget(
array(
UDFLib::UDF_UNIQUE_ID => 'fasPrestudentUDFs',
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
UDFLib::PRIMARY_KEY_NAME => 'prestudent_id',
UDFLib::PRIMARY_KEY_VALUE => $prestudent_id,
UDFLib::UDFS_ARG_NAME => $prestudentUdfs
)
);
?>
</div>
<?php
}
?>
</div>
<div class="div-row">
<div class="div-cell">
&nbsp;
</div>
</div>
<div class="div-row halign-right">
<?php
if (isset($personUdfs) && isset($prestudentUdfs))
{
?>
<div class="div-cell">
&nbsp;
</div>
<div class="div-cell">
&nbsp;
</div>
<?php
}
?>
</div>
</div>
</body>
<?php $this->load->view("templates/footer"); ?>
<?php
$sitesettings = array(
'title' => 'InfocenterDetails',
'jquery3' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'jqueryui1' => true,
'dialoglib' => true,
'ajaxlib' => true,
'udfs' => true,
'widgets' => true,
'sbadmintemplate3' => true,
'customCSSs' => array(
'public/css/sbadmin2/admintemplate.css'
),
'customJSs' => array(
'public/js/bootstrapper.js'
)
);
$this->load->view(
'templates/FHC-Header',
$sitesettings
);
?>
<div class="div-table">
<div class="div-row">
<div class="div-cell" style="font-size: 20px; font-weight: bold;">
Zusatzfelder
</div>
</div>
<div class="div-row">
<div class="div-cell">
&nbsp;
</div>
</div>
<div class="div-row">
<?php
if (isset($personUdfs))
{
?>
<div class="div-cell">
<?php
echo $this->udflib->UDFWidget(
array(
UDFLib::UDF_UNIQUE_ID => 'fasPersonUDFs',
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_person',
UDFLib::PRIMARY_KEY_NAME => 'person_id',
UDFLib::PRIMARY_KEY_VALUE => $person_id,
UDFLib::UDFS_ARG_NAME => $personUdfs
)
);
?>
</div>
<div class="div-cell" style="width: 40px;">
&nbsp;
</div>
<?php
}
?>
<?php
if (isset($prestudentUdfs))
{
?>
<div class="div-cell">
<?php
echo $this->udflib->UDFWidget(
array(
UDFLib::UDF_UNIQUE_ID => 'fasPrestudentUDFs',
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
UDFLib::PRIMARY_KEY_NAME => 'prestudent_id',
UDFLib::PRIMARY_KEY_VALUE => $prestudent_id,
UDFLib::UDFS_ARG_NAME => $prestudentUdfs
)
);
?>
</div>
<?php
}
?>
</div>
<div class="div-row">
<div class="div-cell">
&nbsp;
</div>
</div>
<div class="div-row halign-right">
<?php
if (isset($personUdfs) && isset($prestudentUdfs))
{
?>
<div class="div-cell">
&nbsp;
</div>
<div class="div-cell">
&nbsp;
</div>
<?php
}
?>
</div>
</div>
<?php $this->load->view("templates/FHC-Footer", $sitesettings); ?>
@@ -1,10 +1,11 @@
<div class="table-responsive">
<table id="doctable" class="table table-bordered">
<div class="table-responsive" id="uebersichtDoks">
<table id="doctable" class="table table-bordered table-condensed tablesorter tablesorter-default">
<thead>
<tr>
<th><?php echo ucfirst($this->p->t('global','name')) ?></th>
<th><?php echo ucfirst($this->p->t('global','typ')) ?></th>
<th><?php echo ucfirst($this->p->t('global','uploaddatum')) ?></th>
<th><?php echo ucfirst($this->p->t('ui','loeschen')) ?></th>
<th><?php echo ucfirst($this->p->t('infocenter','ausstellungsnation')) ?></th>
<?php
if (!isset($formalReadonly))
@@ -22,7 +23,7 @@
<a href="outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo isEmptyString($dokument->titel) ? $dokument->bezeichnung : $dokument->titel ?></a>
</td>
<td>
<select class="aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?> autocomplete="off">
<select class="form-control aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?> autocomplete="off">
<?php
foreach($dokumententypen as $dokumenttyp)
echo "<option " . ($dokumenttyp->bezeichnung === $dokument->dokument_bezeichnung ? 'selected' : '') . " value = " . $dokumenttyp->dokument_kurzbz . ">" . $dokumenttyp->bezeichnung . "</option>"
@@ -30,7 +31,7 @@
</select>
<div class="row">
<button class="nachreichungInfos hidden" id="nachreichungInfos_<?php echo $dokument->akte_id?>"><?php echo ucfirst($this->p->t('infocenter','dokumentWirdNachgereicht')) ?></button>
<button class="nachreichungInfos hidden btn btn-default" id="nachreichungInfos_<?php echo $dokument->akte_id?>"><?php echo ucfirst($this->p->t('infocenter','dokumentWirdNachgereicht')) ?></button>
</div>
<div class="nachreichungInputs hidden" id="nachreichungInputs_<?php echo $dokument->akte_id?>">
@@ -49,7 +50,7 @@
<div class="row">
<div class="col-sm-12">
<div class="btn-group pull-right">
<input type="button" value="OK" class="btn btn-primary nachreichungSpeichern" id="nachreichungSpeichern_<?php echo $dokument->akte_id?>">
<input type="button" value="OK" class="btn btn-primary nachreichungSpeichern btn-default" id="nachreichungSpeichern_<?php echo $dokument->akte_id?>">
<input type="button" value="Abbrechen" class="btn btn-default nachreichungAbbrechen" id="nachreichungAbbrechen_<?php echo $dokument->akte_id?>">
</div>
</div>
@@ -60,6 +61,7 @@
</td>
<td><?php echo date_format(date_create($dokument->erstelltam), 'd.m.Y') ?></td>
<td><input type="button" value="<?php echo ucfirst($this->p->t('ui','loeschen')); ?>" class="btn btn-default dokLoeschen" id="dokLoeschen_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?>></td>
<td><?php echo $dokument->langtext ?></td>
<?php
if (!isset($formalReadonly)) :
@@ -1,31 +1,30 @@
<?php
$this->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);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
@@ -46,6 +45,6 @@
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
@@ -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,
@@ -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
@@ -1,232 +1,230 @@
<?php
$this->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);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<input type="hidden" id="hiddenpersonid" value="<?php echo $stammdaten->person_id ?>">
<div class="row<?php if ($lockedbyother) echo ' alert-danger' ?>">
<div class="col-lg-8">
<h3 class="page-header">
Infocenter Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?>
</h3>
</div>
<div class="col-lg-4">
<div class="headerright text-right">
<?php
if (isset($lockedby)):
echo $this->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;
?>
&nbsp;&nbsp;
<a href="<?php echo $unlockpath; ?>">
<i class="fa fa-sign-out"></i>&nbsp;<?php echo ucfirst($this->p->t('ui', 'freigeben')) ?>
</a>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<input type="hidden" id="hiddenpersonid" value="<?php echo $stammdaten->person_id ?>">
<div class="row<?php if ($lockedbyother) echo ' alert-danger' ?>">
<div class="col-lg-8">
<h3 class="page-header">
Infocenter Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?>
</h3>
</div>
<div class="col-lg-4">
<div class="headerright text-right">
<?php
if (isset($lockedby)):
echo $this->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;
?>
&nbsp;&nbsp;
<a href="<?php echo $unlockpath; ?>">
<i class="fa fa-sign-out"></i>&nbsp;<?php echo ucfirst($this->p->t('ui', 'freigeben')) ?>
</a>
<?php endif; ?>
<?php else: ?>
&nbsp;
<?php endif; ?>
<?php else: ?>
&nbsp;
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php if (!is_null($duplicated)): ?>
<div class="row alert-warning">
<h3 class="header col-lg-12">
<?php echo $this->p->t('global', 'bewerberVorhanden') . ':'; ?>
</h3>
<div class="text-left col-lg-12">
<?php
foreach ($duplicated as $duplicate)
{
echo 'Person ID: ' . $duplicate->person_id . '<br />';
}
?>
<?php if (!is_null($duplicated)): ?>
<div class="row alert-warning">
<h3 class="header col-lg-12">
<?php echo $this->p->t('global', 'bewerberVorhanden') . ':'; ?>
</h3>
<div class="text-left col-lg-12">
<?php
foreach ($duplicated as $duplicate)
{
echo 'Person ID: ' . $duplicate->person_id . '<br />';
}
?>
</div>
</div>
</div>
<?php endif; ?>
<br/>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<h4><?php echo ucfirst($this->p->t('global', 'stammdaten')) ?></h4>
</div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
<?php $this->load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./main column -->
</div> <!-- ./main row -->
</section>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<a name="DokPruef"></a><!-- anchor for jumping to the section -->
<div class="panel-heading text-center">
<h4>
<?php echo ucfirst($this->p->t('infocenter', 'dokumentenpruefung')) ?>
</h4>
</div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/dokpruefung.php'); ?>
<div id="nachzureichendeDoks">
<?php $this->load->view('system/infocenter/dokNachzureichend.php'); ?>
<?php endif; ?>
<br/>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<h4><?php echo ucfirst($this->p->t('global', 'stammdaten')) ?></h4>
</div>
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./column -->
</div> <!-- ./row -->
</section>
<section>
<div class="row">
<div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="ZgvPruef"></a>
<h4>
<?php echo $this->p->t('infocenter', 'zgv').' - '.ucfirst($this->p->t('lehre', 'pruefung'))?>
</h4>
</div>
<div class="panel-body" id="zgvpruefungen">
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
</div><!-- /.main panel body -->
</div> <!-- /.main panel-->
</div> <!-- /.column freigabe-->
</div> <!-- /.row freigabe-->
</section>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="Nachrichten"></a>
<h4 class="text-center">
<?php echo ucfirst($this->p->t('global', 'nachrichten')) ?>
</h4>
</div>
<div class="panel-body">
<div class="row" id="messagelist">
<?php
$this->load->view('system/infocenter/messageList.php', $messages);
?>
<div class="panel-body">
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
<?php $this->load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./main column -->
</div> <!-- ./main row -->
</section>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<a name="DokPruef"></a><!-- anchor for jumping to the section -->
<div class="panel-heading text-center">
<h4>
<?php echo ucfirst($this->p->t('infocenter', 'dokumentenpruefung')) ?>
</h4>
</div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/dokpruefung.php'); ?>
<div id="nachzureichendeDoks">
<?php $this->load->view('system/infocenter/dokNachzureichend.php'); ?>
</div>
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./column -->
</div> <!-- ./row -->
</section>
<section>
<div class="row">
<div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="ZgvPruef"></a>
<h4>
<?php echo $this->p->t('infocenter', 'zgv').' - '.ucfirst($this->p->t('lehre', 'pruefung'))?>
</h4>
</div>
<div class="panel-body" id="zgvpruefungen">
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
</div><!-- /.main panel body -->
</div> <!-- /.main panel-->
</div> <!-- /.column freigabe-->
</div> <!-- /.row freigabe-->
</section>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="Nachrichten"></a>
<h4 class="text-center">
<?php echo ucfirst($this->p->t('global', 'nachrichten')) ?>
</h4>
</div>
<div class="panel-body">
<div class="row" id="messagelist">
<?php
$this->load->view('system/infocenter/messageList.php', $messages);
?>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="NotizAkt"></a>
<h4 class="text-center">
<?php echo ucfirst($this->p->t('global', 'notizen')).' & '.ucfirst($this->p->t('global', 'aktivitaeten')) ?>
</h4>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<div id="addnotiz">
<?php $this->load->view('system/infocenter/addNotiz.php'); ?>
</section>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="NotizAkt"></a>
<h4 class="text-center">
<?php echo ucfirst($this->p->t('global', 'notizen')).' & '.ucfirst($this->p->t('global', 'aktivitaeten')) ?>
</h4>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<div id="addnotiz">
<?php $this->load->view('system/infocenter/addNotiz.php'); ?>
</div>
<div id="notizen">
<?php $this->load->view('system/infocenter/notizen.php'); ?>
</div>
</div>
<div id="notizen">
<?php $this->load->view('system/infocenter/notizen.php'); ?>
</div>
</div>
<div class="col-lg-6">
<div id="postponing"></div>
<div id="logs">
<?php $this->load->view('system/infocenter/logs.php'); ?>
</div>
</div> <!-- ./column -->
</div> <!-- ./row -->
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./main column -->
</div> <!-- ./main row -->
</section>
</div> <!-- ./container-fluid-->
</div> <!-- ./page-wrapper-->
</div> <!-- ./wrapper -->
<button id="scrollToTop" title="Go to top"><i class="fa fa-chevron-up"></i></button>
</body>
<div class="col-lg-6">
<div id="postponing"></div>
<div id="logs">
<?php $this->load->view('system/infocenter/logs.php'); ?>
</div>
</div> <!-- ./column -->
</div> <!-- ./row -->
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./main column -->
</div> <!-- ./main row -->
</section>
</div> <!-- ./container-fluid-->
</div> <!-- ./page-wrapper-->
</div> <!-- ./wrapper -->
<button id="scrollToTop" title="Go to top"><i class="fa fa-chevron-up"></i></button>
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -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,
@@ -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)
{
@@ -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,
@@ -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 @@
<button type="button" class="btn btn-default zgvAblehnen" id="zgvAblehnen_<?php echo $prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'zgvNichtErfuellt') ?>
</button>
<?php
if ($studiengang_typ === 'm') :
?>
<?php if ($studiengang_typ === 'm') : ?>
<button type="button" class="btn btn-default zgvAkzeptierenPruefung" id="zgvAkzeptierenPruefung_<?php echo $prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'zgvErfuelltPruefung') ?>
</button>
<?php
endif;
?>
<?php endif; ?>
<span class="zgvStatusText" id="zgvStatusText_<?php echo $prestudent_id ?>" data-info="need">
</span>
</div>
@@ -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,
@@ -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(
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header"><?php echo $this->p->t('infocenter', 'zugangsvoraussetzungen'); ?> <?php echo $studiengang_kurzbz; ?> - <?php echo $studiengang_bezeichnung; ?></h3>
<h3 class="page-header">
<?php echo $this->p->t('infocenter', 'zugangsvoraussetzungen'); ?>
<?php echo $studiengang_kurzbz; ?> -
<?php echo $studiengang_bezeichnung; ?>
</h3>
</div>
</div>
<div id="data">
@@ -35,3 +39,4 @@ $this->load->view(
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -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 -->
+7 -7
View File
@@ -3,13 +3,13 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Fehler Monitoring',
'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,
@@ -3,13 +3,13 @@ $this->load->view(
'templates/FHC-Header',
array(
'title' => 'Fehler Zuständigkeiten',
'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,
@@ -3,12 +3,12 @@
'templates/FHC-Header',
array(
'title' => 'Jobs Queue Viewer',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'tablesorter2' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
@@ -3,11 +3,11 @@
'templates/FHC-Header',
array(
'title' => 'Login',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'jquery3' => true,
'jqueryui1' => true,
'bootstrap3' => true,
'fontawesome4' => true,
'sbadmintemplate3' => true,
'ajaxlib' => true,
'dialoglib' => true,
'customCSSs' => 'public/css/Login.css',
+31 -37
View File
@@ -1,47 +1,41 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Logs Viewer',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'phrases' => array(
'global' => array('mailAnXversandt'),
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('public/js/bootstrapper.js')
)
$includesArray = array(
'title' => 'Logs Viewer',
'axios027' => true,
'bootstrap5' => true,
'fontawesome6' => true,
'vue3' => true,
'filtercomponent' => true,
'navigationcomponent' => true,
'tabulator5' => true,
'phrases' => array(
'global' => array('mailAnXversandt'),
'ui' => array('bitteEintragWaehlen')
),
'customJSModules' => array('public/js/apps/LogsViewer/LogsViewer.js')
);
$this->load->view('templates/FHC-Header', $includesArray);
?>
<body>
<div id="wrapper">
<div id="main">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<!-- Navigation component -->
<core-navigation-cmpt v-bind:add-side-menu-entries="appSideMenuEntries"></core-navigation-cmpt>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
Job Logs Viewer
</h3>
</div>
</div>
<div>
<?php $this->load->view('system/logs/logsViewerData.php'); ?>
</div>
<div id="content">
<div>
<!-- Filter component -->
<core-filter-cmpt
title="Job Logs Viewer"
filter-type="LogsViewer"
:tabulator-options="logsViewerTabulatorOptions"
:tabulator-events="logsViewerTabulatorEventHandlers"
@nw-new-entry="newSideMenuEntryHandler">
</core-filter-cmpt>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
@@ -1,66 +0,0 @@
<?php
$filterWidgetArray = array(
'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',
'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);
?>
@@ -0,0 +1,60 @@
<?php
$includesArray = array(
'title' => '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);
?>
<div id="main">
<!-- Navigation component -->
<core-navigation-cmpt :add-side-menu-entries="appSideMenuEntries"></core-navigation-cmpt>
<div id="content">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
Test Search
</h3>
</div>
</div>
<div>
<searchbar :searchoptions="searchbaroptions" :searchfunction="searchfunction"></searchbar>
<verticalsplit>
<template #top>
<searchbar :searchoptions="searchbaroptions" :searchfunction="searchfunctiondummy"></searchbar>
</template>
<template #bottom>
<!-- Filter component -->
<core-filter-cmpt filter-type="LogsViewer" @nw-new-entry="newSideMenuEntryHandler"></core-filter-cmpt>
</template>
</verticalsplit>
</div>
</div>
</div>
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
@@ -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')
@@ -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')
@@ -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')
@@ -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')
)
);
@@ -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')
)
);
@@ -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')
)
);
@@ -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')
)
@@ -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 @@
<?php
echo $this->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'
@@ -1,5 +1,5 @@
<?php
$this->load->view('templates/header', array('title' => 'TemplateEdit', 'jquery' => true, 'textile' => true));
$this->load->view('templates/header', array('title' => 'TemplateEdit', 'jquery3' => true, 'textile' => true));
?>
<div class="row">
@@ -1,5 +1,5 @@
<?php
$this->load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce' => true, 'jsonforms' => true));
$this->load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce4' => true, 'jsonforms' => true));
?>
<div class="row">
@@ -0,0 +1,46 @@
<?php
// All the following global variables are used in the FHC-Header and the FHC-Footer views
// By default set the parameters to null
$phrases = isset($phrases) ? $phrases : null;
// By default set the parameters to false
// External resources
$axios027 = isset($axios027) ? $axios027 : false;
$bootstrap3 = isset($bootstrap3) ? $bootstrap3 : false;
$bootstrap5 = isset($bootstrap5) ? $bootstrap5 : false;
$captcha3 = isset($captcha3) ? $captcha3 : false;
$fontawesome4 = isset($fontawesome4) ? $fontawesome4 : false;
$fontawesome6 = isset($fontawesome6) ? $fontawesome6 : false;
$jquery3 = isset($jquery3) ? $jquery3 : false;
$jqueryui1 = isset($jqueryui1) ? $jqueryui1 : false;
$jquerycheckboxes1 = isset($jquerycheckboxes1) ? $jquerycheckboxes1 : false;
$jquerytreetable3 = isset($jquerytreetable3) ? $jquerytreetable3 : false;
$momentjs2 = isset($momentjs2) ? $momentjs2 : false;
$pivotui2 = isset($pivotui2) ? $pivotui2 : false;
$sbadmintemplate3 = isset($sbadmintemplate3) ? $sbadmintemplate3 : false;
$tablesorter2 = isset($tablesorter2) ? $tablesorter2 : false;
$tabulator4 = isset($tabulator4) ? $tabulator4 : false;
$tabulator5 = isset($tabulator5) ? $tabulator5 : false;
$tinymce4 = isset($tinymce4) ? $tinymce4 : false;
$tinymce5 = isset($tinymce5) ? $tinymce5 : false;
$vue3 = isset($vue3) ? $vue3 : false;
$primevue3 = isset($primevue3) ? $primevue3 : false;
// Hooks
$addons = isset($addons) ? $addons : false;
// Internal resources
$ajaxlib = isset($ajaxlib) ? $ajaxlib : false;
$bootstrapper = isset($bootstrapper) ? $bootstrapper : false;
$dialoglib = isset($dialoglib) ? $dialoglib : false;
$filtercomponent = isset($filtercomponent) ? $filtercomponent : false;
$filterwidget = isset($filterwidget) ? $filterwidget : false;
$navigationcomponent = isset($navigationcomponent) ? $navigationcomponent : false;
$navigationwidget = isset($navigationwidget) ? $navigationwidget : false;
$tablecomponent = isset($tablecomponent) ? $tablecomponent : false;
$tablewidget = isset($tablewidget) ? $tablewidget : false;
$udfs = isset($udfs) ? $udfs : false;
$widgets = isset($widgets) ? $widgets : false;
+167
View File
@@ -1,3 +1,170 @@
<!-- Footer start -->
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
// Defines the includes variables
require('FHC-Common.php');
// All the following variables are used only in this view
// Retrieves the name of the index page, the URL path of the called controller and the called controller
// NOTE: placed here because it doesn't work inside functions
$indexPage = $this->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);
?>
</body>
</html>
<!-- Footer end -->
+59 -167
View File
@@ -1,45 +1,17 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
// Retrieves the name of the index page, the URL path of the called controller and the called controller
// NOTE: placed here because it doesn't work inside functions
$indexPage = $this->config->item('index_page');
$calledPath = $this->router->directory.$this->router->class;
$calledMethod = $this->router->method;
// Defines the includes variables
require('FHC-Common.php');
// All the following variables are used only in this view
// By default set the parameters to null
$title = isset($title) ? $title : null;
$refresh = isset($refresh) ? $refresh : null;
$customCSSs = isset($customCSSs) ? $customCSSs : null;
$customJSs = isset($customJSs) ? $customJSs : null;
$phrases = isset($phrases) ? $phrases : null;
// By default set the parameters to false
$addons = isset($addons) ? $addons : false;
$ajaxlib = isset($ajaxlib) ? $ajaxlib : false;
$bootstrap = isset($bootstrap) ? $bootstrap : false;
$captcha = isset($captcha) ? $captcha : false;
$dialoglib = isset($dialoglib) ? $dialoglib : false;
$filterwidget = isset($filterwidget) ? $filterwidget : false;
$fontawesome = isset($fontawesome) ? $fontawesome : false;
$jquery = isset($jquery) ? $jquery : false;
$jqueryui = isset($jqueryui) ? $jqueryui : false;
$jquerycheckboxes = isset($jquerycheckboxes) ? $jquerycheckboxes : false;
$jquerytreetable = isset($jquerytreetable) ? $jquerytreetable : false;
$momentjs = isset($momentjs) ? $momentjs : false;
$navigationwidget = isset($navigationwidget) ? $navigationwidget : false;
$pivotui = isset($pivotui) ? $pivotui : false;
$sbadmintemplate = isset($sbadmintemplate) ? $sbadmintemplate : false;
$tablesorter = isset($tablesorter) ? $tablesorter : false;
$tablewidget = isset($tablewidget) ? $tablewidget : false;
$tabulator = isset($tabulator) ? $tabulator : false;
$tinymce = isset($tinymce) ? $tinymce : false;
$udfs = isset($udfs) ? $udfs : false;
$widgets = isset($widgets) ? $widgets : false;
?>
<!-- Header start -->
<!DOCTYPE HTML>
<html>
<head>
@@ -58,47 +30,69 @@
// --------------------------------------------------------------------------------------------------------
// From vendor folder
// jQuery UI CSS
if ($jqueryui === true) generateCSSsInclude('vendor/components/jqueryui/themes/base/jquery-ui.min.css');
// Securimage CSS
if ($captcha3 === true) generateCSSsInclude('vendor/dapphp/securimage/securimage.css');
// Bootstrap CSS
if ($bootstrap === true) generateCSSsInclude('vendor/twbs/bootstrap/dist/css/bootstrap.min.css');
// Font Awesome 4 CSS free icons
if ($fontawesome4 === true) generateCSSsInclude('vendor/fortawesome/font-awesome4/css/font-awesome.min.css');
// Font Awesome 6 CSS free icons
if ($fontawesome6 === true)
{
generateCSSsInclude('vendor/fortawesome/font-awesome6/css/fontawesome.min.css');
generateCSSsInclude('vendor/fortawesome/font-awesome6/css/solid.min.css');
generateCSSsInclude('vendor/fortawesome/font-awesome6/css/brands.min.css');
}
// jQuery UI CSS
if ($jqueryui1 === true) generateCSSsInclude('vendor/components/jqueryui/themes/base/jquery-ui.min.css');
// jQuery treetable
if ($jquerytreetable === true) generateCSSsInclude('vendor/ludo/jquery-treetable/css/jquery.treetable.css');
if ($jquerytreetable3 === true) generateCSSsInclude('vendor/ludo/jquery-treetable/css/jquery.treetable.css');
// Font Awesome CSS
if ($fontawesome === true) generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css');
// Bootstrap 3 CSS
if ($bootstrap3 === true) generateCSSsInclude('vendor/twbs/bootstrap3/dist/css/bootstrap.min.css');
// Bootstrap 5 CSS
if ($bootstrap5 === true) generateCSSsInclude('vendor/twbs/bootstrap5/dist/css/bootstrap.min.css');
// PivotUI CSS
if ($pivotui === true) generateCSSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.css');
if ($pivotui2 === true) generateCSSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.css');
// SB Admin 2 template CSS
if ($sbadmintemplate === true)
if ($sbadmintemplate3 === true)
{
generateCSSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/vendor/metisMenu/metisMenu.min.css');
generateCSSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css');
generateCSSsInclude('vendor/blackrockdigital/startbootstrap-sb-admin-2/vendor/metisMenu/metisMenu.min.css');
generateCSSsInclude('vendor/blackrockdigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css');
}
// Securimage CSS
if ($captcha === true) generateCSSsInclude('vendor/dapphp/securimage/securimage.css');
// Table sorter CSS
if ($tablesorter === true)
{
generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
}
if ($tablesorter2 === true) generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
// Tabulator CSS
if ($tabulator === true)
// Tabulator 4 CSS
if ($tabulator4 === true)
{
generateCSSsInclude('vendor/olifolkerd/tabulator/dist/css/bootstrap/tabulator_bootstrap.min.css');
generateCSSsInclude('vendor/olifolkerd/tabulator4/dist/css/bootstrap/tabulator_bootstrap.min.css');
generateCSSsInclude('public/css/Tabulator.css');
}
// Tinymce CSS
if ($tinymce === true) generateCSSsInclude('public/css/TinyMCE.css');
// Tabulator 5 CSS
if ($tabulator5 === true) generateCSSsInclude('vendor/olifolkerd/tabulator5/dist/css/tabulator_bootstrap5.min.css');
// Tinymce 4 CSS
if ($tinymce4 === true) generateCSSsInclude('public/css/TinyMCE4.css');
// Tinymce 5 CSS
if ($tinymce5 === true) generateCSSsInclude('public/css/TinyMCE5.css');
// PrimeVUE
if ($primevue3 === true)
{
generateCSSsInclude('vendor/npm-asset/primevue/resources/themes/bootstrap4-light-blue/theme.css');
generateCSSsInclude('vendor/npm-asset/primevue/resources/primevue.min.css');
// generateCSSsInclude('vendor/npm-asset/primevue/resources/primeflex.min.css');
generateCSSsInclude('vendor/npm-asset/primeicons/primeicons.css');
}
// --------------------------------------------------------------------------------------------------------
// From public folder
@@ -109,9 +103,15 @@
// DialogLib CSS
if ($dialoglib === true) generateCSSsInclude('public/css/DialogLib.css');
// VUE FilterWidget CSS
if ($filtercomponent === true) generateCSSsInclude('public/css/components/FilterComponent.css');
// FilterWidget CSS
if ($filterwidget === true) generateCSSsInclude('public/css/FilterWidget.css');
// VUE NavigationWidget CSS
if ($navigationcomponent === true) generateCSSsInclude('public/css/components/NavigationComponent.css');
// NavigationWidget CSS
if ($navigationwidget === true) generateCSSsInclude('public/css/NavigationWidget.css');
@@ -120,117 +120,9 @@
// Eventually required CSS
generateCSSsInclude($customCSSs); // Eventually required CSS
// --------------------------------------------------------------------------------------------------------
// 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
// jQuery V3
if ($jquery === true) generateJSsInclude('vendor/components/jquery/jquery.min.js');
// jQuery UI
if ($jqueryui === 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 ($jquerycheckboxes === true) generateJSsInclude('vendor/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js');
// jQuery treetable
// NOTE: keep it after jQuery includes
if ($jquerytreetable === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js');
// Bootstrap JS
if ($bootstrap === true) generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
// SB Admin 2 template JS
if ($sbadmintemplate === 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');
}
// Securimage JS
if ($captcha === true) generateJSsInclude('vendor/dapphp/securimage/securimage.js');
// Moment JS
if ($momentjs === 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 ($pivotui === true) generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js');
// Table sorter JS
if ($tablesorter === 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 JS
if ($tabulator === true)
{
generateJSsInclude('vendor/olifolkerd/tabulator/dist/js/tabulator.min.js');
generateJSsInclude('vendor/olifolkerd/tabulator/dist/js/jquery_wrapper.min.js');
}
// Tinymce JS
if ($tinymce === true) generateJSsInclude('vendor/tinymce/tinymce/tinymce.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');
// FilterWidget JS
if ($filterwidget === true) generateJSsInclude('public/js/FilterWidget.js');
// NavigationWidget JS
if ($navigationwidget === true) generateJSsInclude('public/js/NavigationWidget.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);
?>
</head>
<body>
<!-- Header end -->
+8 -7
View File
@@ -41,12 +41,12 @@ if($jqueryV1 && $jqueryV2) show_error("Two JQuery versions used: composer and in
<?php endif ?>
<?php if($jqueryV1) : ?>
<script type="text/javascript" src="<?php echo base_url('vendor/jquery/jqueryV1/jquery-1.12.4.min.js'); ?>"></script>
<script type="text/javascript" src="<?php echo base_url('vendor/jquery/jquery1/jquery-1.12.4.min.js'); ?>"></script>
<script type="text/javascript" src="<?php echo base_url('vendor/christianbach/tablesorter/jquery.tablesorter.min.js'); ?>"></script>
<?php endif ?>
<?php if($jqueryV2) : ?>
<script type="text/javascript" src="<?php echo base_url('vendor/jquery/jqueryV2/jquery-2.2.4.min.js'); ?>"></script>
<script type="text/javascript" src="<?php echo base_url('vendor/jquery/jquery2/jquery-2.2.4.min.js'); ?>"></script>
<?php endif ?>
<?php if($jqueryui) : ?>
@@ -95,7 +95,7 @@ if($jqueryV1 && $jqueryV2) show_error("Two JQuery versions used: composer and in
<?php endif ?>
<?php if($tinymce) : ?>
<script type="text/javascript" src="<?php echo base_url('vendor/tinymce/tinymce/tinymce.min.js');?>"></script>
<script type="text/javascript" src="<?php echo base_url('vendor/tinymce/tinymce4/tinymce.min.js');?>"></script>
<?php endif ?>
<?php if($textile) : ?>
@@ -103,13 +103,13 @@ if($jqueryV1 && $jqueryV2) show_error("Two JQuery versions used: composer and in
<?php endif ?>
<?php if($jsoneditor) : ?>
<link rel="stylesheet" type="text/css" href="<?php echo base_url('vendor/jsoneditor/dist/jsoneditor.css');?>" />
<script type="text/javascript" src="<?php echo base_url('vendor/jsoneditor/dist/jsoneditor.js');?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url('vendor/josdejong/jsoneditor/dist/jsoneditor.css');?>" />
<script type="text/javascript" src="<?php echo base_url('vendor/josdejong/jsoneditor/dist/jsoneditor.js');?>"></script>
<?php endif ?>
<?php if($jsonforms) : ?>
<link rel="stylesheet" type="text/css" href="<?php echo base_url('vendor/json-forms/dist/css/brutusin-json-forms.min.css'); ?>" />
<script type="text/javascript" src="<?php echo base_url('vendor/json-forms/dist/js/brutusin-json-forms.min.js'); ?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url('vendor/brutusin/json-forms/dist/css/brutusin-json-forms.min.css'); ?>" />
<script type="text/javascript" src="<?php echo base_url('vendor/brutusin/json-forms/dist/js/brutusin-json-forms.min.js'); ?>"></script>
<?php endif ?>
<?php if($widgetsCSS) : ?>
@@ -117,3 +117,4 @@ if($jqueryV1 && $jqueryV2) show_error("Two JQuery versions used: composer and in
<?php endif ?>
</head>
+1 -1
View File
@@ -8,7 +8,7 @@ require_once('../include/phrasen.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
?>
<script src="../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script src="../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function () {
$('#ampel_div').html('');
+2 -2
View File
@@ -166,12 +166,12 @@ $db = new basis_db();
<link rel="stylesheet" href="../skin/jquery.css" type="text/css">
<link href="../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../vendor/jquery/sizzle/sizzle.js"></script>
<link rel="stylesheet" type="text/css" href="../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../vendor/twbs/bootstrap3/dist/css/bootstrap.min.css">
</head>
<script type="text/javascript">
function changeSprache(sprache)
+1 -1
View File
@@ -214,7 +214,7 @@ $refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !em
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
+1 -1
View File
@@ -42,7 +42,7 @@ ob_start();
<title>Menu</title>
<link href="../skin/flexcrollstyles.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../include/js/jquery.ui.datepicker.translation.js"></script>
+3 -3
View File
@@ -37,10 +37,10 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../vendor/twbs/bootstrap3/dist/css/bootstrap.min.css">
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/twbs/bootstrap3/dist/js/bootstrap.min.js"></script>
<title>'.$p->t('profil/Bildupload').'</title>
</head>
<body>

Some files were not shown because too many files have changed in this diff Show More