mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-03 13:19:28 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -3,553 +3,229 @@
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*
|
||||
* This controller operates between (interface) the JS (GUI) and the FiltersLib (back-end)
|
||||
* Provides data to the ajax get calls about the filter
|
||||
* Accepts 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
|
||||
*/
|
||||
class Filters extends VileSci_Controller
|
||||
class Filters extends FHC_Controller
|
||||
{
|
||||
const SESSION_NAME = 'FHC_FILTER_WIDGET';
|
||||
|
||||
const SELECTED_FIELDS = 'selectedFields';
|
||||
const SELECTED_FILTERS = 'selectedFilters';
|
||||
const ACTIVE_FILTERS = 'activeFilters';
|
||||
const ACTIVE_FILTERS_OPTION = 'activeFiltersOption';
|
||||
const ACTIVE_FILTERS_OPERATION = 'activeFiltersOperation';
|
||||
const FILTER_NAME = 'filterName';
|
||||
const FILTER_PAGE_PARAM = 'filter_page';
|
||||
|
||||
/**
|
||||
*
|
||||
* Calls the parent's constructor and loads the FiltersLib
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Load session library
|
||||
$this->load->library('session');
|
||||
|
||||
$this->load->model('system/Filters_model', 'FiltersModel');
|
||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
$this->_loadFiltersLib(); // Loads the FiltersLib with parameters
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
*
|
||||
* Retrives data about the current filter from the session and will be written on the output in JSON format
|
||||
*/
|
||||
public function tableDataset()
|
||||
public function getFilter()
|
||||
{
|
||||
$json = new stdClass();
|
||||
|
||||
$session = $this->_readSession($this->_getFilterUniqueId());
|
||||
|
||||
$json->selectedFields = $this->_getFromSession('selectedFields');
|
||||
$json->columnsAliases = $this->_getFromSession('columnsAliases');
|
||||
$json->additionalColumns = $this->_getFromSession('additionalColumns');
|
||||
$json->checkboxes = $this->_getFromSession('checkboxes');
|
||||
$json->dataset = $this->_getFromSession('dataset');
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
$this->outputJsonSuccess($this->filterslib->getSession());
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function selectFields()
|
||||
{
|
||||
$json = new stdClass();
|
||||
|
||||
$session = $this->_readSession($this->_getFilterUniqueId());
|
||||
|
||||
$json->allSelectedFields = $this->_getFromSession('allSelectedFields');
|
||||
$json->allColumnsAliases = $this->_getFromSession('allColumnsAliases');
|
||||
|
||||
$json->selectedFields = $this->_getFromSession('selectedFields');
|
||||
$json->columnsAliases = $this->_getFromSession('columnsAliases');
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function sortSelectedFields()
|
||||
{
|
||||
$selectedFieldsLst = $this->input->post('selectedFieldsLst');
|
||||
|
||||
$filterUniqueId = $this->_getFilterUniqueId();
|
||||
|
||||
$json = new stdClass();
|
||||
|
||||
$session = $this->_readSession($filterUniqueId);
|
||||
|
||||
$allSelectedFields = $this->_getFromSession('allSelectedFields');
|
||||
$allColumnsAliases = $this->_getFromSession('allColumnsAliases');
|
||||
|
||||
$json->selectedFields = $this->_getFromSession('selectedFields');
|
||||
$json->columnsAliases = $this->_getFromSession('columnsAliases');
|
||||
|
||||
if (isset($selectedFieldsLst) && is_array($selectedFieldsLst))
|
||||
{
|
||||
$json->selectedFields = $selectedFieldsLst;
|
||||
$json->columnsAliases = array();
|
||||
|
||||
for ($i = 0; $i < count($json->selectedFields); $i++)
|
||||
{
|
||||
$pos = array_search($json->selectedFields[$i], $allSelectedFields);
|
||||
|
||||
$json->columnsAliases[$i] = $json->selectedFields[$i];
|
||||
|
||||
if ($pos !== false)
|
||||
{
|
||||
if ($allColumnsAliases != null && is_array($allColumnsAliases))
|
||||
{
|
||||
$json->columnsAliases[$i] = $allColumnsAliases[$pos];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $json->selectedFields;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $json->columnsAliases;
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function selectFilters()
|
||||
{
|
||||
$json = new stdClass();
|
||||
|
||||
$session = $this->_readSession($this->_getFilterUniqueId());
|
||||
|
||||
$json->allSelectedFields = $this->_getFromSession('allSelectedFields');
|
||||
$json->allColumnsAliases = $this->_getFromSession('allColumnsAliases');
|
||||
|
||||
$json->selectedFilters = $this->_getFromSession('selectedFilters');
|
||||
$json->selectedFiltersAliases = array();
|
||||
$json->selectedFiltersMetaData = array();
|
||||
|
||||
$json->selectedFiltersActiveFilters = array();
|
||||
$json->selectedFiltersActiveFiltersOperation = array();
|
||||
$json->selectedFiltersActiveFiltersOption = array();
|
||||
|
||||
$metaData = $this->_getFromSession('metaData');
|
||||
$activeFilters = $this->_getFromSession('activeFilters');
|
||||
$activeFiltersOperation = $this->_getFromSession('activeFiltersOperation');
|
||||
$activeFiltersOption = $this->_getFromSession('activeFiltersOption');
|
||||
|
||||
for ($i = 0; $i < count($json->selectedFilters); $i++)
|
||||
{
|
||||
$pos = array_search($json->selectedFilters[$i], $json->allSelectedFields);
|
||||
|
||||
if ($pos !== false)
|
||||
{
|
||||
$json->selectedFiltersAliases[$i] = $json->selectedFilters[$i];
|
||||
if ($json->allColumnsAliases != null && is_array($json->allColumnsAliases))
|
||||
{
|
||||
$json->selectedFiltersAliases[$i] = $json->allColumnsAliases[$pos];
|
||||
}
|
||||
|
||||
$json->selectedFiltersMetaData[] = $metaData[$pos];
|
||||
|
||||
if (isset($activeFilters[$json->selectedFilters[$i]]))
|
||||
{
|
||||
$json->selectedFiltersActiveFilters[] = $activeFilters[$json->selectedFilters[$i]];
|
||||
}
|
||||
|
||||
if (isset($activeFiltersOperation[$json->selectedFilters[$i]]))
|
||||
{
|
||||
$json->selectedFiltersActiveFiltersOperation[] = $activeFiltersOperation[$json->selectedFilters[$i]];
|
||||
}
|
||||
|
||||
if (isset($activeFiltersOption[$json->selectedFilters[$i]]))
|
||||
{
|
||||
$json->selectedFiltersActiveFiltersOption[] = $activeFiltersOption[$json->selectedFilters[$i]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function saveFilter()
|
||||
{
|
||||
$this->_saveFilter($this->input->post("customFilterDescription"), $this->_getFilterUniqueId());
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode('Filter saved'));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _saveFilter($customFilterDescription, $filterUniqueId)
|
||||
{
|
||||
$objToBeSaved = new stdClass();
|
||||
|
||||
$filterSessionArray = $this->_readSession($filterUniqueId);
|
||||
|
||||
$objToBeSaved->name = $customFilterDescription;
|
||||
|
||||
if (isset($filterSessionArray[self::SELECTED_FIELDS]))
|
||||
{
|
||||
$selectedFields = $filterSessionArray[self::SELECTED_FIELDS];
|
||||
$objToBeSaved->columns = array();
|
||||
|
||||
for ($selectedFieldsCounter = 0; $selectedFieldsCounter < count($selectedFields); $selectedFieldsCounter++)
|
||||
{
|
||||
$objToBeSaved->columns[$selectedFieldsCounter] = new stdClass();
|
||||
$objToBeSaved->columns[$selectedFieldsCounter]->name = $selectedFields[$selectedFieldsCounter];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($filterSessionArray[self::SELECTED_FILTERS]))
|
||||
{
|
||||
$selectedFilters = $filterSessionArray[self::SELECTED_FILTERS];
|
||||
$objToBeSaved->filters = array();
|
||||
|
||||
for ($selectedFiltersCounter = 0; $selectedFiltersCounter < count($selectedFilters); $selectedFiltersCounter++)
|
||||
{
|
||||
$objToBeSaved->filters[$selectedFiltersCounter] = new stdClass();
|
||||
$objToBeSaved->filters[$selectedFiltersCounter]->name = $selectedFilters[$selectedFiltersCounter];
|
||||
|
||||
if (isset($filterSessionArray[self::ACTIVE_FILTERS])
|
||||
&& isset($filterSessionArray[self::ACTIVE_FILTERS][$selectedFilters[$selectedFiltersCounter]]))
|
||||
{
|
||||
$objToBeSaved->filters[$selectedFiltersCounter]->condition = $filterSessionArray[self::ACTIVE_FILTERS][$selectedFilters[$selectedFiltersCounter]];
|
||||
}
|
||||
|
||||
if (isset($filterSessionArray[self::ACTIVE_FILTERS_OPERATION])
|
||||
&& isset($filterSessionArray[self::ACTIVE_FILTERS_OPERATION][$selectedFilters[$selectedFiltersCounter]]))
|
||||
{
|
||||
$objToBeSaved->filters[$selectedFiltersCounter]->operation = $filterSessionArray[self::ACTIVE_FILTERS_OPERATION][$selectedFilters[$selectedFiltersCounter]];
|
||||
}
|
||||
|
||||
if (isset($filterSessionArray[self::ACTIVE_FILTERS_OPTION])
|
||||
&& isset($filterSessionArray[self::ACTIVE_FILTERS_OPTION][$selectedFilters[$selectedFiltersCounter]]))
|
||||
{
|
||||
$objToBeSaved->filters[$selectedFiltersCounter]->option = $filterSessionArray[self::ACTIVE_FILTERS_OPTION][$selectedFilters[$selectedFiltersCounter]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$desc = $customFilterDescription;
|
||||
$descPGArray = '{"'.$desc.'", "'.$desc.'", "'.$desc.'", "'.$desc.'"}';
|
||||
|
||||
$resultBenutzer = $this->BenutzerModel->load(getAuthUID());
|
||||
$personId = $resultBenutzer->retval[0]->person_id;
|
||||
|
||||
$result = $this->FiltersModel->loadWhere(array(
|
||||
'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'],
|
||||
'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'],
|
||||
'description' => $descPGArray,
|
||||
'person_id' => $personId
|
||||
));
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$this->FiltersModel->update(
|
||||
array(
|
||||
'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'],
|
||||
'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'],
|
||||
'description' => $descPGArray,
|
||||
'person_id' => $personId
|
||||
),
|
||||
array(
|
||||
'filter' => json_encode($objToBeSaved)
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->FiltersModel->insert(array(
|
||||
'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'],
|
||||
'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'],
|
||||
'filter_kurzbz' => uniqid($personId, true),
|
||||
'person_id' => $personId,
|
||||
'description' => $descPGArray,
|
||||
'sort' => null,
|
||||
'default_filter' => false,
|
||||
'filter' => json_encode($objToBeSaved),
|
||||
'oe_kurzbz' => null
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function deleteCustomFilter()
|
||||
{
|
||||
$filter_id = $this->input->post('filter_id');
|
||||
|
||||
if (is_numeric($filter_id))
|
||||
{
|
||||
$this->FiltersModel->deleteCustomFilter($filter_id);
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode('Removed'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function removeSelectedFields()
|
||||
{
|
||||
$fieldName = $this->input->post('fieldName');
|
||||
$filterUniqueId = $this->_getFilterUniqueId();
|
||||
|
||||
$session = $this->_readSession($filterUniqueId);
|
||||
|
||||
$allSelectedFields = $this->_getFromSession('allSelectedFields');
|
||||
$allColumnsAliases = $this->_getFromSession('allColumnsAliases');
|
||||
|
||||
$selectedFields = $this->_getFromSession('selectedFields');
|
||||
$columnsAliases = $this->_getFromSession('columnsAliases');
|
||||
|
||||
if (($pos = array_search($fieldName, $selectedFields)) !== false)
|
||||
{
|
||||
array_splice($selectedFields, $pos, 1);
|
||||
|
||||
if ($columnsAliases != null && is_array($columnsAliases))
|
||||
{
|
||||
array_splice($columnsAliases, $pos, 1);
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $selectedFields;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $columnsAliases;
|
||||
|
||||
$json = new stdClass();
|
||||
|
||||
$json->allSelectedFields = $allSelectedFields;
|
||||
$json->allColumnsAliases = $allColumnsAliases;
|
||||
$json->selectedFields = $selectedFields;
|
||||
$json->columnsAliases = $columnsAliases;
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function removeSelectedFilters()
|
||||
{
|
||||
$fieldName = $this->input->post('fieldName');
|
||||
$filterUniqueId = $this->_getFilterUniqueId();
|
||||
|
||||
$session = $this->_readSession($filterUniqueId);
|
||||
|
||||
$selectedFilters = $this->_getFromSession('selectedFilters');
|
||||
$selectedFiltersActiveFilters = $this->_getFromSession('activeFilters');
|
||||
$selectedFiltersActiveFiltersOperation = $this->_getFromSession('activeFiltersOperation');
|
||||
$selectedFiltersActiveFiltersOption = $this->_getFromSession('activeFiltersOption');
|
||||
|
||||
if (($pos = array_search($fieldName, $selectedFilters)) !== false)
|
||||
{
|
||||
array_splice($selectedFilters, $pos, 1);
|
||||
array_splice($selectedFiltersActiveFilters, $pos, 1);
|
||||
array_splice($selectedFiltersActiveFiltersOperation, $pos, 1);
|
||||
array_splice($selectedFiltersActiveFiltersOption, $pos, 1);
|
||||
}
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFilters'] = $selectedFilters;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $selectedFiltersActiveFilters;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption;
|
||||
|
||||
$json = new stdClass();
|
||||
|
||||
$json->selectedFilters = $selectedFilters;
|
||||
$json->selectedFiltersActiveFilters = $selectedFiltersActiveFilters;
|
||||
$json->selectedFiltersActiveFiltersOperation = $selectedFiltersActiveFiltersOperation;
|
||||
$json->selectedFiltersActiveFiltersOption = $selectedFiltersActiveFiltersOption;
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function addSelectedFields()
|
||||
{
|
||||
$fieldName = $this->input->post('fieldName');
|
||||
$filterUniqueId = $this->_getFilterUniqueId();
|
||||
|
||||
$session = $this->_readSession($filterUniqueId);
|
||||
|
||||
$allSelectedFields = $this->_getFromSession('allSelectedFields');
|
||||
$allColumnsAliases = $this->_getFromSession('allColumnsAliases');
|
||||
|
||||
$selectedFields = $this->_getFromSession('selectedFields');
|
||||
$columnsAliases = $this->_getFromSession('columnsAliases');
|
||||
|
||||
if (($pos = array_search($fieldName, $allSelectedFields)) !== false
|
||||
&& array_search($fieldName, $selectedFields) === false)
|
||||
{
|
||||
array_push($selectedFields, $fieldName);
|
||||
|
||||
if ($columnsAliases != null && is_array($columnsAliases))
|
||||
{
|
||||
array_push($columnsAliases, $allColumnsAliases[$pos]);
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $selectedFields;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $columnsAliases;
|
||||
|
||||
$json = new stdClass();
|
||||
|
||||
$json->allSelectedFields = $allSelectedFields;
|
||||
$json->allColumnsAliases = $allColumnsAliases;
|
||||
$json->selectedFields = $selectedFields;
|
||||
$json->columnsAliases = $columnsAliases;
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function addSelectedFilters()
|
||||
{
|
||||
$fieldName = $this->input->post('fieldName');
|
||||
$filterUniqueId = $this->_getFilterUniqueId();
|
||||
|
||||
$session = $this->_readSession($filterUniqueId);
|
||||
|
||||
$selectedFilters = $this->_getFromSession('selectedFilters');
|
||||
$selectedFiltersActiveFilters = $this->_getFromSession('activeFilters');
|
||||
$selectedFiltersActiveFiltersOperation = $this->_getFromSession('activeFiltersOperation');
|
||||
$selectedFiltersActiveFiltersOption = $this->_getFromSession('activeFiltersOption');
|
||||
|
||||
if (!in_array($fieldName, $selectedFilters))
|
||||
{
|
||||
array_push($selectedFilters, $fieldName);
|
||||
$selectedFiltersActiveFilters[$fieldName] = "";
|
||||
$selectedFiltersActiveFiltersOperation[$fieldName] = "";
|
||||
$selectedFiltersActiveFiltersOption[$fieldName] = "";
|
||||
}
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFilters'] = $selectedFilters;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $selectedFiltersActiveFilters;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption;
|
||||
|
||||
$json = new stdClass();
|
||||
|
||||
$json->selectedFilters = $selectedFilters;
|
||||
$json->selectedFiltersActiveFilters = $selectedFiltersActiveFilters;
|
||||
$json->selectedFiltersActiveFiltersOperation = $selectedFiltersActiveFiltersOperation;
|
||||
$json->selectedFiltersActiveFiltersOption = $selectedFiltersActiveFiltersOption;
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function applyFilter()
|
||||
{
|
||||
$fieldNames = $this->input->post('filterNames');
|
||||
$filterOperations = $this->input->post('filterOperations');
|
||||
$filterOperationValues = $this->input->post('filterOperationValues');
|
||||
$filterOptions = $this->input->post('filterOptions');
|
||||
$filterUniqueId = $this->_getFilterUniqueId();
|
||||
|
||||
$session = $this->_readSession($filterUniqueId);
|
||||
|
||||
$activeFilters = array_combine($fieldNames, $filterOperationValues);
|
||||
$activeFiltersOperation = array_combine($fieldNames, $filterOperations);
|
||||
$activeFiltersOption = array_combine($fieldNames, $filterOptions);
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $activeFilters;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $activeFiltersOperation;
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $activeFiltersOption;
|
||||
|
||||
$json = new stdClass();
|
||||
|
||||
$json->fieldNames = $fieldNames;
|
||||
$json->activeFilters = $activeFilters;
|
||||
$json->activeFiltersOperation = $activeFiltersOperation;
|
||||
$json->activeFiltersOption = $activeFiltersOption;
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Retrives the number of records present in the current dataset and will be written on the output in JSON format
|
||||
*/
|
||||
public function rowNumber()
|
||||
{
|
||||
$json = new stdClass();
|
||||
$rowNumber = 0;
|
||||
$dataset = $this->filterslib->getElementSession(FiltersLib::SESSION_DATASET);
|
||||
|
||||
$session = $this->_readSession($this->_getFilterUniqueId());
|
||||
|
||||
$dataset = $this->_getFromSession('dataset');
|
||||
|
||||
if (is_array($dataset))
|
||||
if (isset($dataset) && is_array($dataset))
|
||||
{
|
||||
$json->rowNumber = count($dataset);
|
||||
$rowNumber = count($dataset);
|
||||
}
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
$this->outputJsonSuccess($rowNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Change the sort of the selected fields of the current filter and
|
||||
* its data will be written on the output in JSON format
|
||||
*/
|
||||
private function _readSession($filterUniqueId)
|
||||
public function sortSelectedFields()
|
||||
{
|
||||
if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$filterUniqueId]))
|
||||
return $_SESSION[self::SESSION_NAME][$filterUniqueId];
|
||||
$selectedFields = $this->input->post('selectedFields');
|
||||
|
||||
return array();
|
||||
if ($this->filterslib->sortSelectedFields($selectedFields) == true)
|
||||
{
|
||||
$this->getFilter();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Remove a selected field from the current filter and
|
||||
* its data will be written on the output in JSON format
|
||||
*/
|
||||
private function _writeSession($data, $filterUniqueId)
|
||||
public function removeSelectedField()
|
||||
{
|
||||
if (!isset($_SESSION[self::SESSION_NAME])
|
||||
|| (isset($_SESSION[self::SESSION_NAME]) && !is_array($_SESSION[self::SESSION_NAME])))
|
||||
{
|
||||
$_SESSION[self::SESSION_NAME] = array();
|
||||
}
|
||||
$selectedField = $this->input->post('selectedField');
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$filterUniqueId] = $data;
|
||||
if ($this->filterslib->removeSelectedField($selectedField) == true)
|
||||
{
|
||||
$this->getFilter();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Add a field to the current filter and its data will be written on the output in JSON format
|
||||
*/
|
||||
private function _getFilterUniqueId()
|
||||
public function addSelectedField()
|
||||
{
|
||||
$_getFilterUniqueId = '';
|
||||
$selectedField = $this->input->post('selectedField');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST')
|
||||
if ($this->filterslib->addSelectedField($selectedField) == true)
|
||||
{
|
||||
$_getFilterUniqueId = $this->input->post('filter_page').'/'.$this->input->post('fhc_controller_id');
|
||||
$this->getFilter();
|
||||
}
|
||||
elseif ($_SERVER['REQUEST_METHOD'] === 'GET')
|
||||
else
|
||||
{
|
||||
$_getFilterUniqueId = $this->input->get('filter_page').'/'.$this->input->get('fhc_controller_id');
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
|
||||
return $_getFilterUniqueId;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Remove an applied filter (SQL where condition) from the current filter
|
||||
*/
|
||||
private function _getFromSession($el)
|
||||
public function removeAppliedFilter()
|
||||
{
|
||||
$_getFromSession = null;
|
||||
$appliedFilter = $this->input->post('appliedFilter');
|
||||
|
||||
if (isset($_SESSION[$el])) return $_SESSION[$el];
|
||||
if ($this->filterslib->removeAppliedFilter($appliedFilter) == true)
|
||||
{
|
||||
$this->outputJsonSuccess('Removed');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
}
|
||||
|
||||
return $_getFromSession;
|
||||
/**
|
||||
* Apply all the applied filters (SQL where conditions) to the current filter
|
||||
*/
|
||||
public function applyFilters()
|
||||
{
|
||||
$appliedFilters = $this->input->post('appliedFilters');
|
||||
$appliedFiltersOperations = $this->input->post('appliedFiltersOperations');
|
||||
$appliedFiltersConditions = $this->input->post('appliedFiltersConditions');
|
||||
$appliedFiltersOptions = $this->input->post('appliedFiltersOptions');
|
||||
|
||||
if ($this->filterslib->applyFilters(
|
||||
$appliedFilters,
|
||||
$appliedFiltersOperations,
|
||||
$appliedFiltersConditions,
|
||||
$appliedFiltersOptions
|
||||
) == true)
|
||||
{
|
||||
$this->outputJsonSuccess('Applied');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a filter (SQL where clause) to be applied to the current filter
|
||||
*/
|
||||
public function addFilter()
|
||||
{
|
||||
$filter = $this->input->post('filter');
|
||||
|
||||
if ($this->filterslib->addFilter($filter) == true)
|
||||
{
|
||||
$this->getFilter();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the current filter as a custom filter for this user with the given description
|
||||
*/
|
||||
public function saveCustomFilter()
|
||||
{
|
||||
$customFilterDescription = $this->input->post('customFilterDescription');
|
||||
|
||||
if ($this->filterslib->saveCustomFilter($customFilterDescription) == true)
|
||||
{
|
||||
$this->outputJsonSuccess('Saved');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a custom filter by its filter_id
|
||||
*/
|
||||
public function removeCustomFilter()
|
||||
{
|
||||
$filter_id = $this->input->post('filter_id');
|
||||
|
||||
if ($this->filterslib->removeCustomFilter($filter_id) == true)
|
||||
{
|
||||
$this->outputJsonSuccess('Removed');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonError('Wrong parameter');
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Loads the FiltersLib with the FILTER_PAGE_PARAM parameter
|
||||
* If the parameter FILTER_PAGE_PARAM is not given then the execution of the controller is terminated and
|
||||
* an error message is printed
|
||||
*/
|
||||
private function _loadFiltersLib()
|
||||
{
|
||||
// If the parameter FILTER_PAGE_PARAM is present in the HTTP GET or POST
|
||||
if (isset($_GET[self::FILTER_PAGE_PARAM]) || isset($_POST[self::FILTER_PAGE_PARAM]))
|
||||
{
|
||||
// If it is present in the HTTP GET
|
||||
if (isset($_GET[self::FILTER_PAGE_PARAM]))
|
||||
{
|
||||
$filterPage = $this->input->get(self::FILTER_PAGE_PARAM); // is retrived from the HTTP GET
|
||||
}
|
||||
elseif (isset($_POST[self::FILTER_PAGE_PARAM])) // Else if it is present in the HTTP POST
|
||||
{
|
||||
$filterPage = $this->input->post(self::FILTER_PAGE_PARAM); // is retrived from the HTTP POST
|
||||
}
|
||||
|
||||
// Loads the FiltersLib that contains all the used logic
|
||||
$this->load->library('FiltersLib', array(self::FILTER_PAGE_PARAM => $filterPage));
|
||||
}
|
||||
else // Otherwise an error will be written in the output
|
||||
{
|
||||
// NOTE: Used echo to speed up the output before the exit otherwise it's not shown
|
||||
echo 'Parameter "'.self::FILTER_PAGE_PARAM.'" not provided!';
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,24 +129,31 @@ class InfoCenter extends FHC_Controller
|
||||
|
||||
$personexists = $this->PersonModel->load($person_id);
|
||||
|
||||
if(isError($personexists))
|
||||
if (isError($personexists))
|
||||
show_error($personexists->retval);
|
||||
|
||||
if (empty($personexists->retval))
|
||||
show_error('person does not exist!');
|
||||
|
||||
//mark person as locked for editing
|
||||
$result = $this->PersonLockModel->lockPerson($person_id, $this->uid, self::APP);
|
||||
$show_lock_link_get = $this->input->get('show_lock_link');
|
||||
$show_lock_link = !isset($show_lock_link_get) || $show_lock_link_get === '1';
|
||||
|
||||
if(isError($result))
|
||||
show_error($result->retval);
|
||||
if ($show_lock_link)
|
||||
{
|
||||
//mark person as locked for editing
|
||||
$result = $this->PersonLockModel->lockPerson($person_id, $this->uid, self::APP);
|
||||
|
||||
if (isError($result))
|
||||
show_error($result->retval);
|
||||
}
|
||||
|
||||
$persondata = $this->_loadPersonData($person_id);
|
||||
$prestudentdata = $this->_loadPrestudentData($person_id);
|
||||
|
||||
$data = array_merge(
|
||||
$persondata,
|
||||
$prestudentdata
|
||||
$prestudentdata,
|
||||
array('show_lock_link' => $show_lock_link)
|
||||
);
|
||||
|
||||
$data['fhc_controller_id'] = $this->fhc_controller_id;
|
||||
@@ -162,7 +169,7 @@ class InfoCenter extends FHC_Controller
|
||||
{
|
||||
$result = $this->PersonLockModel->unlockPerson($person_id, self::APP);
|
||||
|
||||
if(isError($result))
|
||||
if (isError($result))
|
||||
show_error($result->retval);
|
||||
|
||||
redirect(self::URL_PREFIX.'?fhc_controller_id='.$this->fhc_controller_id);
|
||||
@@ -245,9 +252,7 @@ class InfoCenter extends FHC_Controller
|
||||
$data['data'] = $studienordnung->retval[0]->data;
|
||||
}
|
||||
|
||||
$this->load->view('system/infocenter/studiengangZgvInfo.php',
|
||||
$data
|
||||
);
|
||||
$this->load->view('system/infocenter/studiengangZgvInfo.php', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -721,6 +726,18 @@ class InfoCenter extends FHC_Controller
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for setNavigationMenu, returns JSON message
|
||||
*/
|
||||
public function setNavigationMenuArrayJson()
|
||||
{
|
||||
$this->setNavigationMenuArray();
|
||||
|
||||
$this->output
|
||||
->set_content_type('application/json')
|
||||
->set_output(json_encode(success('success')));
|
||||
}
|
||||
|
||||
private function _fillFilters($filters, &$tofill)
|
||||
{
|
||||
foreach ($filters as $filterId => $description)
|
||||
@@ -744,7 +761,7 @@ class InfoCenter extends FHC_Controller
|
||||
'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter'), 'filter_id', $filterId),
|
||||
'description' => $description,
|
||||
'subscriptDescription' => 'Remove',
|
||||
'subscriptLinkClass' => 'remove-filter',
|
||||
'subscriptLinkClass' => 'remove-custom-filter',
|
||||
'subscriptLinkValue' => $filterId
|
||||
);
|
||||
}
|
||||
|
||||
@@ -20,16 +20,22 @@ class FHC_Controller extends CI_Controller
|
||||
$this->load->helper('fhcauth');
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Wrapper to load phrases using the PhrasesLib
|
||||
* NOTE: The library is loaded with the alias 'p', so must me used with this alias in the rest of the code.
|
||||
* EX: $this->p->t(<category>, <phrase name>)
|
||||
*/
|
||||
public function loadPhrases($categories, $language = null)
|
||||
protected function loadPhrases($categories, $language = null)
|
||||
{
|
||||
$this->load->library('PhrasesLib', array($categories, $language), 'p');
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Protected methods
|
||||
|
||||
/**
|
||||
* Sets the unique id for the called controller
|
||||
* NOTE: it is only working with HTTP GET request, not neeaded with POST
|
||||
@@ -67,4 +73,33 @@ class FHC_Controller extends CI_Controller
|
||||
{
|
||||
return $this->_controllerId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method to output a success using JSON as content type
|
||||
* Wraps the private method _outputJson
|
||||
*/
|
||||
protected function outputJsonSuccess($mixed)
|
||||
{
|
||||
$this->_outputJson(success($mixed));
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method to output an error using JSON as content type
|
||||
* Wraps the private method _outputJson
|
||||
*/
|
||||
protected function outputJsonError($mixed)
|
||||
{
|
||||
$this->_outputJson(error($mixed));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Utility method to output using JSON as content type
|
||||
*/
|
||||
private function _outputJson($mixed)
|
||||
{
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($mixed));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,817 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* FilterWidget logic
|
||||
*/
|
||||
class FiltersLib
|
||||
{
|
||||
// Session parameters names
|
||||
const SESSION_NAME = 'FHC_FILTER_WIDGET'; // Filter session name
|
||||
const SESSION_FILTER_NAME = 'filterName';
|
||||
const SESSION_FIELDS = 'fields';
|
||||
const SESSION_SELECTED_FIELDS = 'selectedFields';
|
||||
const SESSION_COLUMNS_ALIASES = 'columnsAliases';
|
||||
const SESSION_ADDITIONAL_COLUMNS = 'additionalColumns';
|
||||
const SESSION_CHECKBOXES = 'checkboxes';
|
||||
const SESSION_FILTERS = 'filters';
|
||||
const SESSION_METADATA = 'datasetMetadata';
|
||||
const SESSION_DATASET = 'dataset';
|
||||
const SESSION_ROW_NUMBER = 'rowNumber';
|
||||
const SESSION_RELOAD_DATASET = 'reloadDataset';
|
||||
|
||||
// Alias for the dynamic table used to retrive the dataset
|
||||
const DATASET_TABLE_ALIAS = 'datasetFilterTable';
|
||||
|
||||
// Parameters names...
|
||||
// ...to identify a single filter widget in the session
|
||||
const FHC_CONTROLLER_ID = 'fhc_controller_id';
|
||||
|
||||
// ...to identify a single filter widget in the DB
|
||||
const FILTER_ID = 'filter_id';
|
||||
const APP_PARAMETER = 'app';
|
||||
const DATASET_NAME_PARAMETER = 'datasetName';
|
||||
const FILTER_KURZBZ_PARAMETER = 'filterKurzbz';
|
||||
|
||||
// ...stament to retrive the dataset
|
||||
const QUERY_PARAMETER = 'query';
|
||||
|
||||
// ...to specify more columns or aliases for them
|
||||
const ADDITIONAL_COLUMNS = 'additionalColumns';
|
||||
const CHECKBOXES = 'checkboxes';
|
||||
const COLUMNS_ALIASES = 'columnsAliases';
|
||||
|
||||
// ...to format/mark records of a dataset
|
||||
const FORMAT_ROW = 'formatRow';
|
||||
const MARK_ROW = 'markRow';
|
||||
|
||||
// ...to hide the options for a filter
|
||||
const HIDE_HEADER = 'hideHeader';
|
||||
const HIDE_SAVE = 'hideSave';
|
||||
|
||||
// Filter operations values
|
||||
const OP_EQUAL = 'equal';
|
||||
const OP_NOT_EQUAL = 'nequal';
|
||||
const OP_GREATER_THAN = 'gt';
|
||||
const OP_LESS_THAN = 'lt';
|
||||
const OP_IS_TRUE = 'true';
|
||||
const OP_IS_FALSE = 'false';
|
||||
const OP_CONTAINS = 'contains';
|
||||
const OP_NOT_CONTAINS = 'ncontains';
|
||||
const OP_SET = 'set';
|
||||
const OP_NOT_SET = 'nset';
|
||||
|
||||
// Filter options values
|
||||
const OPT_DAYS = 'days';
|
||||
const OPT_MONTHS = 'months';
|
||||
|
||||
const FILTER_PHRASES_CATEGORY = 'FilterWidget'; // The category used to store phrases for the FilterWidget
|
||||
|
||||
const FILTER_PAGE_PARAM = 'filter_page'; // Filter page parameter used to overwrite the page URI
|
||||
|
||||
private $_ci; // Code igniter instance
|
||||
private $_filterUniqueId; // unique id for this filter widget
|
||||
|
||||
/**
|
||||
* Gets the CI instance and loads message helper
|
||||
*/
|
||||
public function __construct($params = null)
|
||||
{
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
// Loads helper message to manage returning messages
|
||||
$this->_ci->load->helper('message');
|
||||
|
||||
$this->_filterUniqueId = $this->_getFilterUniqueId($params); // sets the id for the related filter widget
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Returns the whole session for this filter widget if found, otherwise null
|
||||
*/
|
||||
public function getSession()
|
||||
{
|
||||
$session = null;
|
||||
|
||||
// If it is present a session for this filter
|
||||
if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$this->_filterUniqueId]))
|
||||
{
|
||||
$session = $_SESSION[self::SESSION_NAME][$this->_filterUniqueId];
|
||||
}
|
||||
|
||||
return $session;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns one element from the session of this filter widget, otherwise null
|
||||
*/
|
||||
public function getElementSession($name)
|
||||
{
|
||||
$session = $this->getSession(); // get the whole session for this filter
|
||||
|
||||
if (isset($session[$name]))
|
||||
{
|
||||
return $session[$name];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the whole session for this filter widget
|
||||
*/
|
||||
public function setSession($data)
|
||||
{
|
||||
// If is NOT already present into the session
|
||||
if (!isset($_SESSION[self::SESSION_NAME])
|
||||
|| (isset($_SESSION[self::SESSION_NAME]) && !is_array($_SESSION[self::SESSION_NAME])))
|
||||
{
|
||||
$_SESSION[self::SESSION_NAME] = array(); // then create it
|
||||
}
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$this->_filterUniqueId] = $data; // stores data
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets one element of the session of this filter widget
|
||||
*/
|
||||
public function setElementSession($name, $value)
|
||||
{
|
||||
// If is NOT already present into the session
|
||||
if (!isset($_SESSION[self::SESSION_NAME])
|
||||
|| (isset($_SESSION[self::SESSION_NAME]) && !is_array($_SESSION[self::SESSION_NAME])))
|
||||
{
|
||||
$_SESSION[self::SESSION_NAME] = array(); // then create it
|
||||
}
|
||||
|
||||
// If the session for this filter is NOT already present into the session
|
||||
if (!isset($_SESSION[self::SESSION_NAME][$this->_filterUniqueId])
|
||||
|| (isset($_SESSION[self::SESSION_NAME][$this->_filterUniqueId])
|
||||
&& !is_array($_SESSION[self::SESSION_NAME][$this->_filterUniqueId])))
|
||||
{
|
||||
$_SESSION[self::SESSION_NAME][$this->_filterUniqueId] = array(); // then create it
|
||||
}
|
||||
|
||||
$_SESSION[self::SESSION_NAME][$this->_filterUniqueId][$name] = $value; // stores the single value
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the definition data from DB for a filter widget
|
||||
*/
|
||||
public function loadDefinition($filterId, $app, $datasetName, $filterKurzbz)
|
||||
{
|
||||
// Loads the needed models
|
||||
$this->_ci->load->model('system/Filters_model', 'FiltersModel');
|
||||
$this->_ci->load->model('person/Benutzer_model', 'BenutzerModel'); // to get the default custom filter
|
||||
|
||||
$this->_ci->FiltersModel->resetQuery(); // reset any previous built query
|
||||
|
||||
$this->_ci->FiltersModel->addJoin('public.tbl_benutzer', 'person_id', 'LEFT'); // left join with benutzer table
|
||||
$this->_ci->FiltersModel->addSelect('system.tbl_filters.*'); // select only from table filters
|
||||
$this->_ci->FiltersModel->addOrder('sort', 'ASC'); // sort on column sort
|
||||
$this->_ci->FiltersModel->addLimit(1); // if more than one filter is set as default only one will be retrived
|
||||
|
||||
$definition = null;
|
||||
$whereParameters = null; // where clause parameters
|
||||
|
||||
// If we have a good filterId then use it!
|
||||
if ($filterId != null && is_numeric($filterId) && $filterId > 0)
|
||||
{
|
||||
$whereParameters = array(
|
||||
'filter_id' => $filterId
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
// If we can univocally retrive a filter
|
||||
if ($app != null && $datasetName != null && $filterKurzbz != null)
|
||||
{
|
||||
$whereParameters = array(
|
||||
'app' => $app,
|
||||
'dataset_name' => $datasetName,
|
||||
'filter_kurzbz' => $filterKurzbz
|
||||
);
|
||||
}
|
||||
// Else if we have only app and datasetName
|
||||
elseif ($app != null && $datasetName != null && $filterKurzbz == null)
|
||||
{
|
||||
// Try to load the custom filter (person_id = logged user person_id) with the given "app" and "dataset_name"
|
||||
// that is set as default filter (default_filter = true)
|
||||
$whereParameters = array(
|
||||
'app' => $app,
|
||||
'dataset_name' => $datasetName,
|
||||
'uid' => getAuthUID(),
|
||||
'default_filter' => true
|
||||
);
|
||||
|
||||
$definition = $this->_ci->FiltersModel->loadWhere($whereParameters);
|
||||
if (!hasData($definition)) // If a custom filter is NOT found
|
||||
{
|
||||
// Try to load the global filter (person_id = null) with the given "app" and "dataset_name" that is set as
|
||||
// default filter (default_filter = true)
|
||||
$whereParameters = array(
|
||||
'app' => $app,
|
||||
'dataset_name' => $datasetName,
|
||||
'default_filter' => true
|
||||
);
|
||||
|
||||
$definition = $this->_ci->FiltersModel->loadWhere($whereParameters);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If no definition where loaded and where parameters were set
|
||||
if ($definition == null && $whereParameters != null)
|
||||
{
|
||||
$definition = $this->_ci->FiltersModel->loadWhere($whereParameters);
|
||||
}
|
||||
|
||||
return $definition;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the json definition of this filter is valid
|
||||
*/
|
||||
public function parseFilterJson($definition)
|
||||
{
|
||||
$jsonEncodedFilter = null;
|
||||
|
||||
// If the definition contains data and they are valid
|
||||
if (hasData($definition) && isset($definition->retval[0]->filter) && trim($definition->retval[0]->filter) != '')
|
||||
{
|
||||
// Get the json definition of the filter
|
||||
$tmpJsonEncodedFilter = json_decode($definition->retval[0]->filter);
|
||||
|
||||
// Checks required filter's properies
|
||||
if (isset($tmpJsonEncodedFilter->name)
|
||||
&& isset($tmpJsonEncodedFilter->columns)
|
||||
&& is_array($tmpJsonEncodedFilter->columns)
|
||||
&& isset($tmpJsonEncodedFilter->filters)
|
||||
&& is_array($tmpJsonEncodedFilter->filters))
|
||||
{
|
||||
$jsonEncodedFilter = $tmpJsonEncodedFilter;
|
||||
}
|
||||
}
|
||||
|
||||
return $jsonEncodedFilter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the query to retrive the dataset for a filter
|
||||
*/
|
||||
public function generateDatasetQuery($query, $filters)
|
||||
{
|
||||
$datasetQuery = null;
|
||||
|
||||
// If the given query is valid and the parameter filters is an array
|
||||
if (!empty(trim($query)) && $filters != null && is_array($filters))
|
||||
{
|
||||
$where = ''; // starts building the SQL where clause
|
||||
|
||||
// Loops through the given applied filters
|
||||
for ($filtersCounter = 0; $filtersCounter < count($filters); $filtersCounter++)
|
||||
{
|
||||
$filterDefinition = $filters[$filtersCounter]; // definition of one filter
|
||||
|
||||
if ($filtersCounter > 0) $where .= ' AND '; // if it's NOT the last one
|
||||
|
||||
if (!empty(trim($filterDefinition->name))) // if the name of the applied filter is valid
|
||||
{
|
||||
// ...build the condition
|
||||
$where .= '"'.$filterDefinition->name.'"'.$this->_getDatasetQueryCondition($filterDefinition);
|
||||
}
|
||||
}
|
||||
|
||||
if ($where != '') // if the SQL where clause was built
|
||||
{
|
||||
$datasetQuery = 'SELECT * FROM ('.$query.') '.self::DATASET_TABLE_ALIAS.' WHERE '.$where;
|
||||
}
|
||||
}
|
||||
|
||||
return $datasetQuery;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrives the dataset from the DB
|
||||
*/
|
||||
public function getDataset($datasetQuery)
|
||||
{
|
||||
$dataset = null;
|
||||
|
||||
if ($datasetQuery != null)
|
||||
{
|
||||
// Execute the given SQL statement suppressing error messages
|
||||
$dataset = @$this->_ci->FiltersModel->execReadOnlyQuery($datasetQuery);
|
||||
}
|
||||
|
||||
return $dataset;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the filter name, the default is the "name" property of the JSON definition
|
||||
* If the property namePhrase is present into the JSON definition, then try to load that from the phrases system
|
||||
* NOTE: filterJson should be already checked using the method parseFilterJson
|
||||
*/
|
||||
public function getFilterName($filterJson)
|
||||
{
|
||||
$filterName = $filterJson->name; // always present, used as default
|
||||
|
||||
// Filter name from phrases system
|
||||
if (isset($filterJson->namePhrase) && !empty(trim($filterJson->namePhrase)))
|
||||
{
|
||||
// Loads the library to use the phrases system
|
||||
$this->_ci->load->library('PhrasesLib', array(self::FILTER_PHRASES_CATEGORY));
|
||||
|
||||
$tmpFilterNamePhrase = $this->_ci->phraseslib->t(self::FILTER_PHRASES_CATEGORY, $filterJson->namePhrase);
|
||||
if (isset($tmpFilterNamePhrase) && !empty(trim($tmpFilterNamePhrase))) // if is not null or an empty string
|
||||
{
|
||||
$filterName = $tmpFilterNamePhrase;
|
||||
}
|
||||
}
|
||||
|
||||
return $filterName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the sort of the selected fields of the current filter
|
||||
*/
|
||||
public function sortSelectedFields($selectedFields)
|
||||
{
|
||||
$sortSelectedFields = false;
|
||||
|
||||
// Checks the parameter selectedFields
|
||||
if (isset($selectedFields) && is_array($selectedFields) && count($selectedFields) > 0)
|
||||
{
|
||||
// Retrives all the used fields by the current filter
|
||||
$fields = $this->getElementSession(self::SESSION_FIELDS);
|
||||
|
||||
// Checks that the given selected fields are present in all the used fields by the current filter
|
||||
if (!array_diff($selectedFields, $fields))
|
||||
{
|
||||
$this->setElementSession(self::SESSION_SELECTED_FIELDS, $selectedFields); // write changes into the session
|
||||
|
||||
$sortSelectedFields = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $sortSelectedFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a selected field from the current filter
|
||||
*/
|
||||
public function removeSelectedField($selectedField)
|
||||
{
|
||||
$removeSelectedField = false;
|
||||
|
||||
// Checks the parameter selectedField
|
||||
if (isset($selectedField) && !empty(trim($selectedField)))
|
||||
{
|
||||
// Retrives all the used fields by the current filter
|
||||
$fields = $this->getElementSession(self::SESSION_FIELDS);
|
||||
// Retrives the selected fields by the current filter
|
||||
$selectedFields = $this->getElementSession(self::SESSION_SELECTED_FIELDS);
|
||||
|
||||
// Checks that the given selected field is present in the list of all the used fields by the current filter
|
||||
if (in_array($selectedField, $fields))
|
||||
{
|
||||
// If the selected field is present in the list of the selected fields by the current filter
|
||||
if (($pos = array_search($selectedField, $selectedFields)) !== false)
|
||||
{
|
||||
// Then remove it and shift the rest of elements by one if needed
|
||||
array_splice($selectedFields, $pos, 1);
|
||||
}
|
||||
|
||||
$this->setElementSession(self::SESSION_SELECTED_FIELDS, $selectedFields); // write changes into the session
|
||||
|
||||
$removeSelectedField = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $removeSelectedField;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a field to the current filter
|
||||
*/
|
||||
public function addSelectedField($selectedField)
|
||||
{
|
||||
$removeSelectedField = false;
|
||||
|
||||
// Checks the parameter selectedField
|
||||
if (isset($selectedField) && !empty(trim($selectedField)))
|
||||
{
|
||||
// Retrives all the used fields by the current filter
|
||||
$fields = $this->getElementSession(self::SESSION_FIELDS);
|
||||
// Retrives the selected fields by the current filter
|
||||
$selectedFields = $this->getElementSession(self::SESSION_SELECTED_FIELDS);
|
||||
|
||||
// Checks that the given selected field is present in the list of all the used fields by the current filter
|
||||
if (in_array($selectedField, $fields))
|
||||
{
|
||||
array_push($selectedFields, $selectedField); // place the new filed at the end of the selected fields list
|
||||
|
||||
$this->setElementSession(self::SESSION_SELECTED_FIELDS, $selectedFields); // write changes into the session
|
||||
|
||||
$removeSelectedField = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $removeSelectedField;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove an applied filter (SQL where condition) from the current filter
|
||||
*/
|
||||
public function removeAppliedFilter($appliedFilter)
|
||||
{
|
||||
$removeAppliedFilter = false;
|
||||
|
||||
// Checks the parameter appliedFilter
|
||||
if (isset($appliedFilter) && !empty(trim($appliedFilter)))
|
||||
{
|
||||
// Retrives all the used fields by the current filter
|
||||
$fields = $this->getElementSession(self::SESSION_FIELDS);
|
||||
// Retrives the applied filters by the current filter
|
||||
$filters = $this->getElementSession(self::SESSION_FILTERS);
|
||||
|
||||
// Checks that the given applied filter is present in the list of all the used fields by the current filter
|
||||
if (in_array($appliedFilter, $fields))
|
||||
{
|
||||
// Search in what position the given applied filter is
|
||||
$pos = $this->_searchFilterByName($filters, $appliedFilter);
|
||||
if ($pos !== false) // If found
|
||||
{
|
||||
array_splice($filters, $pos, 1); // Then remove it and shift the rest of elements by one if needed
|
||||
}
|
||||
|
||||
// Write changes into the session
|
||||
$this->setElementSession(self::SESSION_FILTERS, $filters);
|
||||
$this->setElementSession(self::SESSION_RELOAD_DATASET, true); // the dataset must be reloaded
|
||||
|
||||
$removeAppliedFilter = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $removeAppliedFilter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply all the applied filters (SQL where conditions) to the current filter
|
||||
*/
|
||||
public function applyFilters($appliedFilters, $appliedFiltersOperations, $appliedFiltersConditions, $appliedFiltersOptions)
|
||||
{
|
||||
$applyFilters = false;
|
||||
|
||||
// Checks the required parameters: appliedFilters and appliedFiltersOperations
|
||||
if (isset($appliedFilters) && is_array($appliedFilters)
|
||||
&& isset($appliedFiltersOperations) && is_array($appliedFiltersOperations))
|
||||
{
|
||||
$fields = $this->getElementSession(self::SESSION_FIELDS); // Retrives all the used fields by the current filter
|
||||
|
||||
// Checks that the given applied filters are present in all the used fields by the current filter
|
||||
if (!array_diff($appliedFilters, $fields))
|
||||
{
|
||||
$filters = array(); // starts building the new applied filters list
|
||||
for ($i = 0; $i < count($appliedFilters); $i++) // loops through the given applied filters
|
||||
{
|
||||
$filterDefinition = new stdClass(); // new applied filter definition
|
||||
|
||||
// Sets the filter definition required properties
|
||||
$filterDefinition->name = $appliedFilters[$i];
|
||||
$filterDefinition->operation = $appliedFiltersOperations[$i];
|
||||
|
||||
// Sets the filter definition optional properties
|
||||
$filterDefinition->condition = null;
|
||||
if (isset($appliedFiltersConditions) && isset($appliedFiltersConditions[$i]))
|
||||
{
|
||||
$filterDefinition->condition = $appliedFiltersConditions[$i];
|
||||
}
|
||||
|
||||
$filterDefinition->option = null;
|
||||
if (isset($appliedFiltersOptions) && isset($appliedFiltersOptions[$i]))
|
||||
{
|
||||
$filterDefinition->option = $appliedFiltersOptions[$i];
|
||||
}
|
||||
|
||||
$filters[$i] = $filterDefinition; // adds the new definition to the list
|
||||
}
|
||||
|
||||
// Write changes into the session
|
||||
$this->setElementSession(self::SESSION_FILTERS, $filters);
|
||||
$this->setElementSession(self::SESSION_RELOAD_DATASET, true); // the dataset must be reloaded
|
||||
|
||||
$applyFilters = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $applyFilters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a filter (SQL where clause) to be applied to the current filter
|
||||
*/
|
||||
public function addFilter($filter)
|
||||
{
|
||||
$addFilter = false;
|
||||
|
||||
// Checks the parameter filter
|
||||
if (isset($filter) && !empty(trim($filter)))
|
||||
{
|
||||
// Retrives all the used fields by the current filter
|
||||
$fields = $this->getElementSession(self::SESSION_FIELDS);
|
||||
// Retrives the applied filters by the current filter
|
||||
$filters = $this->getElementSession(self::SESSION_FILTERS);
|
||||
|
||||
// Checks that the given applied filter is present in the list of all the used fields by the current filter
|
||||
if (in_array($filter, $fields))
|
||||
{
|
||||
// Search in what position the given applied filter is
|
||||
$pos = $this->_searchFilterByName($filters, $filter);
|
||||
if ($pos === false) // If NOT found then add it
|
||||
{
|
||||
// New filter definition
|
||||
$filterDefinition = new stdClass();
|
||||
// Sets filter definition required properties
|
||||
$filterDefinition->name = $filter;
|
||||
// Sets filter definition optional properties
|
||||
$filterDefinition->operation = null;
|
||||
$filterDefinition->condition = null;
|
||||
$filterDefinition->option = null;
|
||||
// Place the new applied filter at the end of the applied filters list
|
||||
array_push($filters, $filterDefinition);
|
||||
}
|
||||
|
||||
$this->setElementSession(self::SESSION_FILTERS, $filters); // write changes into the session
|
||||
|
||||
$addFilter = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $addFilter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the current filter as a custom filter for this user with the given description
|
||||
*/
|
||||
public function saveCustomFilter($customFilterDescription)
|
||||
{
|
||||
$saveCustomFilter = false; // by default returns a failure
|
||||
|
||||
// Checks parameter customFilterDescription if not valid stop the execution
|
||||
if (!isset($customFilterDescription) || empty(trim($customFilterDescription)))
|
||||
{
|
||||
return $saveCustomFilter;
|
||||
}
|
||||
|
||||
$this->_ci->load->model('system/Filters_model', 'FiltersModel'); // to load the filter definitions
|
||||
$this->_ci->load->model('person/Benutzer_model', 'BenutzerModel'); // to get the person_id of the authenticated user
|
||||
|
||||
$this->_ci->FiltersModel->resetQuery(); // reset any previous built query
|
||||
$this->_ci->BenutzerModel->resetQuery(); // reset any previous built query
|
||||
|
||||
// Loads data for the authenticated user
|
||||
$authBenutzer = $this->_ci->BenutzerModel->loadWhere(array('uid' => getAuthUID()));
|
||||
if (hasData($authBenutzer)) // if data are found
|
||||
{
|
||||
// person_id of the authenticated user
|
||||
$authPersonId = $authBenutzer->retval[0]->person_id;
|
||||
// Postgres array for the description
|
||||
$descPGArray = str_replace('%desc%', $customFilterDescription, '{"%desc%", "%desc%", "%desc%", "%desc%"}');
|
||||
|
||||
// Loads the definition to check if is already present in the DB
|
||||
$definition = $this->_ci->FiltersModel->loadWhere(array(
|
||||
'app' => $this->getElementSession(self::APP_PARAMETER),
|
||||
'dataset_name' => $this->getElementSession(self::DATASET_NAME_PARAMETER),
|
||||
'description' => $descPGArray,
|
||||
'person_id' => $authPersonId
|
||||
));
|
||||
|
||||
// New definition to be json encoded
|
||||
$jsonDeifinition = new stdClass();
|
||||
$jsonDeifinition->name = $customFilterDescription; // name of the filter
|
||||
|
||||
// Generates the "column" property
|
||||
$jsonDeifinition->columns = array();
|
||||
$selectedFields = $this->getElementSession(self::SESSION_SELECTED_FIELDS); // retrived the selected fields
|
||||
for ($i = 0; $i < count($selectedFields); $i++)
|
||||
{
|
||||
// Each element is an object with a property called "name"
|
||||
$jsonDeifinition->columns[$i] = new stdClass();
|
||||
$jsonDeifinition->columns[$i]->name = $selectedFields[$i];
|
||||
}
|
||||
|
||||
// List of applied filters
|
||||
$jsonDeifinition->filters = $this->getElementSession(self::SESSION_FILTERS);
|
||||
|
||||
// If it is already present
|
||||
if (hasData($definition))
|
||||
{
|
||||
// update it
|
||||
$this->_ci->FiltersModel->update(
|
||||
array(
|
||||
'app' => $this->getElementSession(self::APP_PARAMETER),
|
||||
'dataset_name' => $this->getElementSession(self::DATASET_NAME_PARAMETER),
|
||||
'description' => $descPGArray,
|
||||
'person_id' => $authPersonId
|
||||
),
|
||||
array(
|
||||
'filter' => json_encode($jsonDeifinition)
|
||||
)
|
||||
);
|
||||
|
||||
$saveCustomFilter = true;
|
||||
}
|
||||
else // otherwise insert a new one
|
||||
{
|
||||
$this->_ci->FiltersModel->insert(
|
||||
array(
|
||||
'app' => $this->getElementSession(self::APP_PARAMETER),
|
||||
'dataset_name' => $this->getElementSession(self::DATASET_NAME_PARAMETER),
|
||||
'filter_kurzbz' => uniqid($authPersonId, true),
|
||||
'description' => $descPGArray,
|
||||
'person_id' => $authPersonId,
|
||||
'sort' => null,
|
||||
'default_filter' => false,
|
||||
'filter' => json_encode($jsonDeifinition),
|
||||
'oe_kurzbz' => null
|
||||
)
|
||||
);
|
||||
|
||||
$saveCustomFilter = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $saveCustomFilter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a custom filter by its filter_id
|
||||
*/
|
||||
public function removeCustomFilter($filterId)
|
||||
{
|
||||
$removeCustomFilter = false;
|
||||
|
||||
// Checks the parameter filterId
|
||||
if (isset($filterId) && is_numeric($filterId) && $filterId > 0)
|
||||
{
|
||||
$this->_ci->load->model('system/Filters_model', 'FiltersModel'); // to remove the filter definitions from DB
|
||||
|
||||
// delete it!
|
||||
$this->_ci->FiltersModel->delete(array('filter_id' => $filterId));
|
||||
|
||||
$removeCustomFilter = true;
|
||||
}
|
||||
|
||||
return $removeCustomFilter;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Return an unique string that identify this filter widget
|
||||
* NOTE: The default value is the URI where the FilterWidget is called
|
||||
* If the fhc_controller_id is present then is also used
|
||||
*/
|
||||
private function _getFilterUniqueId($params)
|
||||
{
|
||||
//
|
||||
if ($params != null
|
||||
&& is_array($params)
|
||||
&& isset($params[self::FILTER_PAGE_PARAM])
|
||||
&& !empty(trim($params[self::FILTER_PAGE_PARAM])))
|
||||
{
|
||||
$filterUniqueId = $params[self::FILTER_PAGE_PARAM];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Gets the current page URI
|
||||
$filterUniqueId = $this->_ci->router->directory.$this->_ci->router->class.'/'.$this->_ci->router->method;
|
||||
}
|
||||
|
||||
// If the FHC_CONTROLLER_ID parameter is present in the HTTP GET
|
||||
if (isset($_GET[self::FHC_CONTROLLER_ID]))
|
||||
{
|
||||
$filterUniqueId .= '/'.$this->_ci->input->get(self::FHC_CONTROLLER_ID); // then use it
|
||||
}
|
||||
elseif (isset($_POST[self::FHC_CONTROLLER_ID])) // else if the FHC_CONTROLLER_ID parameter is present in the HTTP POST
|
||||
{
|
||||
$filterUniqueId .= '/'.$this->_ci->input->post(self::FHC_CONTROLLER_ID); // then use it
|
||||
}
|
||||
|
||||
return $filterUniqueId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a condition for a SQL where clause using the given applied filter definition.
|
||||
* By default an empty string is returned.
|
||||
*/
|
||||
private function _getDatasetQueryCondition($filterDefinition)
|
||||
{
|
||||
$condition = ''; // starts building the condition
|
||||
|
||||
// "operation" is a required property for the applied filter definition
|
||||
if (!empty(trim($filterDefinition->operation)))
|
||||
{
|
||||
// Checks what operation is required
|
||||
switch ($filterDefinition->operation)
|
||||
{
|
||||
// comparison (==)
|
||||
case self::OP_EQUAL:
|
||||
if (is_numeric($filterDefinition->condition)) $condition = '= '.$filterDefinition->condition;
|
||||
break;
|
||||
// not equal (!=)
|
||||
case self::OP_NOT_EQUAL:
|
||||
if (is_numeric($filterDefinition->condition)) $condition = '!= '.$filterDefinition->condition;
|
||||
break;
|
||||
// greater than (>)
|
||||
case self::OP_GREATER_THAN:
|
||||
// It it's a date type
|
||||
if (is_numeric($filterDefinition->condition)
|
||||
&& isset($filterDefinition->option)
|
||||
&& ($filterDefinition->option == self::OPT_DAYS
|
||||
|| $filterDefinition->option == self::OPT_MONTHS))
|
||||
{
|
||||
$condition = '< (NOW() - \''.$filterDefinition->condition.' '.$filterDefinition->option.'\'::interval)';
|
||||
}
|
||||
else // otherwise is a number
|
||||
{
|
||||
$condition = '> '.$filterDefinition->condition;
|
||||
}
|
||||
break;
|
||||
// less than (<)
|
||||
case self::OP_LESS_THAN:
|
||||
// It it's a date type
|
||||
if (is_numeric($filterDefinition->condition)
|
||||
&& isset($filterDefinition->option)
|
||||
&& ($filterDefinition->option == self::OPT_DAYS
|
||||
|| $filterDefinition->option == self::OPT_MONTHS))
|
||||
{
|
||||
$condition = '> (NOW() - \''.$filterDefinition->condition.' '.$filterDefinition->option.'\'::interval)';
|
||||
}
|
||||
else // otherwise is a number
|
||||
{
|
||||
$condition = '< '.$filterDefinition->condition;
|
||||
}
|
||||
break;
|
||||
// contains (ILIKE)
|
||||
case self::OP_CONTAINS:
|
||||
$condition = 'ILIKE \'%'.$this->_ci->FiltersModel->escapeLike($filterDefinition->condition).'%\'';
|
||||
break;
|
||||
// not contains (NOT ILIKE)
|
||||
case self::OP_NOT_CONTAINS:
|
||||
$condition = 'NOT ILIKE \'%'.$this->_ci->FiltersModel->escapeLike($filterDefinition->condition).'%\'';
|
||||
break;
|
||||
// is true (=== true)
|
||||
case self::OP_IS_TRUE:
|
||||
$condition = 'IS TRUE';
|
||||
break;
|
||||
// is false (=== false)
|
||||
case self::OP_IS_FALSE:
|
||||
$condition = 'IS FALSE';
|
||||
break;
|
||||
// is set
|
||||
case self::OP_SET:
|
||||
$condition = 'IS NOT NULL';
|
||||
break;
|
||||
// is NOT set
|
||||
case self::OP_NOT_SET:
|
||||
$condition = 'IS NULL';
|
||||
break;
|
||||
// by default must not be null (!= null)
|
||||
default:
|
||||
$condition = 'IS NOT NULL';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// if the condition is valid
|
||||
if (!empty(trim($condition))) $condition = ' '.$condition; // add a white space before
|
||||
|
||||
return $condition;
|
||||
}
|
||||
|
||||
/**
|
||||
* Search for a filter inside a list of filters by the given filter name
|
||||
* Returns false if NOT found, otherwise the position inside the list
|
||||
*/
|
||||
private function _searchFilterByName($filters, $filterName)
|
||||
{
|
||||
$pos = false;
|
||||
|
||||
for($i = 0; $i < count($filters); $i++)
|
||||
{
|
||||
if ($filters[$i]->name == $filterName)
|
||||
{
|
||||
$pos = $i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $pos;
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,8 @@ class PhrasesLib
|
||||
{
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
$this->_phrases = null; // set the property _phrases as null by default
|
||||
|
||||
// CI parser
|
||||
$this->_ci->load->library('parser');
|
||||
|
||||
@@ -78,7 +80,6 @@ class PhrasesLib
|
||||
return $this->_ci->PhraseModel->update($phrase_id, $data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* getVorlagetextByVorlage() - will load tbl_vorlagestudiengang for a spezific Template.
|
||||
*/
|
||||
@@ -179,91 +180,60 @@ class PhrasesLib
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Retrives a phrases from the the property _phrases with the given parameters
|
||||
* It also replace parameters inside the phrase if they are provided
|
||||
* @param string $category Category name which is used to categorize the phrase.
|
||||
* @param string $phrase Phrase name.
|
||||
* @param array $parameters Array of String var(s) to be set into phrases' placeholder values (order matters).
|
||||
* @return string Phrase text
|
||||
*/
|
||||
public function t($category, $phrase, $parameters = array(), $orgeinheit_kurzbz = null, $orgform_kurzbz = null)
|
||||
{
|
||||
if (isset($this->_phrases) && is_array($this->_phrases))
|
||||
// If the property _phrases is populated
|
||||
if (is_array($this->_phrases))
|
||||
{
|
||||
// Loops through the _phrases property
|
||||
for ($i = 0; $i < count($this->_phrases); $i++)
|
||||
{
|
||||
|
||||
$_phrase = $this->_phrases[$i];
|
||||
|
||||
$_phrase = $this->_phrases[$i]; // single phrase
|
||||
|
||||
// If the single phrase match the given parameters and is not an empty string
|
||||
if ($_phrase->category == $category
|
||||
&& $_phrase->phrase == $phrase
|
||||
&& $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
|
||||
&& $_phrase->orgform_kurzbz== $orgform_kurzbz
|
||||
&& (!empty($_phrase->text)))
|
||||
{
|
||||
if ($parameters == null)
|
||||
$parameters = array();
|
||||
|
||||
return $this->_ci->parser->parse_string($_phrase->text, $parameters, true);
|
||||
}
|
||||
}
|
||||
|
||||
//fallback 1: if phrase not found in phrases-array, try with default language
|
||||
$default_language = DEFAULT_LANGUAGE;
|
||||
$categories = $this->_ci->PhraseModel->getCategories();
|
||||
|
||||
if (hasData($categories))
|
||||
{
|
||||
$categories = $categories->retval;
|
||||
foreach($categories as $cat)
|
||||
$all_categories[] = $cat->category;
|
||||
}
|
||||
|
||||
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($all_categories, $default_language);
|
||||
|
||||
if (hasData($phrases))
|
||||
{
|
||||
$default_phrases = $phrases->retval;
|
||||
}
|
||||
|
||||
if (isset($default_phrases) && is_array($default_phrases))
|
||||
{
|
||||
for ($i = 0; $i < count($default_phrases); $i++)
|
||||
&& $_phrase->orgform_kurzbz == $orgform_kurzbz
|
||||
&& (!empty(trim($_phrase->text))))
|
||||
{
|
||||
$_phrase = $default_phrases[$i];
|
||||
// var_dump($_phrase);
|
||||
|
||||
// echo $phrase . "<br>";
|
||||
// echo $_phrase->phrase . "<br><br>";
|
||||
if (!is_array($parameters)) $parameters = array(); // if params is not an array
|
||||
|
||||
if ($_phrase->category == $category
|
||||
&& $_phrase->phrase == $phrase
|
||||
&& $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
|
||||
&& $_phrase->orgform_kurzbz== $orgform_kurzbz)
|
||||
{
|
||||
if ($parameters == null)
|
||||
$parameters = array();
|
||||
return $this->_ci->parser->parse_string($_phrase->text, $parameters, true);
|
||||
}
|
||||
return $this->_ci->parser->parse_string($_phrase->text, $parameters, true); // parsing
|
||||
}
|
||||
}
|
||||
|
||||
//fallback 2: if phrase not found at all, return phrasename
|
||||
$phrase = '<< PHRASE ' . $phrase . ' >>';
|
||||
return $this->_ci->parser->parse_string($phrase, $parameters, true);
|
||||
}
|
||||
}
|
||||
|
||||
// If a valid phrase is not found
|
||||
return '<< PHRASE '.$phrase.' >>';
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Extends the functionalities of the constructor of this class
|
||||
* This is a workaround to use more parameters in the construct since PHP doesn't support many constructors
|
||||
* The new accepted parameters are:
|
||||
* - categories: could be a string or an array of strings. These are the categories used to load phrases
|
||||
* - language: optional parameter must be a string. It's used to load phrases
|
||||
* @param (array) $params Array of categories and (optional) language.
|
||||
* categories:
|
||||
* - could be a string or an array of strings. These are the categories used to load phrases
|
||||
* - could be an array of categories, and for each category there is an array of phrases
|
||||
* language: optional parameter must be a string. It's used to load phrases
|
||||
*/
|
||||
private function _extend_construct($params)
|
||||
{
|
||||
// Checks if the $params is an array with at least one element
|
||||
if (is_array($params) && count($params) > 0)
|
||||
{
|
||||
$parameters = $params[0]; // temporary variable
|
||||
$parameters = $params[0]; // temporary variable
|
||||
$isIndexArray = false; //flag for indexed array
|
||||
|
||||
// If there are parameters
|
||||
if (is_array($parameters) && count($parameters) > 0)
|
||||
@@ -287,15 +257,101 @@ class PhrasesLib
|
||||
$language = $this->_ci->PersonModel->getLanguage(getAuthUID());
|
||||
}
|
||||
|
||||
// Loads phrases
|
||||
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($categories, $language);
|
||||
|
||||
// If there are phrases loaded then store them in the property _phrases
|
||||
if (hasData($phrases))
|
||||
{
|
||||
$this->_phrases = $phrases->retval;
|
||||
}
|
||||
// If only categories is not an empty array then loads phrases
|
||||
if (count($categories) > 0) $this->_setPhrases($categories, $language);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves phrases in the users language.
|
||||
* If a phrase is not set in the users language it will be retrieved in the default language.
|
||||
* Stores phrases-array in property $_phrases.
|
||||
* @param array $categories Could be an:
|
||||
* - indexed array: string or an array of strings. These are the categories used to load phrases.
|
||||
* - associative array: of categories, and for each category there is an array of phrases.
|
||||
* @param string User's language or default language.
|
||||
*/
|
||||
private function _setPhrases($categories, $language)
|
||||
{
|
||||
$phrases = null;
|
||||
// Checks if categories is associative or indexed array
|
||||
if (ctype_digit(implode('', array_keys($categories))))
|
||||
{
|
||||
// is indexed array -> Loads phrases
|
||||
$isIndexArray = true;
|
||||
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($categories, $language);
|
||||
}
|
||||
else
|
||||
{
|
||||
// is assoc array -> Loads specific phrasentexte by category and phrases
|
||||
$isIndexArray = false;
|
||||
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndPhrasesAndLanguage($categories, $language);
|
||||
}
|
||||
|
||||
// If language is not default language and phrasentext is null -> fallback to default language
|
||||
if ($language != DEFAULT_LANGUAGE)
|
||||
{
|
||||
// get array with phrasentexte in the default language
|
||||
$defaultPhrases = null;
|
||||
if ($isIndexArray)
|
||||
{
|
||||
$defaultPhrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($categories, DEFAULT_LANGUAGE);
|
||||
}
|
||||
else
|
||||
{
|
||||
$defaultPhrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndPhrasesAndLanguage($categories, DEFAULT_LANGUAGE);
|
||||
}
|
||||
|
||||
// combine array with phrasentexte in users language and in default language
|
||||
// (default used if phrasentext in users language is null or not set)
|
||||
if (hasData($phrases) && hasData($defaultPhrases))
|
||||
{
|
||||
// loop through phrases in default language
|
||||
foreach ($defaultPhrases->retval as $defaultPhrase)
|
||||
{
|
||||
$found = false; // flag for found phrase
|
||||
|
||||
// loop through phrases in users language
|
||||
foreach ($phrases->retval as $phrase)
|
||||
{
|
||||
// if same phrase and category found and text is not null
|
||||
// use phrase in users language
|
||||
if ($phrase->phrase == $defaultPhrase->phrase
|
||||
&& $phrase->category == $defaultPhrase->category
|
||||
&& !is_null($phrase->text))
|
||||
{
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// otherwise use phrase in default language
|
||||
if (!$found)
|
||||
{
|
||||
array_push($phrases->retval, $defaultPhrase);
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (hasData($defaultPhrases))
|
||||
{
|
||||
$phrases = $defaultPhrases;
|
||||
}
|
||||
}
|
||||
|
||||
// If there are phrases loaded then store them in the property _phrases
|
||||
if (hasData($phrases))
|
||||
{
|
||||
$this->_phrases = $phrases->retval;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the property _phrases JSON encoded
|
||||
* @return json encoded property _phrases
|
||||
*/
|
||||
public function getJSON()
|
||||
{
|
||||
return json_encode($this->_phrases);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,13 +79,31 @@ class Phrase_model extends DB_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads all categories
|
||||
* Loads phrases using category(s) and language as keys using associative category array
|
||||
* that contains also phrases for each category
|
||||
*/
|
||||
public function getCategories()
|
||||
public function getPhrasesByCategoryAndPhrasesAndLanguage($phrasesParams, $language)
|
||||
{
|
||||
$query = 'SELECT DISTINCT category
|
||||
FROM system.tbl_phrase';
|
||||
$query = '
|
||||
SELECT p.category, p.phrase, pt.orgeinheit_kurzbz, pt.orgform_kurzbz, pt.text
|
||||
FROM system.tbl_phrase p
|
||||
INNER JOIN system.tbl_phrasentext pt USING(phrase_id)
|
||||
WHERE pt.sprache = ? AND (';
|
||||
|
||||
return $this->execQuery($query);
|
||||
$parametersArray = array($language);
|
||||
|
||||
foreach ($phrasesParams as $category => $phrases)
|
||||
{
|
||||
$query .= '(category = ? AND phrase IN ?) OR ';
|
||||
$parametersArray[] = $category;
|
||||
$parametersArray[] = $phrases;
|
||||
}
|
||||
|
||||
$query = rtrim($query, ' OR ');
|
||||
|
||||
|
||||
$query .= ') ORDER BY p.category, p.phrase, pt.orgeinheit_kurzbz DESC, pt.orgform_kurzbz DESC';
|
||||
|
||||
return $this->execQuery($query, $parametersArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,12 +5,17 @@
|
||||
'title' => 'Info Center',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'ajaxlib' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'phrases' => array(
|
||||
'person' => array('vorname', 'nachname'),
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'navigationwidget' => true,
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
@@ -27,12 +32,17 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">Infocenter <?php echo ucfirst($this->p->t('global', 'uebersicht')); ?></h3>
|
||||
<h3 class="page-header">Infocenter
|
||||
<?php echo ucfirst($this->p->t('global', 'uebersicht')); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php
|
||||
$this->load->view('system/infocenter/infocenterData.php', array('fhc_controller_id' => $fhc_controller_id));
|
||||
$this->load->view(
|
||||
'system/infocenter/infocenterData.php',
|
||||
array('fhc_controller_id' => $fhc_controller_id)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\')
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "SendDate",
|
||||
@@ -151,7 +152,7 @@
|
||||
),\', \'
|
||||
) AS "StgAktiv",
|
||||
pl.zeitpunkt AS "LockDate",
|
||||
pl.lockuser as "LockUser",
|
||||
pl.lockuser AS "LockUser",
|
||||
pd.parkdate AS "ParkDate"
|
||||
FROM public.tbl_person p
|
||||
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
|
||||
@@ -214,7 +215,7 @@
|
||||
ucfirst($this->p->t('global', 'gesperrtVon')),
|
||||
ucfirst($this->p->t('global', 'parkdatum'))
|
||||
),
|
||||
'formatRaw' => function($datasetRaw) {
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->{'Details'} = sprintf(
|
||||
'<a href="%s/%s?fhc_controller_id=%s">Details</a>',
|
||||
@@ -299,18 +300,9 @@
|
||||
}
|
||||
);
|
||||
|
||||
$filterId = isset($_GET[InfoCenter::FILTER_ID]) ? $_GET[InfoCenter::FILTER_ID] : null;
|
||||
|
||||
if (isset($filterId) && is_numeric($filterId))
|
||||
{
|
||||
$filterWidgetArray[InfoCenter::FILTER_ID] = $filterId;
|
||||
}
|
||||
else
|
||||
{
|
||||
$filterWidgetArray['app'] = $APP;
|
||||
$filterWidgetArray['datasetName'] = 'PersonActions';
|
||||
$filterWidgetArray['filterKurzbz'] = 'InfoCenterNotSentApplicationAll';
|
||||
}
|
||||
$filterWidgetArray[InfoCenter::FILTER_ID] = $this->input->get(InfoCenter::FILTER_ID);
|
||||
$filterWidgetArray['app'] = $APP;
|
||||
$filterWidgetArray['datasetName'] = 'PersonActions';
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'jqueryui' => true,
|
||||
'ajaxlib' => true,
|
||||
'tablesorter' => true,
|
||||
'tinymce' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'addons' => true,
|
||||
'ajaxlib' => true,
|
||||
'navigationwidget' => true,
|
||||
'customCSSs' =>
|
||||
array(
|
||||
@@ -22,8 +22,33 @@
|
||||
array(
|
||||
'public/js/bootstrapper.js',
|
||||
'public/js/tablesort/tablesort.js',
|
||||
'public/js/infocenter/infocenterDetails.js')
|
||||
'public/js/infocenter/infocenterDetails.js'
|
||||
),
|
||||
'phrases' =>
|
||||
array(
|
||||
'infocenter' =>
|
||||
array(
|
||||
'notizHinzufuegen',
|
||||
'notizAendern',
|
||||
'bewerberParken',
|
||||
'bewerberAusparken',
|
||||
'nichtsZumAusparken',
|
||||
'fehlerBeimAusparken',
|
||||
'fehlerBeimParken',
|
||||
'bewerberGeparktBis'
|
||||
),
|
||||
'ui' =>
|
||||
array(
|
||||
'gespeichert',
|
||||
'fehlerBeimSpeichern'
|
||||
),
|
||||
'global' =>
|
||||
array(
|
||||
'bis',
|
||||
'zeilen'
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
@@ -42,14 +67,16 @@
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="headerright text-right">
|
||||
<?php echo $this->p->t('global', 'wirdBearbeitetVon') . ':' ?>
|
||||
<?php
|
||||
if (isset($lockedby)):
|
||||
echo $this->p->t('global', 'wirdBearbeitetVon') . ': ';
|
||||
echo $lockedby;
|
||||
?>
|
||||
|
||||
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>"><i
|
||||
class="fa fa-sign-out"></i> <?php echo ucfirst($this->p->t('ui', 'freigeben')) ?></a>
|
||||
if (!isset($show_lock_link) || $show_lock_link === true): ?>
|
||||
|
||||
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>">
|
||||
<i class="fa fa-sign-out"></i> <?php echo ucfirst($this->p->t('ui', 'freigeben')) ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -59,7 +86,9 @@
|
||||
<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-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'); ?>
|
||||
@@ -73,7 +102,9 @@
|
||||
<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-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> <!-- ./panel-body -->
|
||||
@@ -87,7 +118,8 @@
|
||||
<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>
|
||||
<h4><?php echo $this->p->t('infocenter', 'zgv'). ' - '.
|
||||
ucfirst($this->p->t('lehre', 'pruefung'))?></h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
|
||||
@@ -102,7 +134,7 @@
|
||||
<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>
|
||||
<h4 class="text-center"><?php echo ucfirst($this->p->t('global', 'nachrichten')) ?></h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
@@ -121,7 +153,8 @@
|
||||
<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>
|
||||
<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">
|
||||
|
||||
@@ -169,10 +169,10 @@
|
||||
'additionalColumns' => array('Details'),
|
||||
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation','Letzte Aktion','Letzter Bearbeiter',
|
||||
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
|
||||
'formatRaw' => function($datasetRaw) {
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->{'Details'} = sprintf(
|
||||
'<a href="%s/%s?fhc_controller_id=%s">Details</a>',
|
||||
'<a href="%s/%s?show_lock_link=0&fhc_controller_id=%s">Details</a>',
|
||||
site_url('system/infocenter/InfoCenter/showDetails'),
|
||||
$datasetRaw->{'PersonId'},
|
||||
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
|
||||
|
||||
@@ -17,13 +17,13 @@ $this->load->view(
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">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">
|
||||
<?php if (empty($data)): ?>
|
||||
Keine Zugangsvoraussetzungen für den Studiengang definiert
|
||||
<?php
|
||||
<?php echo $this->p->t('infocenter', 'keineZugangsvoraussetzungenTxt'); ?>
|
||||
<?php
|
||||
else:
|
||||
echo json_decode($data);
|
||||
endif;
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-<?php echo $columns[3] ?>">
|
||||
<div class="form-group"><label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('person','nation') . ':'?></label>
|
||||
<div class="form-group"><label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('person', 'nation') . ':'?></label>
|
||||
<?php
|
||||
if ($infoonly)
|
||||
echo $zgvpruefung->zgvmanation_bez;
|
||||
@@ -220,7 +220,7 @@
|
||||
<div class="row">
|
||||
<div class="col-xs-6 text-left">
|
||||
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
|
||||
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-xs-6 text-right">
|
||||
@@ -249,7 +249,7 @@
|
||||
class="d-inline float-right"
|
||||
required>
|
||||
<option value="null"
|
||||
selected="selected"><?php echo $this->p->t('infocenter', 'absagegrund', array($this->p->t('global', 'waehlen'))) . '...' ?>
|
||||
selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?>
|
||||
</option>
|
||||
<?php foreach ($statusgruende as $statusgrund): ?>
|
||||
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
|
||||
@@ -323,7 +323,7 @@
|
||||
data-toggle="modal"
|
||||
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
|
||||
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
|
||||
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -340,10 +340,10 @@
|
||||
</button>
|
||||
<h4 class="modal-title"
|
||||
id="freigabeModalLabel">
|
||||
<?php echo $this->p->t('global', 'freigabeBestaetigen') ?></h4>
|
||||
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
@@ -353,7 +353,7 @@
|
||||
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>">
|
||||
<button type="button"
|
||||
class="btn btn-primary">
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -11,6 +11,7 @@ $calledMethod = $this->router->method;
|
||||
$title = isset($title) ? $title : null;
|
||||
$customCSSs = isset($customCSSs) ? $customCSSs : null;
|
||||
$customJSs = isset($customJSs) ? $customJSs : null;
|
||||
$phrases = isset($phrases) ? $phrases : null;
|
||||
|
||||
// By default set the parameters to false
|
||||
$jquery = isset($jquery) ? $jquery : false;
|
||||
@@ -84,6 +85,25 @@ function _generateJSDataStorageObject($calledPath, $calledMethod)
|
||||
echo $toPrint;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates global JS-Object to pass phrases to other javascripts
|
||||
*/
|
||||
function _generateJSPhrasesStorageObject($phrases)
|
||||
{
|
||||
$ci =& get_instance();
|
||||
$ci->load->library('PhrasesLib', array($phrases), 'pj');
|
||||
|
||||
$toPrint = "\n";
|
||||
$toPrint .= '<script type="text/javascript">';
|
||||
$toPrint .= "\n";
|
||||
$toPrint .= ' var FHC_JS_PHRASES_STORAGE_OBJECT = '.$ci->pj->getJSON().';';
|
||||
$toPrint .= "\n";
|
||||
$toPrint .= '</script>';
|
||||
$toPrint .= "\n\n";
|
||||
|
||||
echo $toPrint;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates tags for the javascripts you want to include, the parameter could by a string or an array of strings
|
||||
*/
|
||||
@@ -184,6 +204,10 @@ function _generateAddonsJSsInclude($calledFrom)
|
||||
// NOTE: must be called before any other JS include
|
||||
_generateJSDataStorageObject($calledPath, $calledMethod);
|
||||
|
||||
// Generates the global object to pass phrases to javascripts
|
||||
// NOTE: must be called before including the PhrasesLib.js
|
||||
_generateJSPhrasesStorageObject($phrases);
|
||||
|
||||
// JQuery V3
|
||||
if ($jquery === true) _generateJSsInclude('vendor/components/jquery/jquery.min.js');
|
||||
|
||||
@@ -194,9 +218,6 @@ function _generateAddonsJSsInclude($calledFrom)
|
||||
_generateJSsInclude('vendor/components/jqueryui/ui/i18n/datepicker-de.js'); // datepicker german language file
|
||||
}
|
||||
|
||||
// AjaxLib JS
|
||||
if ($ajaxlib === true) _generateJSsInclude('public/js/AjaxLib.js');
|
||||
|
||||
// Bootstrap JS
|
||||
if ($bootstrap === true) _generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
|
||||
|
||||
@@ -218,6 +239,13 @@ function _generateAddonsJSsInclude($calledFrom)
|
||||
_generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js');
|
||||
}
|
||||
|
||||
// AjaxLib JS
|
||||
// NOTE: must be called before including others JS libraries that use it
|
||||
if ($ajaxlib === true) _generateJSsInclude('public/js/AjaxLib.js');
|
||||
|
||||
// PhrasesLib JS
|
||||
if ($phrases != null) _generateJSsInclude('public/js/PhrasesLib.js');
|
||||
|
||||
// FilterWidget JS
|
||||
if($filterwidget === true) _generateJSsInclude('public/js/FilterWidget.js') ;
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="filter-name-title">
|
||||
<?php FilterWidget::displayFilterName(); ?>
|
||||
</div>
|
||||
<!-- Filter name -->
|
||||
<div class="filter-name-title"></div>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter options -->
|
||||
<div class="panel-group">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
@@ -16,18 +16,21 @@
|
||||
</div>
|
||||
<div id="collapseFilterHeader" class="panel-collapse collapse">
|
||||
<div class="filters-hidden-panel">
|
||||
<!-- Filter fields options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSelectFields(); ?>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter filters options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSelectFilters(); ?>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter save options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSaveFilter(); ?>
|
||||
</div>
|
||||
@@ -38,12 +41,15 @@
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter info top -->
|
||||
<div id="datasetActionsTop"></div>
|
||||
|
||||
<!-- Filter table -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewTableDataset(); ?>
|
||||
</div>
|
||||
|
||||
<!-- Filter info bottom -->
|
||||
<div id="datasetActionsBottom"></div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<span class="filter-options-span">
|
||||
Filter description:
|
||||
<span class="filter-span-label">
|
||||
<?php echo ucfirst($this->p->t('global', 'beschreibung')); ?>:
|
||||
</span>
|
||||
<span>
|
||||
<input type="text" id="customFilterDescription" value="">
|
||||
<input type="text" id="customFilterDescription" class="input-text-custom-filter" value="">
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input type="button" id="saveCustomFilterButton" value="Save filter">
|
||||
<input type="button" id="saveCustomFilterButton" value="<?php echo ucfirst($this->p->t('ui', 'speichern')); ?>">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<div id="filterSelectFieldsDnd" class="filter-select-fields-dnd-div"></div>
|
||||
<div id="dragAndDropFieldsArea" class="drag-and-drop-fields-area"></div>
|
||||
|
||||
<div>
|
||||
<span class="filter-options-span">
|
||||
Add field:
|
||||
<span class="filter-span-label">
|
||||
<?php echo ucfirst($this->p->t('filter', 'feldHinzufuegen')); ?>:
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<select id="addField"></select>
|
||||
<select id="addField" class="drop-down-fields"></select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<br>
|
||||
|
||||
<div id="selectedFilters"></div>
|
||||
<div id="appliedFilters"></div>
|
||||
|
||||
<div>
|
||||
<span class="filter-options-span">
|
||||
Add filter:
|
||||
<span class="filter-span-label">
|
||||
<?php echo ucfirst($this->p->t('filter', 'filterHinzufuegen')); ?>:
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<select id="addFilter"></select>
|
||||
<select id="addFilter" class="drop-down-filters"></select>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="applyFilter" type="button" value="Apply filter">
|
||||
<input id="applyFilter" type="button" value="<?php echo ucfirst($this->p->t('global', 'hinzufuegen')); ?>">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
+344
-1130
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,49 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
To change this license header, choose License Headers in Project Properties.
|
||||
To change this template file, choose Tools | Templates
|
||||
and open the template in the editor.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
// put your code here
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../../include/pruefungCis.class.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfung</title>
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Prüfungen</h1>
|
||||
<?php
|
||||
|
||||
$pruefungsverwaltung = false;
|
||||
|
||||
$uid = get_uid();
|
||||
$db = new basis_db();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
$studiensemester = new studiensemester();
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
|
||||
if(!empty($pruefung->result) || $rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
||||
$pruefungsverwaltung = true;
|
||||
|
||||
echo '<ul>';
|
||||
if ($rechte->isBerechtigt('lehre/pruefungsfenster'))
|
||||
echo '<li><a href="pruefungsfenster_anlegen.php">Prüfungsfenster verwalten</a></li>';
|
||||
|
||||
if($pruefungsverwaltung)
|
||||
{
|
||||
echo '<li><a href="pruefungstermin_festlegen.php">Prüfungstermine verwalten</a></li>';
|
||||
echo '<li><a href="pruefungsanmeldungen_verwalten.php">Anmeldungen verwalten</a></li>';
|
||||
echo '<li><a href="pruefungsbewertung.php">Bewertung</a><br><br></li>';
|
||||
}
|
||||
|
||||
echo '<li><a href="pruefungsanmeldung.php">Anmeldung zur Prüfung</a></li>';
|
||||
|
||||
echo '</ul>';
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -21,19 +21,19 @@
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/basis_db.class.php');
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
|
||||
require_once('../../../../include/mitarbeiter.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='lektor')
|
||||
{
|
||||
$search=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:''));
|
||||
if (is_null($search) ||$search=='')
|
||||
exit();
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
exit();
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
$searchItems = explode(' ',$search);
|
||||
if($mitarbeiter->search($search))
|
||||
if ($mitarbeiter->search($search))
|
||||
{
|
||||
$result_obj = array();
|
||||
foreach($mitarbeiter->result as $row)
|
||||
@@ -47,4 +47,4 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='lektor')
|
||||
}
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,3 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
@@ -37,18 +36,18 @@ $sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
//TODO
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
if (isset($_GET['uid']))
|
||||
{
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um den Studienplan
|
||||
// von anderen Personen anzuzeigen
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um den Studienplan
|
||||
// von anderen Personen anzuzeigen
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$uid=$_GET['uid'];
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if ($rechte->isBerechtigt('admin'))
|
||||
$uid = $_GET['uid'];
|
||||
}
|
||||
|
||||
$db = new basis_db();
|
||||
@@ -60,277 +59,290 @@ $benutzer = new student($uid);
|
||||
$studiensemester = new studiensemester();
|
||||
$studiensemester->getAll();
|
||||
|
||||
?>
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfungsanmeldung</title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/jqueryV1/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 src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
||||
<style type="text/css">
|
||||
#pruefungen, #prfTermine {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
#details {
|
||||
width: 50%;
|
||||
/* margin-left: 1.5em;*/
|
||||
}
|
||||
|
||||
#lvDetails, #prfDetails {
|
||||
min-width: 40%;
|
||||
margin-bottom: 1em;
|
||||
margin-left: 1.5em;
|
||||
float:left;
|
||||
/*border: 1px solid black;*/
|
||||
}
|
||||
|
||||
/* #prfDetails {
|
||||
float:right;
|
||||
}*/
|
||||
|
||||
#accordion {
|
||||
width: 60%;
|
||||
clear: left;
|
||||
clear: right;
|
||||
}
|
||||
|
||||
.titel {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#message {
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.columnheader1 {
|
||||
width: 30%;
|
||||
}
|
||||
.columnheader2 {
|
||||
width: 30%;
|
||||
}
|
||||
.columnheader3 {
|
||||
width: 30%;
|
||||
}
|
||||
.columnheader4 {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
#accordion p {
|
||||
margin: 0;
|
||||
height: 24px;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
var count = 0;
|
||||
$(document).ajaxSend(function(event, xhr, options){
|
||||
count++;
|
||||
});
|
||||
|
||||
$(document).ajaxComplete(function(event, xhr, settings){
|
||||
count--;
|
||||
//Wenn alle AJAX-Request fertig sind
|
||||
if(count===0)
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfungsanmeldung</title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
|
||||
<script src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
|
||||
<style type="text/css">
|
||||
#pruefungen, #prfTermine
|
||||
{
|
||||
$("#accordion").accordion({
|
||||
header: "h2",
|
||||
autoHeight: false
|
||||
});
|
||||
$("#accordion").attr("style", "visibility: visible;");
|
||||
width: 50%;
|
||||
}
|
||||
#details
|
||||
{
|
||||
width: 50%;
|
||||
}
|
||||
#lvDetails, #prfDetails
|
||||
{
|
||||
min-width: 40%;
|
||||
margin-bottom: 1em;
|
||||
margin-left: 1.5em;
|
||||
float:left;
|
||||
}
|
||||
#accordion
|
||||
{
|
||||
width: 60%;
|
||||
clear: left;
|
||||
clear: right;
|
||||
}
|
||||
.titel
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
#message
|
||||
{
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
.columnheader1
|
||||
{
|
||||
width: 30%;
|
||||
}
|
||||
.columnheader2
|
||||
{
|
||||
width: 30%;
|
||||
}
|
||||
.columnheader3
|
||||
{
|
||||
width: 30%;
|
||||
}
|
||||
.columnheader4
|
||||
{
|
||||
width: 5%;
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function(){
|
||||
#accordion p
|
||||
{
|
||||
margin: 0;
|
||||
height: 24px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
|
||||
var count = 0;
|
||||
$(document).ajaxSend(function(event, xhr, options){
|
||||
//count++;
|
||||
});
|
||||
|
||||
$(document).ajaxComplete(function(event, xhr, settings)
|
||||
{
|
||||
//count--;
|
||||
//Wenn alle AJAX-Request fertig sind
|
||||
if (count===0)
|
||||
{
|
||||
$("#accordion").accordion({
|
||||
header: "h2",
|
||||
autoHeight: false
|
||||
});
|
||||
$("#accordion").attr("style", "visibility: visible;");
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
loadPruefungen();
|
||||
loadPruefungenOfStudiengang();
|
||||
loadPruefungenGesamt();
|
||||
$("#saveDialog").dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: "auto"
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: "auto"
|
||||
});
|
||||
$("#dialog").dialog({ autoOpen: false });
|
||||
|
||||
$("#details").dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: "400px"
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: "400px"
|
||||
});
|
||||
$(document).tooltip({
|
||||
position: {
|
||||
at: "right center",
|
||||
my: "left+15 center"
|
||||
}
|
||||
});
|
||||
});
|
||||
<?php
|
||||
echo '
|
||||
function openAnmeldung(lehrveranstaltung_id, stsem)
|
||||
{
|
||||
$("#dialog").load("../../profile/studienplan.php?getAnmeldung=true&lehrveranstaltung_id="+lehrveranstaltung_id+"&stsem="+stsem+"&uid='.$db->convert_html_chars($uid).'");
|
||||
$("#dialog").dialog("open");
|
||||
}'
|
||||
;
|
||||
?>
|
||||
</script>
|
||||
<h1><?php echo $p->t('pruefung/anmeldungFuer'); ?> <?php echo $benutzer->vorname." ".$benutzer->nachname." (".$uid.")"; ?></h1>
|
||||
});
|
||||
<?php
|
||||
echo '<h3>'.$p->t('pruefung/filter').'</h3>';
|
||||
echo '<p>'.$p->t('global/studiensemester').': ';
|
||||
echo '<select id="filter_studiensemester" onchange="refresh();">';
|
||||
$aktuellesSemester = $studiensemester->getaktorNext();
|
||||
foreach($studiensemester->studiensemester as $sem)
|
||||
{
|
||||
if($aktuellesSemester == $sem->studiensemester_kurzbz)
|
||||
echo '
|
||||
function openAnmeldung(lehrveranstaltung_id, stsem)
|
||||
{
|
||||
$("#dialog").load("../../profile/studienplan.php?getAnmeldung=true&lehrveranstaltung_id="+lehrveranstaltung_id+"&stsem="+stsem+"&uid='.$db->convert_html_chars($uid).'");
|
||||
$("#dialog").dialog("open");
|
||||
}';
|
||||
?>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
echo "<h1>".$p->t('pruefung/anmeldungFuer')." ".$benutzer->vorname." ".$benutzer->nachname." (".$uid.")</h1>";
|
||||
echo '<h3>'.$p->t('pruefung/filter').'</h3>';
|
||||
echo '<p>'.$p->t('global/studiensemester').': ';
|
||||
echo '<select id="filter_studiensemester" onchange="refresh();">';
|
||||
$aktuellesSemester = $studiensemester->getaktorNext();
|
||||
foreach ($studiensemester->studiensemester as $sem)
|
||||
{
|
||||
if ($aktuellesSemester == $sem->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
echo '<option selected value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
}
|
||||
echo '</select></p>';
|
||||
|
||||
?>
|
||||
<div id="details" title="<?php echo $p->t('pruefung/details'); ?>">
|
||||
<div id="lvDetails">
|
||||
}
|
||||
echo '</select></p>';
|
||||
?>
|
||||
<div id="details" title="<?php echo $p->t('pruefung/details'); ?>">
|
||||
<div id="lvDetails">
|
||||
<h1><?php echo $p->t('pruefung/lvDetails'); ?></h1>
|
||||
<span class="titel"><?php echo $p->t('global/bezeichnung'); ?>: </span><span id="lvBez"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('global/bezeichnung'); ?>: </span><span id="lvBez"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('global/ects'); ?>: </span><span id="lvEcts"></span><br/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="prfDetails">
|
||||
<div id="prfDetails">
|
||||
<h1><?php echo $p->t('pruefung/pruefungsDetails'); ?></h1>
|
||||
<span class="titel"><?php echo $p->t('pruefung/typ'); ?>: </span><span id="prfTyp"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('pruefung/pruefungMethode'); ?>: </span><span id="prfMethode"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('global/beschreibung'); ?>: </span><span id="prfBeschreibung"></span><br/>
|
||||
<span id="prfEinzeln"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('pruefung/typ'); ?>: </span><span id="prfTyp"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('pruefung/pruefungMethode'); ?>: </span><span id="prfMethode"></span><br/>
|
||||
<span class="titel"><?php echo $p->t('global/beschreibung'); ?>: </span><span id="prfBeschreibung"></span><br/>
|
||||
<span id="prfEinzeln"></span><br/>
|
||||
<span class="titel" style="visibility: hidden;"><?php echo $p->t('pruefung/intervall'); ?>: </span><span id="prfIntervall"></span><br/>
|
||||
</div>
|
||||
</div>
|
||||
<div id="message"></div>
|
||||
<div id="accordion" style="visibility: hidden;">
|
||||
<h2><?php echo $p->t('pruefung/besuchteLehrveranstaltungen'); ?></h2>
|
||||
<div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="message"></div>
|
||||
|
||||
<div id="accordion" style="visibility: hidden;">
|
||||
<h2><?php echo $p->t('pruefung/besuchteLehrveranstaltungen'); ?></h2>
|
||||
<div>
|
||||
<table id="table1" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungen">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungen">
|
||||
|
||||
</tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php if(!defined('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG') || CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG == true): ?>
|
||||
<h2><?php echo $p->t('pruefung/lvVonStudiengang'); ?></h2>
|
||||
<div>
|
||||
</div>
|
||||
<?php
|
||||
if (!defined('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG')
|
||||
|| CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG == true):
|
||||
?>
|
||||
<h2><?php echo $p->t('pruefung/lvVonStudiengang'); ?></h2>
|
||||
<div>
|
||||
<table id="table2" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenStudiengang">
|
||||
|
||||
</tbody>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenStudiengang">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<h2><?php echo $p->t('pruefung/lvAlle'); ?></h2>
|
||||
<div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<h2><?php echo $p->t('pruefung/lvAlle'); ?></h2>
|
||||
<div>
|
||||
<table id="table3" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenGesamt">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenGesamt">
|
||||
|
||||
</tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="saveDialog" title="<?php echo $p->t('pruefung/anmeldungSpeichern'); ?>">
|
||||
<form id="saveAnmeldungForm">
|
||||
</div>
|
||||
<div id="saveDialog" title="<?php echo $p->t('pruefung/anmeldungSpeichern'); ?>">
|
||||
<form id="saveAnmeldungForm">
|
||||
<table id="neueAnmeldung">
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<input type="hidden" id="lehrveranstaltungHidden" disabled="true">
|
||||
<input type="hidden" id="terminHidden" disabled="true">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/lehrveranstaltung'); ?>: </td>
|
||||
<td>
|
||||
<span id="lehrveranstaltung"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/von'); ?>: </td>
|
||||
<td>
|
||||
|
||||
<span id="terminVon"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/bis'); ?>: </td>
|
||||
<td>
|
||||
<span type="text" id="terminBis" disabled="true"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true): ?>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('pruefung/studienverpflichtung'); ?>:* </td>
|
||||
<td>
|
||||
<select id="studienverpflichtung"></select>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr id="studiengang">
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/anmerkung'); ?>: </td>
|
||||
<td>
|
||||
<textarea id="anmeldungBemerkung" rows="10" cols="20"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="button" value="<?php echo $p->t('global/anmelden'); ?>" onclick="saveAnmeldung();"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<input type="hidden" id="lehrveranstaltungHidden" disabled="true">
|
||||
<input type="hidden" id="terminHidden" disabled="true">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">
|
||||
<?php echo $p->t('global/lehrveranstaltung'); ?>:
|
||||
</td>
|
||||
<td>
|
||||
<span id="lehrveranstaltung"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">
|
||||
<?php echo $p->t('global/von'); ?>:
|
||||
</td>
|
||||
<td>
|
||||
<span id="terminVon"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">
|
||||
<?php echo $p->t('global/bis'); ?>:
|
||||
</td>
|
||||
<td>
|
||||
<span type="text" id="terminBis" disabled="true"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
if (!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG')
|
||||
|| CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true):
|
||||
?>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">
|
||||
<?php echo $p->t('pruefung/studienverpflichtung'); ?>:*
|
||||
</td>
|
||||
<td>
|
||||
<select id="studienverpflichtung"></select>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr id="studiengang">
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top; font-weight: bold;">
|
||||
<?php echo $p->t('global/anmerkung'); ?>:
|
||||
</td>
|
||||
<td>
|
||||
<textarea id="anmeldungBemerkung" rows="10" cols="20"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="button" value="<?php echo $p->t('global/anmelden'); ?>" onclick="saveAnmeldung();"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<div id="dialog">
|
||||
</div>
|
||||
</body>
|
||||
</form>
|
||||
</div>
|
||||
<div id="dialog">
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -17,6 +17,11 @@
|
||||
*
|
||||
* Authors: Manfred Kindl <manfred.kindl@technikum-wien.at>
|
||||
*/
|
||||
/**
|
||||
* Erstellt die Prüfungsliste im PDF Format.
|
||||
* Wird keine Dokumentenvorlage gefunden wird stattdessen auf
|
||||
* die HTML Version umgeleitet
|
||||
*/
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/dokument_export.class.php');
|
||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||
@@ -46,18 +51,18 @@ $p = new phrasen($sprache);
|
||||
$berechtigung = new benutzerberechtigung();
|
||||
$berechtigung->getBerechtigungen($user);
|
||||
|
||||
if(isset($_GET['lehrveranstaltung_id']) && is_numeric($_GET['lehrveranstaltung_id']))
|
||||
if (isset($_GET['lehrveranstaltung_id']) && is_numeric($_GET['lehrveranstaltung_id']))
|
||||
$lvid = $_GET['lehrveranstaltung_id'];
|
||||
else
|
||||
die('Eine gueltige LvID muss uebergeben werden');
|
||||
|
||||
if(isset($_GET['studiensemester']))
|
||||
if (isset($_GET['studiensemester']))
|
||||
$studiensemester = $_GET['studiensemester'];
|
||||
else
|
||||
die('Eine Studiensemester muss uebergeben werden');
|
||||
|
||||
if(isset($_GET['termin_id']) && is_numeric($_GET['termin_id']))
|
||||
$termin_id = $_GET['termin_id'];
|
||||
if (isset($_GET['termin_id']) && is_numeric($_GET['termin_id']))
|
||||
$termin_id = $_GET['termin_id'];
|
||||
else
|
||||
die('Eine Termin-ID muss uebergeben werden');
|
||||
|
||||
@@ -65,12 +70,12 @@ $vorlagecheck = new vorlage();
|
||||
if (!$vorlagecheck->loadVorlage('Pruefungslist'))
|
||||
header('Location: pruefungsanmeldungen_liste.php?termin_id='.$termin_id.'&lehrveranstaltung_id='.$lvid.'&studiensemester='.$studiensemester);
|
||||
|
||||
if(!$berechtigung->isBerechtigt('admin') && !$berechtigung->isBerechtigt('assistenz') && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester))
|
||||
if (!$berechtigung->isBerechtigt('admin') && !$berechtigung->isBerechtigt('assistenz') && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester))
|
||||
die('Sie muessen LektorIn der LV oder Admin sein, um diese Seite aufrufen zu koennen');
|
||||
|
||||
$output='pdf';
|
||||
|
||||
if(isset($_GET['output']) && ($output='odt' || $output='doc'))
|
||||
if (isset($_GET['output']) && ($output='odt' || $output='doc'))
|
||||
$output=$_GET['output'];
|
||||
|
||||
|
||||
@@ -80,7 +85,6 @@ $lv->load($lvid);
|
||||
|
||||
$doc = new dokument_export('Pruefungslist');
|
||||
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->load($lv->studiengang_kz);
|
||||
|
||||
@@ -94,7 +98,7 @@ $pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lvid, $studiensemester, "bestaetigt");
|
||||
$lehrveranstaltung = new lehrveranstaltung($lvid);
|
||||
$einzeln = FALSE;
|
||||
if(!empty($anmeldungen))
|
||||
if (!empty($anmeldungen))
|
||||
{
|
||||
$pruefung = new pruefungCis($anmeldungen[0]->pruefung_id);
|
||||
$pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id);
|
||||
@@ -102,7 +106,6 @@ if(!empty($anmeldungen))
|
||||
$dozent = $mitarbeiter->getFullName(FALSE);
|
||||
$termin_datum = $datum->formatDatum($pruefungstermin->von, "d.m.Y - H:i");
|
||||
|
||||
|
||||
$data = array(
|
||||
'bezeichnung'=>$lv->bezeichnung,
|
||||
'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id,
|
||||
@@ -122,7 +125,7 @@ if(!empty($anmeldungen))
|
||||
$student = new student($anmeldung->uid);
|
||||
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
|
||||
|
||||
if($einzeln)
|
||||
if ($einzeln)
|
||||
{
|
||||
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
|
||||
$date = strtotime($date);
|
||||
@@ -136,10 +139,10 @@ if(!empty($anmeldungen))
|
||||
$count++;
|
||||
}
|
||||
// Es soll das Datum der Anmeldung angezeigt werden
|
||||
if ($anmeldung->datum_anmeldung)
|
||||
$date = $datum->formatDatum($anmeldung->datum_anmeldung, "d.m.Y");
|
||||
else
|
||||
$date = '';
|
||||
if ($anmeldung->datum_anmeldung)
|
||||
$date = $datum->formatDatum($anmeldung->datum_anmeldung, "d.m.Y");
|
||||
else
|
||||
$date = '';
|
||||
|
||||
$data[] = array('student'=>array(
|
||||
'count' => $count,
|
||||
@@ -153,19 +156,15 @@ if(!empty($anmeldungen))
|
||||
|
||||
}
|
||||
|
||||
|
||||
$doc->addDataArray($data,'pruefungsliste');
|
||||
|
||||
//header("Content-type: application/xhtml+xml");
|
||||
//echo $doc->ConvertArrayToXML($data,'anwesenheitsliste');
|
||||
//exit;
|
||||
|
||||
if(!$doc->create($output))
|
||||
if (!$doc->create($output))
|
||||
die($doc->errormsg);
|
||||
$doc->output();
|
||||
$doc->close();
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden');
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
@@ -45,145 +44,145 @@ $p = new phrasen($sprache);
|
||||
$uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
?>
|
||||
?><!DOCTYPE html>
|
||||
<html moznomarginboxes="">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/jqueryV1/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>
|
||||
<style type="text/css">
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<style type="text/css">
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
}
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
}
|
||||
|
||||
#page {
|
||||
width: 210mm;
|
||||
min-height: 297mm;
|
||||
padding: 20mm;
|
||||
margin: 10mm auto;
|
||||
border: 1px #ffffff solid;
|
||||
border-radius: 5px;
|
||||
background: white;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
||||
font-family: Arial, Helvetica;
|
||||
}
|
||||
|
||||
#subpage {
|
||||
padding: 10mm;
|
||||
border: 1px white solid;
|
||||
height: 256mm;
|
||||
outline: 20mm
|
||||
}
|
||||
|
||||
#liste {
|
||||
border: 1px solid black;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
margin-top: 5mm;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td {
|
||||
border: 1px solid black;
|
||||
padding: 1mm;
|
||||
}
|
||||
|
||||
th {
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
thead > tr {
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
tr:nth-child(odd){
|
||||
background-color: lightgrey;
|
||||
}
|
||||
|
||||
span {
|
||||
line-height: 16pt;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media print {
|
||||
html, body {
|
||||
width: 210mm;
|
||||
height: 250mm;
|
||||
}
|
||||
#page {
|
||||
margin: 0;
|
||||
border: initial;
|
||||
border-radius: initial;
|
||||
width: initial;
|
||||
min-height: initial;
|
||||
box-shadow: initial;
|
||||
background: initial;
|
||||
page-break-after: auto;
|
||||
width: 210mm;
|
||||
min-height: 297mm;
|
||||
padding: 20mm;
|
||||
margin: 10mm auto;
|
||||
border: 1px #ffffff solid;
|
||||
border-radius: 5px;
|
||||
background: white;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
||||
font-family: Arial, Helvetica;
|
||||
}
|
||||
|
||||
/*
|
||||
* Workaround um beim Drucken jede zweite Zeile der Tabelle
|
||||
* grau darzustellen. Standardmäßig werden von Browsern keine
|
||||
* Hintergrundfarben gedruckt.
|
||||
*/
|
||||
tr:nth-child(odd) > td{
|
||||
box-shadow: inset 0 0 0 1000px lightgrey;
|
||||
#subpage {
|
||||
padding: 10mm;
|
||||
border: 1px white solid;
|
||||
height: 256mm;
|
||||
outline: 20mm;
|
||||
}
|
||||
|
||||
//Veranlasst Chrome Hintergrundfarben zu drucken
|
||||
body{
|
||||
-webkit-print-color-adjust:exact;
|
||||
background-color: #FFFFFF;
|
||||
margin: 0;
|
||||
#liste {
|
||||
border: 1px solid black;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
margin-top: 5mm;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
//Anweisungen nur für Firefox
|
||||
@-moz-document url-prefix() {
|
||||
html, body {
|
||||
height: 280mm;
|
||||
}
|
||||
h1 {
|
||||
text-align: center;
|
||||
}
|
||||
@-moz-document url-prefix() {
|
||||
#page {
|
||||
padding: 15mm 25mm 25mm 15mm !important;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td {
|
||||
border: 1px solid black;
|
||||
padding: 1mm;
|
||||
}
|
||||
|
||||
th {
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
thead > tr {
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
tr:nth-child(odd){
|
||||
background-color: lightgrey;
|
||||
}
|
||||
|
||||
span {
|
||||
line-height: 16pt;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media print
|
||||
{
|
||||
html, body {
|
||||
width: 210mm;
|
||||
height: 250mm;
|
||||
}
|
||||
#page {
|
||||
margin: 0;
|
||||
border: initial;
|
||||
border-radius: initial;
|
||||
width: initial;
|
||||
min-height: initial;
|
||||
box-shadow: initial;
|
||||
background: initial;
|
||||
page-break-after: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* Workaround um beim Drucken jede zweite Zeile der Tabelle
|
||||
* grau darzustellen. Standardmäßig werden von Browsern keine
|
||||
* Hintergrundfarben gedruckt.
|
||||
*/
|
||||
tr:nth-child(odd) > td{
|
||||
box-shadow: inset 0 0 0 1000px lightgrey;
|
||||
}
|
||||
|
||||
//Veranlasst Chrome Hintergrundfarben zu drucken
|
||||
body{
|
||||
-webkit-print-color-adjust:exact;
|
||||
background-color: #FFFFFF;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
//Anweisungen nur für Firefox
|
||||
@-moz-document url-prefix() {
|
||||
html, body {
|
||||
height: 280mm;
|
||||
}
|
||||
}
|
||||
@-moz-document url-prefix() {
|
||||
#page {
|
||||
padding: 15mm 25mm 25mm 15mm !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
window.print();
|
||||
});
|
||||
$(document).ready(function()
|
||||
{
|
||||
window.print();
|
||||
});
|
||||
</script>
|
||||
<div id="page">
|
||||
<div id="subpage">
|
||||
<h1><?php echo $p->t('pruefung/anmeldungsliste'); ?></h1>
|
||||
<div id="subpage">
|
||||
<h1><?php echo $p->t('pruefung/anmeldungsliste'); ?></h1>
|
||||
<?php
|
||||
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
$termin_id = filter_input(INPUT_GET,"termin_id");
|
||||
$lehrveranstaltung_id = filter_input(INPUT_GET,"lehrveranstaltung_id");
|
||||
@@ -191,42 +190,42 @@ $rechte->getBerechtigungen($uid);
|
||||
|
||||
if(is_null($lehrveranstaltung_id))
|
||||
{
|
||||
die($p->t('pruefung/fehlenderParam_lvid'));
|
||||
die($p->t('pruefung/fehlenderParam_lvid'));
|
||||
}
|
||||
else if(is_null($termin_id))
|
||||
{
|
||||
die($p->t('pruefung/fehlenderParam_terminid'));
|
||||
die($p->t('pruefung/fehlenderParam_terminid'));
|
||||
}
|
||||
else if(is_null($studiensemester))
|
||||
{
|
||||
die($p->t('pruefung/fehlenderParam_studiensemester'));
|
||||
die($p->t('pruefung/fehlenderParam_studiensemester'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$datum = new datum();
|
||||
$stdsem = new studiensemester($studiensemester);
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lehrveranstaltung_id, $studiensemester, "bestaetigt");
|
||||
$lehrveranstaltung = new lehrveranstaltung($lehrveranstaltung_id);
|
||||
$einzeln = FALSE;
|
||||
if(!empty($anmeldungen))
|
||||
{
|
||||
$datum = new datum();
|
||||
$stdsem = new studiensemester($studiensemester);
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lehrveranstaltung_id, $studiensemester, "bestaetigt");
|
||||
$lehrveranstaltung = new lehrveranstaltung($lehrveranstaltung_id);
|
||||
$einzeln = FALSE;
|
||||
if(!empty($anmeldungen))
|
||||
{
|
||||
$pruefung = new pruefungCis($anmeldungen[0]->pruefung_id);
|
||||
$pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id);
|
||||
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
|
||||
if($pruefung->einzeln)
|
||||
{
|
||||
$einzeln = TRUE;
|
||||
$pruefungsintervall = $pruefung->pruefungsintervall;
|
||||
$einzeln = TRUE;
|
||||
$pruefungsintervall = $pruefung->pruefungsintervall;
|
||||
}
|
||||
|
||||
?>
|
||||
<span class="bold"><?php echo $p->t('global/lehrveranstaltung'); ?>: </span><span><?=$lehrveranstaltung->bezeichnung?></span><br/>
|
||||
<span class="bold"><?php echo $p->t('global/studiensemester'); ?>: </span><span><?=$stdsem->bezeichnung?></span><br/>
|
||||
<span class="bold"><?php echo $p->t('pruefung/pruefer'); ?>: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
|
||||
<table id="liste">
|
||||
?>
|
||||
<span class="bold"><?php echo $p->t('global/lehrveranstaltung'); ?>: </span><span><?=$lehrveranstaltung->bezeichnung?></span><br/>
|
||||
<span class="bold"><?php echo $p->t('global/studiensemester'); ?>: </span><span><?=$stdsem->bezeichnung?></span><br/>
|
||||
<span class="bold"><?php echo $p->t('pruefung/pruefer'); ?>: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
|
||||
<table id="liste">
|
||||
<thead>
|
||||
<tr>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th><?php echo $p->t('global/vorname'); ?></th>
|
||||
<th><?php echo $p->t('global/nachname'); ?></th>
|
||||
@@ -234,31 +233,31 @@ $rechte->getBerechtigungen($uid);
|
||||
<th><?php echo $p->t('global/datum'); ?></th>
|
||||
<th><?php echo $p->t('benotungstool/note'); ?></th>
|
||||
<th><?php echo $p->t('global/anmerkung'); ?></th>
|
||||
</tr>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
<?php
|
||||
$count = 0;
|
||||
/*@var $anmeldung pruefungsanmeldung */
|
||||
foreach($anmeldungen as $anmeldung)
|
||||
{
|
||||
$student = new student($anmeldung->uid);
|
||||
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
|
||||
$student = new student($anmeldung->uid);
|
||||
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
|
||||
|
||||
if($einzeln)
|
||||
{
|
||||
if($einzeln)
|
||||
{
|
||||
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
|
||||
$date = strtotime($date);
|
||||
$date = $date+(60*$pruefungsintervall*($count));
|
||||
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
|
||||
$count++;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
$date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i");
|
||||
$count++;
|
||||
}
|
||||
echo '<tr>';
|
||||
}
|
||||
echo '<tr>';
|
||||
echo '<td>'.$count.'</td>';
|
||||
echo '<td>'.$student->vorname.'</td>';
|
||||
echo '<td>'.$student->nachname.'</td>';
|
||||
@@ -266,22 +265,24 @@ $rechte->getBerechtigungen($uid);
|
||||
echo '<td>'.$date.'</td>';
|
||||
echo '<td></td>';
|
||||
echo '<td></td>';
|
||||
echo '</tr>';
|
||||
echo '</tr>';
|
||||
}
|
||||
?>
|
||||
?>
|
||||
</tbody>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
|
||||
<span><?php echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden'); ?></span><br/>
|
||||
|
||||
<?php
|
||||
}
|
||||
exit;
|
||||
}
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
</table>
|
||||
<br>
|
||||
<table width="100%" id="liste">
|
||||
<tr>
|
||||
@@ -295,7 +296,7 @@ $rechte->getBerechtigungen($uid);
|
||||
<td></td>
|
||||
</tr
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
@@ -44,41 +43,44 @@ $rechte->getBerechtigungen($uid);
|
||||
$studiensemester = new studiensemester();
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
|
||||
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
?>
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo $p->t('pruefung/anmeldungenVerwaltenTitle'); ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo $p->t('pruefung/anmeldungenVerwaltenTitle'); ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.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 src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
||||
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding: 10px 0 0 10px;
|
||||
}
|
||||
<script src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
|
||||
|
||||
#stgWrapper {
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding: 10px 0 0 10px;
|
||||
}
|
||||
|
||||
#stgWrapper {
|
||||
position: absolute;
|
||||
height: 70px;
|
||||
height: 80px;
|
||||
width: 850px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
}
|
||||
|
||||
#studiengaenge {
|
||||
#studiengaenge {
|
||||
/*border: 1px solid black;*/
|
||||
width: 94%;
|
||||
position: relative;
|
||||
@@ -87,10 +89,10 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#prfWrapper {
|
||||
#prfWrapper {
|
||||
position: absolute;
|
||||
height: 70%;
|
||||
width: 300px;
|
||||
@@ -99,9 +101,9 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
}
|
||||
|
||||
#pruefungen {
|
||||
#pruefungen {
|
||||
/*border: 1px solid black;*/
|
||||
width: 94%;
|
||||
position: relative;
|
||||
@@ -110,9 +112,9 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
#anmWrapper {
|
||||
#anmWrapper {
|
||||
position: absolute;
|
||||
/*top: 45px;*/
|
||||
left: 350px;
|
||||
@@ -123,38 +125,38 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
}
|
||||
|
||||
#anmeldungen {
|
||||
#anmeldungen {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
#anmeldungen > * {
|
||||
#anmeldungen > * {
|
||||
padding: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
#raum > * {
|
||||
#raum > * {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
#message {
|
||||
#message {
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
#sortable {
|
||||
#sortable {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
#sortable li {
|
||||
}
|
||||
#sortable li {
|
||||
margin: 0 3px 3px 3px;
|
||||
padding: 0.2em 0.4em 0.4em;
|
||||
padding-left: 1.5em;
|
||||
@@ -162,37 +164,37 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
height: 18px;
|
||||
list-style-image: none;
|
||||
display: block;
|
||||
}
|
||||
#sortable li span {
|
||||
}
|
||||
#sortable li span {
|
||||
/*position: absolute;*/
|
||||
margin-left: -1.3em;
|
||||
float:left;
|
||||
}
|
||||
}
|
||||
|
||||
.resultOK {
|
||||
.resultOK {
|
||||
color: green;
|
||||
}
|
||||
}
|
||||
|
||||
.resultNotOK {
|
||||
.resultNotOK {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
|
||||
#sortable li a {
|
||||
#sortable li a {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
#sortable li div {
|
||||
#sortable li div {
|
||||
float: right;
|
||||
margin-left: 5px;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
}
|
||||
|
||||
.anmerkungInfo {
|
||||
.anmerkungInfo {
|
||||
text-align: right;
|
||||
width: 10%;
|
||||
}
|
||||
}
|
||||
|
||||
#progressbar {
|
||||
#progressbar {
|
||||
position: fixed;
|
||||
width: 300px;
|
||||
top: 30%;
|
||||
@@ -200,83 +202,84 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
margin-left: -150px;
|
||||
z-index: 100;
|
||||
background: '#9CFF29';
|
||||
}
|
||||
.modalOverlay {
|
||||
}
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
}
|
||||
|
||||
.studiengang {
|
||||
.studiengang {
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
#studiengaenge > div {
|
||||
#studiengaenge > div {
|
||||
float: left;
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
loadStudiengaenge();
|
||||
$("#filter_studiensemester").css("visibility","visible");
|
||||
// console.log($("#filter_studiensemester"));
|
||||
$("#raumDialog").dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: "400px"
|
||||
$(document).ready(function()
|
||||
{
|
||||
loadStudiengaenge();
|
||||
$("#filter_studiensemester").css("visibility","visible");
|
||||
|
||||
$("#raumDialog").dialog({
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
width: "400px"
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<h1><?php echo $p->t('pruefung/anmeldungenVerwalten'); ?></h1>
|
||||
<div id='stgWrapper'>
|
||||
<div id='studiengaenge'>
|
||||
<div id='studiengaenge'>
|
||||
<div>
|
||||
<h2><?php echo $p->t('global/studiengang'); ?></h2>
|
||||
<div id='stgListe'>
|
||||
<h2><?php echo $p->t('global/studiengang'); ?></h2>
|
||||
<div id='stgListe'>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h2><?php echo $p->t('global/studiensemester'); ?></h2>
|
||||
<?php
|
||||
<h2><?php echo $p->t('global/studiensemester'); ?></h2>
|
||||
<?php
|
||||
echo '<select id="filter_studiensemester" onchange="loadPruefungStudiengang();" style="visibility: hidden;">';
|
||||
$aktuellesSemester = $studiensemester->getaktorNext();
|
||||
$studiensemester->getAll();
|
||||
foreach($studiensemester->studiensemester as $sem)
|
||||
{
|
||||
/*@var $sem studiensemester */
|
||||
if($aktuellesSemester == $sem->studiensemester_kurzbz)
|
||||
{
|
||||
/*@var $sem studiensemester */
|
||||
if ($aktuellesSemester == $sem->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '</select></p>';
|
||||
echo '</select></p>';
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='prfWrapper'>
|
||||
<div id='pruefungen'>
|
||||
<div id='pruefungen'>
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<ul id="pruefungenListe">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='anmWrapper'>
|
||||
<div id="anmeldungen">
|
||||
<div id="anmeldungen">
|
||||
<h2><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?> <span id='lvdaten'></span></h2>
|
||||
<div id="anmeldung_hinzufuegen">
|
||||
|
||||
@@ -300,17 +303,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
||||
|
||||
</div>
|
||||
<div id="raumDialog">
|
||||
<div id="raum">
|
||||
<div id="raum">
|
||||
|
||||
</div>
|
||||
<div id="raumSpeichernButton">
|
||||
</div>
|
||||
<div id="raumSpeichernButton">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="message"></div>
|
||||
<div id="progressbar"></div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,282 +0,0 @@
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
|
||||
/**
|
||||
* Error-Behandlung bei Ajax Requests
|
||||
*/
|
||||
function loadError(xhr, textStatus, errorThrown)
|
||||
{
|
||||
if(xhr.status==200)
|
||||
alert('Fehler:'+xhr.responseText);
|
||||
else
|
||||
alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfungen eines Mitarbeiters
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function loadPruefungenMitarbeiter()
|
||||
{
|
||||
var uid = $("#mitarbeiter_uid").val();
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsbewertung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getPruefungMitarbeiter",
|
||||
mitarbeiter_uid: uid
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
$("#pruefungen").find("h2").first().text("Prüfungen ("+uid+")");
|
||||
if(data.error === 'false')
|
||||
{
|
||||
var liste = "";
|
||||
data.result.forEach(function(e){
|
||||
liste += "<li>"+e.bezeichnung+"<ul>";
|
||||
e.pruefung.lehrveranstaltungen.forEach(function(d)
|
||||
{
|
||||
d.pruefung.termine.forEach(function(f){
|
||||
liste += "<li> <a onclick='showTeilnehmer(\""+f.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\", \""+e.bezeichnung+"\", \""+convertDateTime(f.von)+"\");'>"+convertDateTime(f.von)+"</a></li>";
|
||||
});
|
||||
})
|
||||
liste += "</li></ul>";
|
||||
});
|
||||
$("#pruefungenListe").html(liste);
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pruefungenListe").html(data.errormsg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt die Anmeldungen zu einer Prüfung
|
||||
* @param {type} pruefungstermin_id ID des Prüfungstermins
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstaltung, datum)
|
||||
{
|
||||
$("#modalOverlay").addClass("modalOverlay");
|
||||
$("#anmeldeDaten").empty();
|
||||
$("#anmeldungen").children("h2").text("Bewertungen zu "+lehrveranstaltung+" ("+datum+")");
|
||||
var noten = "<select onchange='markAsUnsaved(this);'><option value='null'>Keine Auswahl</option>";
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsbewertung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getNoten"
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error != 'true')
|
||||
{
|
||||
data.result.forEach(function(d)
|
||||
{
|
||||
noten += "<option value="+d.note+">"+d.bezeichnung+"</option>";
|
||||
});
|
||||
noten += "</select>";
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
var notenSelect = noten;
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsbewertung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "getAnmeldungenTermin",
|
||||
pruefungstermin_id: pruefungstermin_id,
|
||||
lehrveranstaltung_id: lehrveranstaltung_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
var entry = "";
|
||||
if(data.error === "false")
|
||||
{
|
||||
data.result.forEach(function(d)
|
||||
{
|
||||
if(d.status_kurzbz === "bestaetigt")
|
||||
{
|
||||
var datum = d.von.split(" ");
|
||||
if(d.pruefung.note===null)
|
||||
{
|
||||
entry = "<div class='anmeldung' id="+d.student.uid+"><div>"+d.student.vorname+" "+d.student.nachname+"</div>"+notenSelect+"<input type='button' onclick='saveBeurteilung(this,\""+datum[0]+"\",\""+d.pruefungsanmeldung_id+"\",\""+d.pruefung_id+"\",\""+d.lehrveranstaltung_id+"\");' value='speichern'/></br><input id='note_anmerkung_"+d.student.uid+"' placeholder='Anmerkung' /></div>";
|
||||
}
|
||||
else
|
||||
{
|
||||
entry = "<div class='anmeldung' id="+d.student.uid+"><div>"+d.student.vorname+" "+d.student.nachname+"</div>"+notenSelect+"<input type='button' onclick='updateBeurteilung(this,\""+d.pruefung.pruefung_id+"\");' value='speichern'/></br><input id='note_anmerkung_"+d.student.uid+"' placeholder='Anmerkung' value='"+d.pruefung.anmerkung+"' /></div>";
|
||||
}
|
||||
$("#anmeldeDaten").append(entry);
|
||||
if(d.pruefung.note!==null)
|
||||
{
|
||||
markAsSaved(document.getElementById(d.student.uid).firstChild);
|
||||
$("#"+d.student.uid).find("select").val(d.pruefung.note);
|
||||
}
|
||||
else
|
||||
{
|
||||
markAsUnsaved(document.getElementById(d.student.uid).firstChild);
|
||||
}
|
||||
var t = $("#note_anmerkung_"+d.student.uid).parent().find('select').first().width();
|
||||
$("#note_anmerkung_"+d.student.uid).width(t);
|
||||
}
|
||||
});
|
||||
if(entry === "")
|
||||
{
|
||||
entry = "<div><div>Keine Anmeldungen vorhanden.</div></div>";
|
||||
$("#anmeldeDaten").html(entry);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
entry = "<div><div>"+data.errormsg+"</div></div>";
|
||||
$("#anmeldeDaten").html(entry);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
$("#modalOverlay").removeClass("modalOverlay");
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert eine Beurteilung
|
||||
* @param {type} ele Element das die Funtkion aufruft
|
||||
* @param {type} datum
|
||||
* @param {type} pruefungsanmeldung_id ID der Anmeldung
|
||||
* @param {type} pruefung_id ID der Prüfung
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @returns {void}
|
||||
*/
|
||||
function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrveranstaltung_id)
|
||||
{
|
||||
var student_uid = $(ele).parent().attr("id");
|
||||
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
|
||||
var note = $(ele).parent().find("select").val();
|
||||
if((note === "null") || (note===null))
|
||||
{
|
||||
messageBox("message", "Keine Note ausgewählt.", "red", "highlight", 1000);
|
||||
return false;
|
||||
}
|
||||
var anmerkung = $("#note_anmerkung_"+student_uid).val();
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsbewertung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "saveBeurteilung",
|
||||
pruefung_id: pruefung_id,
|
||||
lehrveranstaltung_id: lehrveranstaltung_id,
|
||||
student_uid: student_uid,
|
||||
mitarbeiter_uid: mitarbeiter_uid,
|
||||
note: note,
|
||||
//TODO Datum der Prüfung oder der Beurteilung?????
|
||||
datum: datum,
|
||||
anmerkung: anmerkung,
|
||||
pruefungsanmeldung_id: pruefungsanmeldung_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error != 'true')
|
||||
{
|
||||
markAsSaved(ele);
|
||||
$(ele).attr("onclick", "updateBeurteilung(this,\""+data.result+"\")");
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
||||
$(ele).parent().find("select").val(null);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualisiert eine Beurteilung
|
||||
* @param {type} ele Element das die Funtkion aufruft
|
||||
* @param {type} pruefung_id ID der Prüfung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function updateBeurteilung(ele, pruefung_id)
|
||||
{
|
||||
var student_uid = $(ele).parent().attr("id");
|
||||
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
|
||||
var note = $(ele).parent().find("select").val();
|
||||
var anmerkung = $("#note_anmerkung_"+student_uid).val();
|
||||
if((note === "null") || (note===null))
|
||||
{
|
||||
messageBox("message", "Keine Note ausgewählt.", "red", "highlight", 1000);
|
||||
return false;
|
||||
}
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsbewertung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "updateBeurteilung",
|
||||
pruefung_id: pruefung_id,
|
||||
note: note,
|
||||
anmerkung: anmerkung
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
if(data.error != 'true')
|
||||
{
|
||||
markAsSaved(ele);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
|
||||
|
||||
}).complete(function(event, xhr, settings){
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Markiert einen Datensatz als gespeichert
|
||||
* @param {type} ele Element das die Funtkion aufruft
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function markAsSaved(ele)
|
||||
{
|
||||
$(ele).parent().removeClass("unsaved");
|
||||
$(ele).parent().addClass("saved");
|
||||
}
|
||||
|
||||
/**
|
||||
* Markiert einen Datensatz als ungespeichert
|
||||
* @param {type} ele Element das die Funtkion aufruft
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function markAsUnsaved(ele)
|
||||
{
|
||||
$(ele).parent().removeClass("saved");
|
||||
$(ele).parent().addClass("unsaved");
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -18,8 +17,6 @@
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/globals.inc.php');
|
||||
@@ -32,12 +29,9 @@ $p = new phrasen($sprache);
|
||||
|
||||
?>
|
||||
|
||||
|
||||
/**
|
||||
* Error-Behandlung bei Ajax Requests
|
||||
*/
|
||||
|
||||
|
||||
function loadError(xhr, textStatus, errorThrown)
|
||||
{
|
||||
if(xhr.status==200)
|
||||
@@ -62,7 +56,7 @@ function loadPruefungenMitarbeiter()
|
||||
mitarbeiter_uid: uid
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
}).done(function(data){
|
||||
$("#pruefungen").find("h2").first().text("<?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?> ("+uid+")");
|
||||
if(data.error === 'false')
|
||||
{
|
||||
@@ -72,7 +66,7 @@ function loadPruefungenMitarbeiter()
|
||||
e.pruefung.lehrveranstaltungen.forEach(function(d)
|
||||
{
|
||||
d.pruefung.termine.forEach(function(f){
|
||||
liste += "<li> <a onclick='showTeilnehmer(\""+f.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\", \""+e.bezeichnung+"\", \""+convertDateTime(f.von)+"\");'>"+convertDateTime(f.von)+"</a></li>";
|
||||
liste += "<li> <a onclick='showTeilnehmer(\""+f.pruefungstermin_id+"\", \""+e.lehrveranstaltung_id+"\", \""+e.bezeichnung.replace("'", "'")+"\", \""+convertDateTime(f.von)+"\");'>"+convertDateTime(f.von)+"</a></li>";
|
||||
});
|
||||
})
|
||||
liste += "</li></ul>";
|
||||
@@ -106,7 +100,7 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
||||
method: "getNoten"
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
}).done(function(data){
|
||||
if(data.error != 'true')
|
||||
{
|
||||
data.result.forEach(function(d)
|
||||
@@ -119,7 +113,7 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
||||
{
|
||||
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
}).always(function(event, xhr, settings){
|
||||
var notenSelect = noten;
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
@@ -131,7 +125,7 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
||||
lehrveranstaltung_id: lehrveranstaltung_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
}).done(function(data){
|
||||
var entry = "";
|
||||
if(data.error === "false")
|
||||
{
|
||||
@@ -142,11 +136,21 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
||||
var datum = d.von.split(" ");
|
||||
if(d.pruefung.note===null)
|
||||
{
|
||||
entry = "<div class='anmeldung' id="+d.student.uid+"><div>"+d.student.vorname+" "+d.student.nachname+"</div>"+notenSelect+"<input type='button' onclick='saveBeurteilung(this,\""+datum[0]+"\",\""+d.pruefungsanmeldung_id+"\",\""+d.pruefung_id+"\",\""+d.lehrveranstaltung_id+"\");' value='<?php echo $p->t('global/speichern'); ?>'/></br><input id='note_anmerkung_"+d.student.uid+"' placeholder='<?php echo $p->t('global/anmerkung'); ?>' /></div>";
|
||||
entry = "<div class='anmeldung' id="+d.student.uid+">";
|
||||
entry = entry+"<div>"+d.student.vorname+" "+d.student.nachname+"</div>"
|
||||
entry = entry+notenSelect;
|
||||
entry = entry+"<input id='note_anmerkung_"+d.student.uid+"' placeholder='<?php echo $p->t('global/anmerkung'); ?>' />";
|
||||
entry = entry+"<input type='button' onclick='saveBeurteilung(this,\""+datum[0]+"\",\""+d.pruefungsanmeldung_id+"\",\""+d.pruefung_id+"\",\""+d.lehrveranstaltung_id+"\");' value='<?php echo $p->t('global/speichern'); ?>'/>";
|
||||
entry = entry+"</div>";
|
||||
}
|
||||
else
|
||||
{
|
||||
entry = "<div class='anmeldung' id="+d.student.uid+"><div>"+d.student.vorname+" "+d.student.nachname+"</div>"+notenSelect+"<input type='button' onclick='updateBeurteilung(this,\""+d.pruefung.pruefung_id+"\");' value='<?php echo $p->t('global/speichern'); ?>'/></br><input id='note_anmerkung_"+d.student.uid+"' placeholder='<?php echo $p->t('global/anmerkung'); ?>' value='"+d.pruefung.anmerkung+"' /></div>";
|
||||
entry = "<div class='anmeldung' id="+d.student.uid+">";
|
||||
entry = entry+"<div>"+d.student.vorname+" "+d.student.nachname+"</div>";
|
||||
entry = entry+notenSelect;
|
||||
entry = entry+"<input id='note_anmerkung_"+d.student.uid+"' placeholder='<?php echo $p->t('global/anmerkung'); ?>' value='"+d.pruefung.anmerkung+"' />";
|
||||
entry = entry+"<input type='button' onclick='updateBeurteilung(this,\""+d.pruefung.pruefung_id+"\");' value='<?php echo $p->t('global/speichern'); ?>'/>";
|
||||
entry = entry+"</div>";
|
||||
}
|
||||
$("#anmeldeDaten").append(entry);
|
||||
if(d.pruefung.note!==null)
|
||||
@@ -173,7 +177,7 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
||||
entry = "<div><div>"+data.errormsg+"</div></div>";
|
||||
$("#anmeldeDaten").html(entry);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
}).always(function(event, xhr, settings){
|
||||
$("#modalOverlay").removeClass("modalOverlay");
|
||||
});
|
||||
});
|
||||
@@ -217,7 +221,7 @@ function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrver
|
||||
pruefungsanmeldung_id: pruefungsanmeldung_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
}).done(function(data){
|
||||
if(data.error != 'true')
|
||||
{
|
||||
markAsSaved(ele);
|
||||
@@ -228,7 +232,7 @@ function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrver
|
||||
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
||||
$(ele).parent().find("select").val(null);
|
||||
}
|
||||
}).complete(function(event, xhr, settings){
|
||||
}).always(function(event, xhr, settings){
|
||||
|
||||
});
|
||||
}
|
||||
@@ -261,7 +265,7 @@ function updateBeurteilung(ele, pruefung_id)
|
||||
anmerkung: anmerkung
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data){
|
||||
}).done(function(data){
|
||||
if(data.error != 'true')
|
||||
{
|
||||
markAsSaved(ele);
|
||||
@@ -272,7 +276,7 @@ function updateBeurteilung(ele, pruefung_id)
|
||||
}
|
||||
|
||||
|
||||
}).complete(function(event, xhr, settings){
|
||||
}).always(function(event, xhr, settings){
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,4 +1,22 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Stefan Puraner <puraner@technikum-wien.at>
|
||||
*/
|
||||
header( 'Expires: -1' );
|
||||
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||
@@ -45,115 +63,115 @@ $method = filter_input(INPUT_POST, 'method');
|
||||
switch($method)
|
||||
{
|
||||
case 'getPruefungMitarbeiter':
|
||||
if($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
{
|
||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||
}
|
||||
else if($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||
{
|
||||
$mitarbeiter_uid = $uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
if ($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
{
|
||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||
}
|
||||
else if ($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||
{
|
||||
$mitarbeiter_uid = $uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$data = getPruefungMitarbeiter($mitarbeiter_uid);
|
||||
break;
|
||||
}
|
||||
$data = getPruefungMitarbeiter($mitarbeiter_uid);
|
||||
break;
|
||||
case 'getNoten':
|
||||
if(!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
if (!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$data = getNoten();
|
||||
break;
|
||||
}
|
||||
$data = getNoten();
|
||||
break;
|
||||
case 'saveBeurteilung':
|
||||
$lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id');
|
||||
$student_uid = filter_input(INPUT_POST, 'student_uid');
|
||||
if($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
{
|
||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||
}
|
||||
else if($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||
{
|
||||
$mitarbeiter_uid = $uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
$lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id');
|
||||
$student_uid = filter_input(INPUT_POST, 'student_uid');
|
||||
if ($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
{
|
||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||
}
|
||||
else if ($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||
{
|
||||
$mitarbeiter_uid = $uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$note = filter_input(INPUT_POST, 'note');
|
||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||
$datum = filter_input(INPUT_POST, 'datum');
|
||||
$anmerkung = filter_input(INPUT_POST, 'anmerkung');
|
||||
$pruefungsanmeldung_id = filter_input(INPUT_POST, 'pruefungsanmeldung_id');
|
||||
$data = saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid);
|
||||
break;
|
||||
}
|
||||
$note = filter_input(INPUT_POST, 'note');
|
||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||
$datum = filter_input(INPUT_POST, 'datum');
|
||||
$anmerkung = filter_input(INPUT_POST, 'anmerkung');
|
||||
$pruefungsanmeldung_id = filter_input(INPUT_POST, 'pruefungsanmeldung_id');
|
||||
$data = saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid);
|
||||
break;
|
||||
case 'updateBeurteilung':
|
||||
if($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
{
|
||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||
}
|
||||
else if($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||
{
|
||||
$mitarbeiter_uid = $uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
if ($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
{
|
||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||
}
|
||||
else if ($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||
{
|
||||
$mitarbeiter_uid = $uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||
$note = filter_input(INPUT_POST, 'note');
|
||||
$anmerkung = filter_input(INPUT_POST, 'anmerkung');
|
||||
$data = updateBeurteilung($pruefung_id, $note, $mitarbeiter_uid, $anmerkung);
|
||||
break;
|
||||
}
|
||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||
$note = filter_input(INPUT_POST, 'note');
|
||||
$anmerkung = filter_input(INPUT_POST, 'anmerkung');
|
||||
$data = updateBeurteilung($pruefung_id, $note, $mitarbeiter_uid, $anmerkung);
|
||||
break;
|
||||
case 'loadPruefung':
|
||||
if(!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && ($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
if (!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && ($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||
$data = loadPruefung($pruefung_id);
|
||||
break;
|
||||
}
|
||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||
$data = loadPruefung($pruefung_id);
|
||||
break;
|
||||
case 'getBeurteilung':
|
||||
if(!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
if (!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$pruefungsanmeldung_id = filter_input(INPUT_POST, 'pruefungsanmeldung_id');
|
||||
$data = getBeurteilung($pruefungsanmeldung_id);
|
||||
break;
|
||||
}
|
||||
$pruefungsanmeldung_id = filter_input(INPUT_POST, 'pruefungsanmeldung_id');
|
||||
$data = getBeurteilung($pruefungsanmeldung_id);
|
||||
break;
|
||||
case 'getAnmeldungenTermin':
|
||||
if(!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
if (!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||
{
|
||||
$data['result']='false';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||
break;
|
||||
}
|
||||
$lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id');
|
||||
$pruefungstermin_id = filter_input(INPUT_POST, 'pruefungstermin_id');
|
||||
$data = getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id);
|
||||
break;
|
||||
}
|
||||
$lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id');
|
||||
$pruefungstermin_id = filter_input(INPUT_POST, 'pruefungstermin_id');
|
||||
$data = getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
echo json_encode($data);
|
||||
@@ -166,41 +184,41 @@ echo json_encode($data);
|
||||
function getPruefungMitarbeiter($uid = null)
|
||||
{
|
||||
global $p;
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
if($uid !== null)
|
||||
{
|
||||
$lehrveranstaltung->getLVByMitarbeiter($uid);
|
||||
$result = array();
|
||||
foreach($lehrveranstaltung->lehrveranstaltungen as $lv)
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
if ($uid !== null)
|
||||
{
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->getPruefungByLv($lv->lehrveranstaltung_id);
|
||||
if(!empty($pruefung->lehrveranstaltungen))
|
||||
{
|
||||
foreach($pruefung->lehrveranstaltungen as $tempLv)
|
||||
$lehrveranstaltung->getLVByMitarbeiter($uid);
|
||||
$result = array();
|
||||
foreach($lehrveranstaltung->lehrveranstaltungen as $lv)
|
||||
{
|
||||
$prf = new pruefungCis($tempLv->pruefung_id);
|
||||
$prf->getTermineByPruefung();
|
||||
$tempLv->pruefung = $prf;
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->getPruefungByLv($lv->lehrveranstaltung_id);
|
||||
if (!empty($pruefung->lehrveranstaltungen))
|
||||
{
|
||||
foreach($pruefung->lehrveranstaltungen as $tempLv)
|
||||
{
|
||||
$prf = new pruefungCis($tempLv->pruefung_id);
|
||||
$prf->getTermineByPruefung();
|
||||
$tempLv->pruefung = $prf;
|
||||
}
|
||||
$lv->pruefung = $pruefung;
|
||||
array_push($result, $lv);
|
||||
}
|
||||
}
|
||||
$lv->pruefung = $pruefung;
|
||||
array_push($result, $lv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($result))
|
||||
{
|
||||
$data['result']=$result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('pruefung/keinePruefungenVorhanden');
|
||||
}
|
||||
return $data;
|
||||
if (!empty($result))
|
||||
{
|
||||
$data['result']=$result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('pruefung/keinePruefungenVorhanden');
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -209,19 +227,19 @@ function getPruefungMitarbeiter($uid = null)
|
||||
*/
|
||||
function getNoten()
|
||||
{
|
||||
$note = new note();
|
||||
if($note->getAll())
|
||||
{
|
||||
$data['result']=$note->result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$note->errormsg;
|
||||
}
|
||||
return $data;
|
||||
$note = new note();
|
||||
if ($note->getAll())
|
||||
{
|
||||
$data['result']=$note->result;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$note->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -240,80 +258,78 @@ function getNoten()
|
||||
function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid)
|
||||
{
|
||||
global $p;
|
||||
$pruefungCis = new pruefungCis($pruefung_id);
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid);
|
||||
$pruefung = new pruefung();
|
||||
$pruefung->new = true;
|
||||
if(!empty($lehreinheiten))
|
||||
{
|
||||
$pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id);
|
||||
$pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id);
|
||||
|
||||
$pruefung->lehreinheit_id = $lehreinheiten[0];
|
||||
$pruefung->student_uid = $student_uid;
|
||||
$pruefung->mitarbeiter_uid = $mitarbeiter_uid;
|
||||
$pruefung->note = $note;
|
||||
$pruefung->pruefungstyp_kurzbz = $pruefungsanmeldung->pruefungstyp_kurzbz;
|
||||
$pruefung->datum = $datum;
|
||||
$pruefung->anmerkung = $anmerkung;
|
||||
$pruefung->pruefungsanmeldung_id = $pruefungsanmeldung_id;
|
||||
$pruefung->insertvon = $uid;
|
||||
$pruefung->insertamum = date('Y-m-d H:i:s');
|
||||
|
||||
$datum = new datum();
|
||||
// var_dump(date("Y-m-d", time()));
|
||||
// var_dump($pruefungstermin->von);
|
||||
if($datum->between("", date("Y-m-d", time()), $pruefungstermin->von))
|
||||
$pruefungCis = new pruefungCis($pruefung_id);
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid);
|
||||
$pruefung = new pruefung();
|
||||
$pruefung->new = true;
|
||||
if (!empty($lehreinheiten))
|
||||
{
|
||||
if($pruefung->save())
|
||||
{
|
||||
$data['result']=$pruefung->pruefung_id;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
if (defined('CIS_PRUEFUNG_SET_ZEUGNISNOTE') && CIS_PRUEFUNG_SET_ZEUGNISNOTE)
|
||||
$pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id);
|
||||
$pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id);
|
||||
|
||||
$pruefung->lehreinheit_id = $lehreinheiten[0];
|
||||
$pruefung->student_uid = $student_uid;
|
||||
$pruefung->mitarbeiter_uid = $mitarbeiter_uid;
|
||||
$pruefung->note = $note;
|
||||
$pruefung->pruefungstyp_kurzbz = $pruefungsanmeldung->pruefungstyp_kurzbz;
|
||||
$pruefung->datum = $datum;
|
||||
$pruefung->anmerkung = $anmerkung;
|
||||
$pruefung->pruefungsanmeldung_id = $pruefungsanmeldung_id;
|
||||
$pruefung->insertvon = $uid;
|
||||
$pruefung->insertamum = date('Y-m-d H:i:s');
|
||||
|
||||
$datum = new datum();
|
||||
|
||||
if ($datum->between("", date("Y-m-d", time()), $pruefungstermin->von))
|
||||
{
|
||||
$zeugnisnote = new zeugnisnote();
|
||||
$zeugnisnote->new = true;
|
||||
$zeugnisnote->lehrveranstaltung_id = $lehrveranstaltung_id;
|
||||
$zeugnisnote->student_uid = $student_uid;
|
||||
$zeugnisnote->studiensemester_kurzbz = $pruefungCis->studiensemester_kurzbz;
|
||||
$zeugnisnote->note = $note;
|
||||
$zeugnisnote->benotungsdatum = $pruefung->datum;
|
||||
$zeugnisnote->insertamum = date('Y-m-d H:i:s');
|
||||
$zeugnisnote->insertvon = $uid;
|
||||
$zeugnisnote_check = new zeugnisnote();
|
||||
if (!$zeugnisnote_check->load($zeugnisnote->lehrveranstaltung_id, $zeugnisnote->student_uid, $zeugnisnote->studiensemester_kurzbz))
|
||||
if ($pruefung->save())
|
||||
{
|
||||
$zeugnisnote->save(true);
|
||||
$data['result']=$pruefung->pruefung_id;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error'] = 'true';
|
||||
$data['errormsg'] = 'Existing Grade';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
if (defined('CIS_PRUEFUNG_SET_ZEUGNISNOTE') && CIS_PRUEFUNG_SET_ZEUGNISNOTE)
|
||||
{
|
||||
$zeugnisnote = new zeugnisnote();
|
||||
$zeugnisnote->new = true;
|
||||
$zeugnisnote->lehrveranstaltung_id = $lehrveranstaltung_id;
|
||||
$zeugnisnote->student_uid = $student_uid;
|
||||
$zeugnisnote->studiensemester_kurzbz = $pruefungCis->studiensemester_kurzbz;
|
||||
$zeugnisnote->note = $note;
|
||||
$zeugnisnote->benotungsdatum = $pruefung->datum;
|
||||
$zeugnisnote->insertamum = date('Y-m-d H:i:s');
|
||||
$zeugnisnote->insertvon = $uid;
|
||||
$zeugnisnote_check = new zeugnisnote();
|
||||
if (!$zeugnisnote_check->load($zeugnisnote->lehrveranstaltung_id, $zeugnisnote->student_uid, $zeugnisnote->studiensemester_kurzbz))
|
||||
{
|
||||
$zeugnisnote->save(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error'] = 'true';
|
||||
$data['errormsg'] = 'Existing Grade';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('pruefung/terminNichtInDerVergangenheit');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('pruefung/terminNichtInDerVergangenheit');
|
||||
//$data['errormsg']='Nicht in der Vergangenheit';
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('pruefung/keineLehreinheitenVorhanden');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$p->t('pruefung/keineLehreinheitenVorhanden');
|
||||
}
|
||||
|
||||
return $data;
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -326,24 +342,24 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid,
|
||||
function updateBeurteilung($pruefung_id, $note, $uid, $anmerkung)
|
||||
{
|
||||
global $p;
|
||||
$pruefung = new pruefung($pruefung_id);
|
||||
$pruefung->new = FALSE;
|
||||
$pruefung->note = $note;
|
||||
$pruefung->anmerkung = $anmerkung;
|
||||
$pruefung->updatevon = $uid;
|
||||
$pruefung->updateamum = date('Y-m-d H:i:s');
|
||||
if($pruefung->save())
|
||||
{
|
||||
$data['result']=$pruefung->pruefung_id;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
$pruefung = new pruefung($pruefung_id);
|
||||
$pruefung->new = FALSE;
|
||||
$pruefung->note = $note;
|
||||
$pruefung->anmerkung = $anmerkung;
|
||||
$pruefung->updatevon = $uid;
|
||||
$pruefung->updateamum = date('Y-m-d H:i:s');
|
||||
if ($pruefung->save())
|
||||
{
|
||||
$data['result']=$pruefung->pruefung_id;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -353,19 +369,19 @@ function updateBeurteilung($pruefung_id, $note, $uid, $anmerkung)
|
||||
*/
|
||||
function getBeurteilung($pruefungsanmeldung_id)
|
||||
{
|
||||
$pruefung = new pruefung();
|
||||
if($pruefung->getPruefungByAnmeldung($pruefungsanmeldung_id))
|
||||
{
|
||||
$data['result']=$pruefung->pruefung_id;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
$pruefung = new pruefung();
|
||||
if ($pruefung->getPruefungByAnmeldung($pruefungsanmeldung_id))
|
||||
{
|
||||
$data['result']=$pruefung->pruefung_id;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$pruefung->errormsg;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -375,37 +391,37 @@ function getBeurteilung($pruefungsanmeldung_id)
|
||||
function getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id)
|
||||
{
|
||||
global $p;
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
||||
foreach($anmeldungen as $a)
|
||||
{
|
||||
$student = new student($a->uid);
|
||||
$temp = new stdClass();
|
||||
$temp->vorname = $student->vorname;
|
||||
$temp->nachname = $student->nachname;
|
||||
$temp->uid = $student->uid;
|
||||
$a->student = $temp;
|
||||
$pruefung = new pruefung();
|
||||
$pruefung->getPruefungByAnmeldung($a->pruefungsanmeldung_id);
|
||||
$a->pruefung = $pruefung;
|
||||
}
|
||||
if(!empty($anmeldungen))
|
||||
{
|
||||
$data['result']=$anmeldungen;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
if($pruefungsanmeldung->errormsg !== null)
|
||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
||||
foreach($anmeldungen as $a)
|
||||
{
|
||||
$data['errormsg']=$pruefungsanmeldung->errormsg;
|
||||
$student = new student($a->uid);
|
||||
$temp = new stdClass();
|
||||
$temp->vorname = $student->vorname;
|
||||
$temp->nachname = $student->nachname;
|
||||
$temp->uid = $student->uid;
|
||||
$a->student = $temp;
|
||||
$pruefung = new pruefung();
|
||||
$pruefung->getPruefungByAnmeldung($a->pruefungsanmeldung_id);
|
||||
$a->pruefung = $pruefung;
|
||||
}
|
||||
if (!empty($anmeldungen))
|
||||
{
|
||||
$data['result']=$anmeldungen;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['errormsg']= $p->t('pruefung/keineAnmeldungenVorhanden');
|
||||
$data['error']='true';
|
||||
if ($pruefungsanmeldung->errormsg !== null)
|
||||
{
|
||||
$data['errormsg']=$pruefungsanmeldung->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['errormsg']= $p->t('pruefung/keineAnmeldungenVorhanden');
|
||||
}
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
return $data;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
@@ -50,220 +49,201 @@ $rechte->getBerechtigungen($uid);
|
||||
$studiensemester = new studiensemester();
|
||||
$pruefung = new pruefungCis();
|
||||
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
|
||||
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
if (empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
?>
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfungsbewertung</title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/jqueryV1/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>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Prüfungsbewertung</title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.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 src="./pruefung.js.php"></script>
|
||||
<script src="./pruefungsbewertung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
||||
<script src="./pruefungsbewertung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding: 10px 0 0 10px;
|
||||
}
|
||||
body {
|
||||
padding: 10px 0 0 10px;
|
||||
}
|
||||
|
||||
#prfWrapper {
|
||||
position: absolute;
|
||||
height: 80%;
|
||||
width: 300px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
//border-radius: 25px;
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
#prfWrapper {
|
||||
position: absolute;
|
||||
height: 80%;
|
||||
width: 300px;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
#pruefungen {
|
||||
/*border: 1px solid black;*/
|
||||
width: 94%;
|
||||
position: relative;
|
||||
float: left;
|
||||
padding: 0 1em 0em 1em;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#pruefungen {
|
||||
width: 94%;
|
||||
position: relative;
|
||||
float: left;
|
||||
padding: 0 1em 0em 1em;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
#anmWrapper {
|
||||
position: absolute;
|
||||
/*top: 45px;*/
|
||||
left: 360px;
|
||||
width: 600px;
|
||||
height: 80%;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
/*border-radius: 25px;*/
|
||||
border: 1px solid #dddddd;
|
||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||
}
|
||||
#anmWrapper {
|
||||
position: absolute;
|
||||
left: 360px;
|
||||
width: 600px;
|
||||
height: 80%;
|
||||
padding: 1.8em 1.5em 1.8em 1em;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
#anmeldungen {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#anmeldungen {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
#anmeldungen > div, h2 {
|
||||
padding: 0.5em;
|
||||
}
|
||||
#anmeldungen > div, h2 {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#message {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
width: 50%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
#message {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
width: 50%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.missingFormData {
|
||||
border: 2px solid red;
|
||||
outline: 2px solid red;
|
||||
}
|
||||
.missingFormData {
|
||||
border: 2px solid red;
|
||||
outline: 2px solid red;
|
||||
}
|
||||
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
|
||||
.anmeldung {
|
||||
font-size: 1.2em;
|
||||
border-bottom: 1px solid black;
|
||||
height: 3.5em;
|
||||
clear: both;
|
||||
padding: 0.5em 0 0 0.5em;
|
||||
}
|
||||
.anmeldung > *{
|
||||
margin: 0 1em 0 0;
|
||||
float: left;
|
||||
}
|
||||
.anmeldung {
|
||||
font-size: 1.2em;
|
||||
border-bottom: 1px solid black;
|
||||
margin: 0.5em 0 0 0.5em;
|
||||
padding: 0.5em 0 0 0.5em;
|
||||
}
|
||||
|
||||
.anmeldung:last-child {
|
||||
clear: both;
|
||||
}
|
||||
.saved {
|
||||
background-color: lightgreen;
|
||||
}
|
||||
|
||||
.anmeldung div:first-child {
|
||||
width: 250px;
|
||||
height: 100%;
|
||||
}
|
||||
.unsaved {
|
||||
background-color: lightpink;
|
||||
}
|
||||
|
||||
.saved {
|
||||
background-color: green;
|
||||
}
|
||||
#wrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.unsaved {
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#lektor {
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
#lektor {
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var isFormHidden = true;
|
||||
$("#lektor").autocomplete({
|
||||
source: "lektor_autocomplete.php?autocomplete=lektor",
|
||||
minLength:2,
|
||||
response: function(event, ui)
|
||||
{
|
||||
//Value und Label fuer die Anzeige setzen
|
||||
for(i in ui.content)
|
||||
{
|
||||
ui.content[i].value=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
ui.content[i].label=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
}
|
||||
},
|
||||
select: function(event, ui)
|
||||
{
|
||||
//Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren
|
||||
if (ui.item.mitarbeiter_uid=='')
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("student");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("lektor");
|
||||
}
|
||||
if(isFormHidden)
|
||||
{
|
||||
isFormHidden = false;
|
||||
$("#wrapper").slideToggle("slow");
|
||||
}
|
||||
loadPruefungenMitarbeiter();
|
||||
}
|
||||
$(document).ready(function()
|
||||
{
|
||||
var isFormHidden = true;
|
||||
$("#lektor").autocomplete({
|
||||
source: "lektor_autocomplete.php?autocomplete=lektor",
|
||||
minLength:2,
|
||||
response: function(event, ui)
|
||||
{
|
||||
//Value und Label fuer die Anzeige setzen
|
||||
for(i in ui.content)
|
||||
{
|
||||
ui.content[i].value=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
ui.content[i].label=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
}
|
||||
},
|
||||
select: function(event, ui)
|
||||
{
|
||||
//Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren
|
||||
if (ui.item.mitarbeiter_uid=='')
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("student");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("lektor");
|
||||
}
|
||||
if (isFormHidden)
|
||||
{
|
||||
isFormHidden = false;
|
||||
$("#wrapper").slideToggle("slow");
|
||||
}
|
||||
loadPruefungenMitarbeiter();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsbewertungTitle'); ?></h1>
|
||||
<div>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsbewertungTitle'); ?></h1>
|
||||
<div>
|
||||
<?php
|
||||
if(!$rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
if (!$rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||
{
|
||||
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
|
||||
<script>
|
||||
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#wrapper").attr("style", "display: block");
|
||||
loadPruefungenMitarbeiter();
|
||||
$("#wrapper").attr("style", "display: block");
|
||||
loadPruefungenMitarbeiter();
|
||||
});
|
||||
</script>';
|
||||
</script>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span width="116px">'.$p->t('pruefung/pruefungLektor').': </span>';
|
||||
echo '<input placeholder="UID" type="text" id="lektor" value="" size="30"/>';
|
||||
echo '<input type="hidden" id="uid" value="" />';
|
||||
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
|
||||
echo '<span width="116px">'.$p->t('pruefung/pruefungLektor').': </span>';
|
||||
echo '<input placeholder="UID" type="text" id="lektor" value="" size="30"/>';
|
||||
echo '<input type="hidden" id="uid" value="" />';
|
||||
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div id="wrapper">
|
||||
<div id='prfWrapper'>
|
||||
<div id='pruefungen'>
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<ul id="pruefungenListe">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
?>
|
||||
</div>
|
||||
<div id='anmWrapper'>
|
||||
<div id="anmeldungen">
|
||||
<h2><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?></h2>
|
||||
<div id="anmeldeDaten">
|
||||
|
||||
<div id="wrapper">
|
||||
<div id='prfWrapper'>
|
||||
<div id='pruefungen'>
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<ul id="pruefungenListe">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id='anmWrapper'>
|
||||
<div id="anmeldungen">
|
||||
<h2><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?></h2>
|
||||
<div id="anmeldeDaten">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="message"></div>
|
||||
<div id="progressbar"></div>
|
||||
<div id="modalOverlay"></div>
|
||||
<div id="message"></div>
|
||||
<div id="progressbar"></div>
|
||||
<div id="modalOverlay"></div>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
@@ -48,42 +47,45 @@ if(!$rechte->isBerechtigt('lehre/pruefungsfenster'))
|
||||
|
||||
function compareOe($a, $b)
|
||||
{
|
||||
if($a->organisationseinheittyp_kurzbz == $b->organisationseinheittyp_kurzbz)
|
||||
return 0;
|
||||
if($a->organisationseinheittyp_kurzbz == $b->organisationseinheittyp_kurzbz)
|
||||
return 0;
|
||||
|
||||
return ($a->organisationseinheittyp_kurzbz < $b->organisationseinheittyp_kurzbz) ? -1 : 1;
|
||||
return ($a->organisationseinheittyp_kurzbz < $b->organisationseinheittyp_kurzbz) ? -1 : 1;
|
||||
}
|
||||
|
||||
?>
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo $p->t('pruefung/titlePruefungsfenster') ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo $p->t('pruefung/titlePruefungsfenster') ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.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>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#startDate").datepicker({
|
||||
minDate: new Date()
|
||||
});
|
||||
$("#endDate").datepicker({
|
||||
minDate: +1
|
||||
});
|
||||
$("#prfTable").tablesorter({
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
|
||||
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#startDate").datepicker({
|
||||
minDate: new Date()
|
||||
});
|
||||
$("#endDate").datepicker({
|
||||
minDate: +1
|
||||
});
|
||||
$("#prfTable").tablesorter({
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</script>
|
||||
<?php
|
||||
$datum = new datum();
|
||||
$method = "";
|
||||
@@ -96,155 +98,140 @@ $studiensemester->getAll();
|
||||
|
||||
if (isset($_POST["method"]) && $_POST["method"] == "save")
|
||||
{
|
||||
$method = $_POST["method"];
|
||||
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
||||
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
|
||||
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
|
||||
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
|
||||
$method = $_POST["method"];
|
||||
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
||||
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
|
||||
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
|
||||
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
|
||||
|
||||
if ($endDate != false && $startDate != false)
|
||||
{
|
||||
if ($datum->DateDiff($startDate, $endDate) >= 0)
|
||||
{
|
||||
if ($datum->DateDiff(date("Y-m-d"), $endDate) >= 0)
|
||||
{
|
||||
// if ($datum->DateDiff($startDate, date("Y-m-d")) <= 0)
|
||||
// {
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->new = true;
|
||||
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
||||
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
||||
$pruefungsfenster->start = $startDate;
|
||||
$pruefungsfenster->ende = $endDate;
|
||||
if ($pruefungsfenster->save())
|
||||
{
|
||||
echo $p->t('pruefung/erfolgreichgespeichert');
|
||||
}
|
||||
else {
|
||||
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// echo "Fehler: Startdatum liegt in der Vergangenheit.";
|
||||
// }
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
||||
}
|
||||
if ($endDate != false && $startDate != false)
|
||||
{
|
||||
if ($datum->DateDiff($startDate, $endDate) >= 0)
|
||||
{
|
||||
if ($datum->DateDiff(date("Y-m-d"), $endDate) >= 0)
|
||||
{
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->new = true;
|
||||
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
||||
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
||||
$pruefungsfenster->start = $startDate;
|
||||
$pruefungsfenster->ende = $endDate;
|
||||
if ($pruefungsfenster->save())
|
||||
{
|
||||
echo $p->t('pruefung/erfolgreichgespeichert');
|
||||
}
|
||||
else {
|
||||
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
||||
}
|
||||
}
|
||||
else if(isset($_POST["method"]) && $_POST["method"] == "update")
|
||||
{
|
||||
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
||||
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
|
||||
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
|
||||
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
|
||||
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
||||
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
|
||||
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
|
||||
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
|
||||
|
||||
if ($endDate != false && $startDate != false)
|
||||
{
|
||||
if ($datum->DateDiff($startDate, $endDate) >= 0)
|
||||
{
|
||||
if ($datum->DateDiff(date("Y-m-d"), $endDate) >= 0)
|
||||
{
|
||||
// if ($datum->DateDiff($startDate, date("Y-m-d")) <= 0)
|
||||
// {
|
||||
$pruefungsfenster_id = $_POST["id"];
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
if ($endDate != false && $startDate != false)
|
||||
{
|
||||
if ($datum->DateDiff($startDate, $endDate) >= 0)
|
||||
{
|
||||
if ($datum->DateDiff(date("Y-m-d"), $endDate) >= 0)
|
||||
{
|
||||
$pruefungsfenster_id = $_POST["id"];
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
|
||||
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
||||
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
||||
$pruefungsfenster->start = $startDate;
|
||||
$pruefungsfenster->ende = $endDate;
|
||||
if ($pruefungsfenster->save())
|
||||
{
|
||||
echo $p->t('pruefung/erfolgreichgeaendert');
|
||||
}
|
||||
else {
|
||||
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/keineBerechtigungZumAendernDesDatensatzes');
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// echo "Fehler: Startdatum liegt in der Vergangenheit.";
|
||||
// }
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
||||
}
|
||||
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
||||
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
||||
$pruefungsfenster->start = $startDate;
|
||||
$pruefungsfenster->ende = $endDate;
|
||||
if ($pruefungsfenster->save())
|
||||
{
|
||||
echo $p->t('pruefung/erfolgreichgeaendert');
|
||||
}
|
||||
else {
|
||||
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/keineBerechtigungZumAendernDesDatensatzes');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
||||
}
|
||||
}
|
||||
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="update")
|
||||
{
|
||||
$pruefungsfenster_id = $_GET["id"];
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
if(!in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
echo $p->t('pruefung/keineBerechtigungZumAnzeigenDesDatensatzes');
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
}
|
||||
$method = $_GET["method"];
|
||||
$pruefungsfenster_id = $_GET["id"];
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
if(!in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
echo $p->t('pruefung/keineBerechtigungZumAnzeigenDesDatensatzes');
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
}
|
||||
$method = $_GET["method"];
|
||||
}
|
||||
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="delete")
|
||||
{
|
||||
$pruefungsfenster_id = $_GET["id"];
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
$pruefungsfenster_id = $_GET["id"];
|
||||
$pruefungsfenster = new pruefungsfenster();
|
||||
$pruefungsfenster->load($pruefungsfenster_id);
|
||||
|
||||
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
if(!$pruefungsfenster->hasPruefungen($pruefungsfenster_id) && $pruefungsfenster->errormsg === null)
|
||||
{
|
||||
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||
{
|
||||
if(!$pruefungsfenster->hasPruefungen($pruefungsfenster_id) && $pruefungsfenster->errormsg === null)
|
||||
{
|
||||
|
||||
if($pruefungsfenster->delete($pruefungsfenster_id))
|
||||
{
|
||||
echo $p->t('pruefung/erfolgreichgeloescht');
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: ".$pruefungsfenster->errormsg;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen');
|
||||
}
|
||||
$method = $_GET["method"];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/keineBerechtigungZumLoeschenDesDatensatzes');
|
||||
}
|
||||
if($pruefungsfenster->delete($pruefungsfenster_id))
|
||||
{
|
||||
echo $p->t('pruefung/erfolgreichgeloescht');
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler: ".$pruefungsfenster->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen');
|
||||
}
|
||||
$method = $_GET["method"];
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('pruefung/keineBerechtigungZumLoeschenDesDatensatzes');
|
||||
}
|
||||
}
|
||||
|
||||
$prfFenster = new pruefungsfenster();
|
||||
@@ -252,146 +239,146 @@ $prfFenster->getAll("start");
|
||||
if($method != "update")
|
||||
{
|
||||
?>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
||||
<h2><?php echo $p->t('pruefung/neuesPruefungsfensterAnlegen'); ?></h2>
|
||||
<div>
|
||||
<form method="POST" action="pruefungsfenster_anlegen.php">
|
||||
<table>
|
||||
<tr>
|
||||
<td><input type="hidden" name="method" value="save"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester">
|
||||
<?php
|
||||
$aktuellesSemester = $studiensemester->getSemesterFromDatum(date("Y-m-d"));
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
{
|
||||
if($aktuellesSemester == $result->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
||||
<td>
|
||||
<select id="oe_kurzbz" name="oe_kurzbz">
|
||||
<?php
|
||||
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
||||
<h2><?php echo $p->t('pruefung/neuesPruefungsfensterAnlegen'); ?></h2>
|
||||
<div>
|
||||
<form method="POST" action="pruefungsfenster_anlegen.php">
|
||||
<table>
|
||||
<tr>
|
||||
<td><input type="hidden" name="method" value="save"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester">
|
||||
<?php
|
||||
$aktuellesSemester = $studiensemester->getSemesterFromDatum(date("Y-m-d"));
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
{
|
||||
if($aktuellesSemester == $result->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
||||
<td>
|
||||
<select id="oe_kurzbz" name="oe_kurzbz">
|
||||
<?php
|
||||
|
||||
$oe_array = array();
|
||||
$oe_array = array();
|
||||
|
||||
foreach ($oe as $result)
|
||||
{
|
||||
$organisationseinheit = new organisationseinheit();
|
||||
$organisationseinheit->load($result);
|
||||
array_push($oe_array, $organisationseinheit);
|
||||
}
|
||||
foreach ($oe as $result)
|
||||
{
|
||||
$organisationseinheit = new organisationseinheit();
|
||||
$organisationseinheit->load($result);
|
||||
array_push($oe_array, $organisationseinheit);
|
||||
}
|
||||
|
||||
usort($oe_array, "compareOe");
|
||||
usort($oe_array, "compareOe");
|
||||
|
||||
foreach ($oe_array as $result)
|
||||
{
|
||||
echo '<option value="'.$result->oe_kurzbz.'">'.$result->organisationseinheittyp_kurzbz.' '.$result->bezeichnung.'</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
||||
<td><input type="text" id="startDate" name="startDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
||||
<td><input type="text" id="endDate" name="endDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
foreach ($oe_array as $result)
|
||||
{
|
||||
echo '<option value="'.$result->oe_kurzbz.'">'.$result->organisationseinheittyp_kurzbz.' '.$result->bezeichnung.'</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
||||
<td><input type="text" id="startDate" name="startDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
||||
<td><input type="text" id="endDate" name="endDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
||||
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
||||
<div>
|
||||
<form method="POST" action="pruefungsfenster_anlegen.php">
|
||||
<table>
|
||||
<tr>
|
||||
<td><input type="hidden" name="method" value="update"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="hidden" name="id" value="<?php echo $pruefungsfenster->pruefungsfenster_id; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester">
|
||||
<?php
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
{
|
||||
if($result->studiensemester_kurzbz == $pruefungsfenster->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
||||
<td>
|
||||
<select id="oe_kurzbz" name="oe_kurzbz">
|
||||
<?php
|
||||
foreach ($oe as $result)
|
||||
{
|
||||
if($result == $pruefungsfenster->oe_kurzbz)
|
||||
{
|
||||
echo '<option selected>'.$result.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option>'.$result.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
||||
<td><input type="text" id="startDate" name="startDate" value="<?php echo $pruefungsfenster->start; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
||||
<td><input type="text" id="endDate" name="endDate" value="<?php echo $pruefungsfenster->ende; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php"><input type="button" value="<?php echo $p->t('global/abbrechen'); ?>"></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
?>
|
||||
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
||||
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
||||
<div>
|
||||
<form method="POST" action="pruefungsfenster_anlegen.php">
|
||||
<table>
|
||||
<tr>
|
||||
<td><input type="hidden" name="method" value="update"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="hidden" name="id" value="<?php echo $pruefungsfenster->pruefungsfenster_id; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester">
|
||||
<?php
|
||||
foreach ($studiensemester->studiensemester as $result)
|
||||
{
|
||||
if($result->studiensemester_kurzbz == $pruefungsfenster->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
||||
<td>
|
||||
<select id="oe_kurzbz" name="oe_kurzbz">
|
||||
<?php
|
||||
foreach ($oe as $result)
|
||||
{
|
||||
if($result == $pruefungsfenster->oe_kurzbz)
|
||||
{
|
||||
echo '<option selected>'.$result.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option>'.$result.'</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
||||
<td><input type="text" id="startDate" name="startDate" value="<?php echo $pruefungsfenster->start; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
||||
<td><input type="text" id="endDate" name="endDate" value="<?php echo $pruefungsfenster->ende; ?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php"><input type="button" value="<?php echo $p->t('global/abbrechen'); ?>"></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
/*
|
||||
* Wenn ein Datensatz um bearbeiten ausgewählt wurde,
|
||||
@@ -400,59 +387,59 @@ else
|
||||
|
||||
if((isset($_GET["id"]) && $method!="update") || !isset($_GET["id"]))
|
||||
{
|
||||
?>
|
||||
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
||||
<div style="width: 50%;">
|
||||
<?php
|
||||
if(!empty($prfFenster->result)){
|
||||
?>
|
||||
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
||||
<div style="width: 50%;">
|
||||
<?php
|
||||
if(!empty($prfFenster->result)){
|
||||
|
||||
?>
|
||||
<table class="tablesorter" id="prfTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
||||
<th><?php echo $p->t('global/organisationseinheit'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/start'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/ende'); ?></th>
|
||||
<th><?php echo $p->t('global/bearbeiten'); ?></th>
|
||||
<th><?php echo $p->t('global/loeschen'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$organisationseinheit = new organisationseinheit();
|
||||
foreach ($prfFenster->result as $result)
|
||||
{
|
||||
if(in_array($result->oe_kurzbz, $oe))
|
||||
{
|
||||
$organisationseinheit->load($result->oe_kurzbz);
|
||||
echo
|
||||
'<tr>
|
||||
<td>'.$result->studiensemester_kurzbz.'</td>
|
||||
<td>'.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.'</td>
|
||||
<td>'.$result->start.'</td>
|
||||
<td>'.$result->ende.'</td>
|
||||
<td><a href="pruefungsfenster_anlegen.php?method=update&id='.$result->pruefungsfenster_id.'">'.$p->t('global/bearbeiten').'</a></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php?method=delete&id='.$result->pruefungsfenster_id.'">'. $p->t('global/loeschen').'</a></td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
echo
|
||||
'<tr>
|
||||
<td>'.$p->t('pruefung/keinePruefungsfensterGespeichert').'</td>
|
||||
</tr>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
?>
|
||||
<table class="tablesorter" id="prfTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
||||
<th><?php echo $p->t('global/organisationseinheit'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/start'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/ende'); ?></th>
|
||||
<th><?php echo $p->t('global/bearbeiten'); ?></th>
|
||||
<th><?php echo $p->t('global/loeschen'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$organisationseinheit = new organisationseinheit();
|
||||
foreach ($prfFenster->result as $result)
|
||||
{
|
||||
if(in_array($result->oe_kurzbz, $oe))
|
||||
{
|
||||
$organisationseinheit->load($result->oe_kurzbz);
|
||||
echo
|
||||
'<tr>
|
||||
<td>'.$result->studiensemester_kurzbz.'</td>
|
||||
<td>'.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.'</td>
|
||||
<td>'.$result->start.'</td>
|
||||
<td>'.$result->ende.'</td>
|
||||
<td><a href="pruefungsfenster_anlegen.php?method=update&id='.$result->pruefungsfenster_id.'">'.$p->t('global/bearbeiten').'</a></td>
|
||||
<td><a href="pruefungsfenster_anlegen.php?method=delete&id='.$result->pruefungsfenster_id.'">'. $p->t('global/loeschen').'</a></td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
echo
|
||||
'<tr>
|
||||
<td>'.$p->t('pruefung/keinePruefungsfensterGespeichert').'</td>
|
||||
</tr>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,3 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
@@ -55,7 +54,7 @@ $studiensemester = new studiensemester();
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->loadLVAfromMitarbeiter(0, $uid, $studiensemester->getaktorNext());
|
||||
if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (!ctype_digit($_GET['termin_id']))
|
||||
die('Wrong Parameter');
|
||||
@@ -129,52 +128,55 @@ foreach ($anmeldungen as $row)
|
||||
$uids .= $row->uid.'@'.DOMAIN.'<br>';
|
||||
}
|
||||
|
||||
?>
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/jqueryV1/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 src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
|
||||
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||
<script src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
|
||||
<style type="text/css">
|
||||
#message {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
width: 50%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
#message {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
width: 50%;
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.missingFormData {
|
||||
border: 2px solid red;
|
||||
outline: 2px solid red;
|
||||
}
|
||||
.missingFormData {
|
||||
border: 2px solid red;
|
||||
outline: 2px solid red;
|
||||
}
|
||||
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
|
||||
#prfDetails, #prfVerwaltung {
|
||||
margin: 1em;
|
||||
}
|
||||
#prfDetails, #prfVerwaltung {
|
||||
margin: 1em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body style="padding-top:20px">
|
||||
</head>
|
||||
<body style="padding-top:20px">
|
||||
<center>
|
||||
<form name="change_termin" action="./pruefungstermin_aendern.php" method="GET">
|
||||
<table>
|
||||
@@ -220,5 +222,5 @@ foreach ($anmeldungen as $row)
|
||||
</table>
|
||||
</form>
|
||||
</center>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
/*
|
||||
* Copyright 2014 fhcomplete.org
|
||||
@@ -50,26 +49,29 @@ $rechte->getBerechtigungen($uid);
|
||||
$studiensemester = new studiensemester();
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->loadLVAfromMitarbeiter(0, $uid, $studiensemester->getaktorNext());
|
||||
if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
if (empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
?>
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/jqueryV1/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 src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
||||
<script src="../../../../include/js/datecheck.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.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 src="./pruefung.js.php"></script>
|
||||
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
|
||||
<style type="text/css">
|
||||
#message {
|
||||
#message {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
@@ -77,250 +79,250 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
||||
height: 2em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.missingFormData {
|
||||
.missingFormData {
|
||||
border: 2px solid red;
|
||||
outline: 2px solid red;
|
||||
}
|
||||
}
|
||||
|
||||
.modalOverlay {
|
||||
.modalOverlay {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||
}
|
||||
}
|
||||
|
||||
#prfDetails, #prfVerwaltung {
|
||||
#prfDetails, #prfVerwaltung {
|
||||
margin: 1em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#einzeln").bind("change", function(){
|
||||
if($("#einzeln").prop("checked") === true)
|
||||
{
|
||||
$("#pruefungsintervall").closest("tr").css("visibility", "visible");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pruefungsintervall").closest("tr").css("visibility", "hidden");
|
||||
}
|
||||
<script>
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#einzeln").bind("change", function()
|
||||
{
|
||||
if ($("#einzeln").prop("checked") === true)
|
||||
{
|
||||
$("#pruefungsintervall").closest("tr").css("visibility", "visible");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#pruefungsintervall").closest("tr").css("visibility", "hidden");
|
||||
}
|
||||
});
|
||||
|
||||
var isFormHidden = true;
|
||||
$("#lektor").autocomplete(
|
||||
{
|
||||
source: "lektor_autocomplete.php?autocomplete=lektor",
|
||||
minLength:2,
|
||||
response: function(event, ui)
|
||||
{
|
||||
//Value und Label fuer die Anzeige setzen
|
||||
for(i in ui.content)
|
||||
{
|
||||
ui.content[i].value=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
ui.content[i].label=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
}
|
||||
},
|
||||
select: function(event, ui)
|
||||
{
|
||||
//Ausgewaehlte Ressource zuweisen und Textfeld wieder leeren
|
||||
if (ui.item.mitarbeiter_uid=='')
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("student");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("lektor");
|
||||
}
|
||||
if (isFormHidden)
|
||||
{
|
||||
isFormHidden = false;
|
||||
$("#prfVerwaltung form").slideToggle("slow");
|
||||
}
|
||||
resetPruefungsverwaltung();
|
||||
}
|
||||
});
|
||||
});
|
||||
var isFormHidden = true;
|
||||
$("#lektor").autocomplete({
|
||||
source: "lektor_autocomplete.php?autocomplete=lektor",
|
||||
minLength:2,
|
||||
response: function(event, ui)
|
||||
{
|
||||
//Value und Label fuer die Anzeige setzen
|
||||
for(i in ui.content)
|
||||
{
|
||||
ui.content[i].value=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
ui.content[i].label=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
|
||||
}
|
||||
},
|
||||
select: function(event, ui)
|
||||
{
|
||||
//Ausgewaehlte Ressource zuweisen und Textfeld wieder leeren
|
||||
if (ui.item.mitarbeiter_uid=='')
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("student");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||
$("#uid").val("lektor");
|
||||
}
|
||||
if(isFormHidden)
|
||||
{
|
||||
isFormHidden = false;
|
||||
$("#prfVerwaltung form").slideToggle("slow");
|
||||
}
|
||||
// loadAllPruefungen();
|
||||
resetPruefungsverwaltung();
|
||||
// loadPruefungstypen("false");
|
||||
// loadStudiensemester();
|
||||
// loadAllPruefungen();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div id="prfVerwaltung">
|
||||
<h1><?php echo $p->t('pruefung/pruefungenVerwalten'); ?></h1>
|
||||
<table>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="prfVerwaltung">
|
||||
<h1><?php echo $p->t('pruefung/pruefungenVerwalten'); ?></h1>
|
||||
<table>
|
||||
<tr>
|
||||
<?php
|
||||
if (!$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
|
||||
{
|
||||
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#prfVerwaltung form").attr("style", "display: block");
|
||||
loadPruefungstypen("false");
|
||||
loadStudiensemester();
|
||||
loadAllPruefungen();
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td width="116px">'.$p->t('pruefung/pruefungLektor').':</td>';
|
||||
echo '<td width="250px"><input placeholder="UID" type="text" id="lektor" value="" size="30"/></td>';
|
||||
echo '<input type="hidden" id="uid" value="" />';
|
||||
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
</table>
|
||||
<form method="post" action="pruefungstermin_festlegen.php" style="display: none;">
|
||||
<input type="hidden" name="method" value="save">
|
||||
<table>
|
||||
<tr>
|
||||
<?php
|
||||
if(!$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
|
||||
{
|
||||
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#prfVerwaltung form").attr("style", "display: block");
|
||||
loadPruefungstypen("false");
|
||||
loadStudiensemester();
|
||||
loadAllPruefungen();
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td width="116px">'.$p->t('pruefung/pruefungLektor').':</td>';
|
||||
echo '<td width="250px"><input placeholder="UID" type="text" id="lektor" value="" size="30"/></td>';
|
||||
echo '<input type="hidden" id="uid" value="" />';
|
||||
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
</table>
|
||||
<form method="post" action="pruefungstermin_festlegen.php" style="display: none;">
|
||||
|
||||
<input type="hidden" name="method" value="save">
|
||||
<table>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/pruefungTitel'); ?>:</td>
|
||||
<td>
|
||||
<input id='titel' type="text" name="titel" size="30">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('global/beschreibung'); ?>:</td>
|
||||
<td>
|
||||
<textarea id='beschreibung' name="beschreibung" rows="5" cols="20"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>:</td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester" onchange="loadPruefungsfenster(); loadLehrveranstaltungen();" onload="loadPruefungsfenster();">
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/pruefungsfenster'); ?>:</td>
|
||||
<td>
|
||||
<select id="pruefungsfenster" name="pruefungsfenster" onchange="setDatePicker(this);">
|
||||
<!--Daten werden durch JavaScript geladen-->
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<!--<tr>
|
||||
<td>Prüfungstyp:</td>
|
||||
<td>
|
||||
<select id='pruefungsTyp' name="pruefungsTyp">
|
||||
|
||||
</select>
|
||||
</td>
|
||||
</tr>-->
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('pruefung/pruefungMethode'); ?>:</td>
|
||||
<td><textarea id='methode' placeholder="Multiple Choice, etc." rows="5" cols="20" name="methode"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/pruefungEinzelpruefung'); ?>:</td>
|
||||
<td><input id='einzeln' type="checkbox" name="einzelpruefung"></td>
|
||||
</tr>
|
||||
<tr style="visibility:hidden;">
|
||||
<td><?php echo $p->t('pruefung/pruefungIntervall'); ?>:</td>
|
||||
<td><?php echo $p->t('pruefung/pruefungTitel'); ?>:</td>
|
||||
<td>
|
||||
<select id="pruefungsintervall">
|
||||
<input id='titel' type="text" name="titel" size="30">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('global/beschreibung'); ?>:</td>
|
||||
<td>
|
||||
<textarea id='beschreibung' name="beschreibung" rows="5" cols="20"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('global/studiensemester'); ?>:</td>
|
||||
<td>
|
||||
<select id="studiensemester" name="studiensemester" onchange="loadPruefungsfenster(); loadLehrveranstaltungen();" onload="loadPruefungsfenster();">
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/pruefungsfenster'); ?>:</td>
|
||||
<td>
|
||||
<select id="pruefungsfenster" name="pruefungsfenster" onchange="setDatePicker(this);">
|
||||
<!--Daten werden durch JavaScript geladen-->
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('pruefung/pruefungMethode'); ?>:</td>
|
||||
<td>
|
||||
<textarea id='methode' placeholder="Multiple Choice, etc." rows="5" cols="20" name="methode"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo $p->t('pruefung/pruefungEinzelpruefung'); ?>:</td>
|
||||
<td><input id='einzeln' type="checkbox" name="einzelpruefung"></td>
|
||||
</tr>
|
||||
<tr style="visibility:hidden;">
|
||||
<td><?php echo $p->t('pruefung/pruefungIntervall'); ?>:</td>
|
||||
<td>
|
||||
<select id="pruefungsintervall">
|
||||
<option value="15">15</option>
|
||||
<option value="20">20</option>
|
||||
<option value="30">30</option>
|
||||
</select>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('global/lehrveranstaltung'); ?>:</td>
|
||||
<td>
|
||||
<div id="lvDropdowns">
|
||||
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
|
||||
<!--Daten werden per JavaScript geladen-->
|
||||
</select></br>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a name="termin"><?php echo $p->t('pruefung/pruefungTermin'); ?>:</a></td>
|
||||
<td>
|
||||
<div>
|
||||
<table width="500px" style="text-align: right;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $p->t('global/datum'); ?></th>
|
||||
<th><?php echo $p->t('global/von'); ?></th>
|
||||
<th><?php echo $p->t('global/bis'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMinTeilnehmer'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMaxTeilnehmer'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungSammelklausur'); ?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="prfTermin">
|
||||
<tr id="row1">
|
||||
<td>
|
||||
<input type="text" id="termin1" name="termin[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="time" id="termin1Beginn" placeholder="00:00" name="termin1Beginn[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="time" id="termin1Ende" placeholder="00:00" name="termin1Ende[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" id="termin1min" placeholder="0" min="0" name="termin1minTeilnehmer[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
|
||||
</td>
|
||||
<td>
|
||||
<input id="termin1sammelklausur" type="checkbox" name="sammelklausur">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<a href="#termin" onclick="terminHinzufuegen();"><?php echo $p->t('pruefung/pruefungTerminHinzufuegen'); ?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td><td><input id="buttonSave" type="button" value="<?php echo $p->t('global/speichern'); ?>" onclick='savePruefungstermin();'></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<div id="prfDetails">
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<div style="width: 75%;">
|
||||
<table class="tablesorter" id="prfTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $p->t('pruefung/pruefungTitel'); ?></th>
|
||||
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
||||
<th><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMethode'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungTyp'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungEinzelpruefung'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMitarbeiter'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/storniert'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><?php echo $p->t('global/lehrveranstaltung'); ?>:</td>
|
||||
<td>
|
||||
<div id="lvDropdowns">
|
||||
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
|
||||
<!--Daten werden per JavaScript geladen-->
|
||||
</select><br />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;"><a name="termin"><?php echo $p->t('pruefung/pruefungTermin'); ?>:</a></td>
|
||||
<td>
|
||||
<div>
|
||||
<?php
|
||||
if (defined('CIS_PRUEFUNGSTERMIN_FRIST'))
|
||||
{
|
||||
$terminfrist = CIS_PRUEFUNGSTERMIN_FRIST;
|
||||
}
|
||||
else
|
||||
{
|
||||
$terminfrist = 14;
|
||||
}
|
||||
echo $p->t('pruefung/TerminVorlaufzeit',array($terminfrist));
|
||||
?>
|
||||
<table width="500px" >
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $p->t('global/datum'); ?></th>
|
||||
<th><?php echo $p->t('global/von'); ?></th>
|
||||
<th><?php echo $p->t('global/bis'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMinTeilnehmer'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMaxTeilnehmer'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungSammelklausur'); ?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="prfTermin">
|
||||
<tr id="row1">
|
||||
<td>
|
||||
<input type="text" id="termin1" name="termin[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="time" id="termin1Beginn" placeholder="00:00" name="termin1Beginn[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="time" id="termin1Ende" placeholder="00:00" name="termin1Ende[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" id="termin1min" placeholder="0" min="0" name="termin1minTeilnehmer[]">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
|
||||
</td>
|
||||
<td>
|
||||
<input id="termin1sammelklausur" type="checkbox" name="sammelklausur">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<a href="#termin" onclick="terminHinzufuegen();"><?php echo $p->t('pruefung/pruefungTerminHinzufuegen'); ?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td><td><input id="buttonSave" type="button" value="<?php echo $p->t('global/speichern'); ?>" onclick='savePruefungstermin();'></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<div id="prfDetails">
|
||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||
<div style="width: 75%;">
|
||||
<table class="tablesorter" id="prfTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo $p->t('pruefung/pruefungTitel'); ?></th>
|
||||
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
||||
<th><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMethode'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungEinzelpruefung'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/pruefungMitarbeiter'); ?></th>
|
||||
<th><?php echo $p->t('pruefung/storniert'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id='message'></div>
|
||||
<div id="modalOverlay"></div>
|
||||
</body>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id='message'></div>
|
||||
<div id="modalOverlay"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1098,7 +1098,7 @@ function StudentProjektbetreuerLoadMitarbeiterDaten()
|
||||
// ****
|
||||
function StudentProjektbetreuerNeuePerson()
|
||||
{
|
||||
window.open('<?php echo APP_ROOT; ?>vilesci/personen/personen_anlegen.php','Person anlegen','height=600,width=900,left=300,top=300,hotkeys=0,resizable=yes,status=no,toolbar=no,location=no,menubar=no,dependent=yes');
|
||||
window.open('<?php echo APP_ROOT; ?>vilesci/personen/personen_anlegen.php','Person anlegen','height=700,width=900,left=300,top=300,hotkeys=0,resizable=yes,status=no,toolbar=no,location=no,menubar=no,dependent=yes');
|
||||
}
|
||||
|
||||
// ****
|
||||
|
||||
@@ -48,7 +48,7 @@ $this->phrasen['pruefung/zurLvAnmeldung'] = 'zur LV-Anmeldung';
|
||||
$this->phrasen['pruefung/zuerstPruefungAuswaehlen'] = 'Zuerst Prüfung auswählen.';
|
||||
$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'von Lektor hinzugefügt';
|
||||
$this->phrasen['pruefung/bestaetigen'] = 'Bestätigen';
|
||||
$this->phrasen['pruefung/anmerkungDesStudenten'] = 'Anmerkung des Studenten:</br>';
|
||||
$this->phrasen['pruefung/anmerkungDesStudenten'] = 'Anmerkung des Studenten:';
|
||||
$this->phrasen['pruefung/bestaetigt'] = 'bestätigt';
|
||||
$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von';
|
||||
$this->phrasen['pruefung/reihungSpeichern'] = 'Reihung speichern';
|
||||
@@ -151,6 +151,6 @@ Der neue Termin für die Prüfung ist am %2$s um %3$s Uhr.';
|
||||
$this->phrasen['pruefung/emailVerschiebungSubject'] = 'Verschiebung einer Prüfung';
|
||||
|
||||
$this->phrasen['pruefung/AnrechnungInStudiengang'] = 'Studiengang für Anrechnung';
|
||||
|
||||
$this->phrasen['pruefung/TerminVorlaufzeit'] = 'Termin muss mindestens %s Tage in der Zukunft liegen!';
|
||||
|
||||
?>
|
||||
|
||||
@@ -48,7 +48,7 @@ $this->phrasen['pruefung/zurLvAnmeldung'] = 'zur LV-Anmeldung';
|
||||
$this->phrasen['pruefung/zuerstPruefungAuswaehlen'] = 'Zuerst Prüfung auswählen.';
|
||||
$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'von Lektor hinzugefügt';
|
||||
$this->phrasen['pruefung/bestaetigen'] = 'Bestätigen';
|
||||
$this->phrasen['pruefung/anmerkungDesStudenten'] = 'Anmerkung des Studenten:</br>';
|
||||
$this->phrasen['pruefung/anmerkungDesStudenten'] = 'Anmerkung des Studenten:';
|
||||
$this->phrasen['pruefung/bestaetigt'] = 'bestätigt';
|
||||
$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von';
|
||||
$this->phrasen['pruefung/reihungSpeichern'] = 'Reihung speichern';
|
||||
@@ -148,7 +148,7 @@ $this->phrasen['pruefung/emailVerschiebung'] = 'Dear student,
|
||||
The exam for course %1$s has been resceduled.
|
||||
The exam will take place on %2$s at %3$s hrs.';
|
||||
$this->phrasen['pruefung/emailVerschiebungSubject'] = 'Exam changed';
|
||||
|
||||
$this->phrasen['pruefung/TerminVorlaufzeit'] = 'Termin muss mindestens %s Tage in der Zukunft liegen!';
|
||||
|
||||
|
||||
?>
|
||||
|
||||
+32
-32
@@ -1,30 +1,30 @@
|
||||
.filter-options-span {
|
||||
display: inline-block;
|
||||
width: 130px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.filter-name-title {
|
||||
font-family: inherit;
|
||||
font-size: 16px;
|
||||
/*font-weight: bold;*/
|
||||
line-height: 1.1;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.panel-title {
|
||||
font-weight: bold;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
.filters-hidden-panel {
|
||||
margin: 0 10px 10px 10px;
|
||||
}
|
||||
|
||||
.hidden-control {
|
||||
display: none !important;
|
||||
.filter-span-label {
|
||||
display: inline-block;
|
||||
width: 200px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.filter-select-fields-dnd-div {
|
||||
.drag-and-drop-fields-area {
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.filter-select-field-dnd-span {
|
||||
.drag-and-drop-fields-span {
|
||||
border: 1px solid black;
|
||||
border-radius: 7px;
|
||||
margin-left: 3px;
|
||||
@@ -33,14 +33,23 @@
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.filter-select-field-dnd-span:hover {
|
||||
.drag-and-drop-fields-span:hover {
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.filter-select-field-dnd-span a {
|
||||
.remove-selected-field {
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.remove-selected-field:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hidden-control {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.selection-before::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
@@ -61,47 +70,38 @@
|
||||
border-right: 2px solid #428bca;
|
||||
}
|
||||
|
||||
.select-filter-operation {
|
||||
.applied-filter-operation {
|
||||
display: inline;
|
||||
width: 130px;
|
||||
}
|
||||
|
||||
.select-filter-operation-value {
|
||||
.applied-filter-condition {
|
||||
display: inline;
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
.select-filter-option {
|
||||
.applied-filter-option {
|
||||
display: inline;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#addField, #customFilterDescription, #addFilter {
|
||||
.remove-applied-filter {
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.drop-down-fields, .drop-down-filters, .input-text-custom-filter {
|
||||
display: inline;
|
||||
width: 535px;
|
||||
}
|
||||
|
||||
#selectedFilters {
|
||||
#appliedFilters {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#applyFilter, #saveCustomFilterButton, .remove-selected-filter {
|
||||
#applyFilter, #saveCustomFilterButton, .remove-applied-filter {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#applyFilter, #saveCustomFilterButton {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.remove-selected-filter {
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.panel-title {
|
||||
font-weight: bold;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
.remove-field {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
}
|
||||
|
||||
/*arrow toggle for panels*/
|
||||
.panel-heading .accordion-toggle:before{
|
||||
.panel-heading .accordion-toggle.arrowcollapse:before{
|
||||
/* symbol for "opening" panels */
|
||||
font-family: 'Glyphicons Halflings'; /* essential for enabling glyphicon */
|
||||
content: "\e114"; /* adjust as needed, taken from bootstrap.css */
|
||||
@@ -32,7 +32,7 @@
|
||||
color: grey; /* adjust as needed */
|
||||
}
|
||||
|
||||
.panel-heading .accordion-toggle.collapsed:before{
|
||||
.panel-heading .accordion-toggle.collapsed.arrowcollapse:before{
|
||||
/* symbol for "collapsed" panels */
|
||||
content: "\e080"; /* adjust as needed, taken from bootstrap.css */
|
||||
}
|
||||
|
||||
+34
-20
@@ -124,6 +124,20 @@ var FHC_AjaxClient = {
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Retrives error message from response object
|
||||
*/
|
||||
getError: function(response) {
|
||||
var error = 'Generic error';
|
||||
|
||||
if (jQuery.type(response) == "object" && !jQuery.isEmptyObject(response) && response.hasOwnProperty(RESPONSE))
|
||||
{
|
||||
error = response.retval;
|
||||
}
|
||||
|
||||
return error;
|
||||
},
|
||||
|
||||
/**
|
||||
* Retrives code from response object
|
||||
*/
|
||||
@@ -163,6 +177,26 @@ var FHC_AjaxClient = {
|
||||
FHC_AjaxClient._hideVeil();
|
||||
},
|
||||
|
||||
/**
|
||||
* Retrives parameters from URL query string (HTTP GET parameters)
|
||||
*/
|
||||
getUrlParameter: function(sParam) {
|
||||
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
|
||||
sURLVariables = sPageURL.split('&'),
|
||||
sParameterName,
|
||||
i;
|
||||
|
||||
for (i = 0; i < sURLVariables.length; i++)
|
||||
{
|
||||
sParameterName = sURLVariables[i].split('=');
|
||||
|
||||
if (sParameterName[0] === sParam)
|
||||
{
|
||||
return sParameterName[1];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
@@ -278,26 +312,6 @@ var FHC_AjaxClient = {
|
||||
this._veilTimeout);
|
||||
},
|
||||
|
||||
/**
|
||||
* Retrives parameters from URL query string (HTTP GET parameters)
|
||||
*/
|
||||
getUrlParameter: function(sParam) {
|
||||
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
|
||||
sURLVariables = sPageURL.split('&'),
|
||||
sParameterName,
|
||||
i;
|
||||
|
||||
for (i = 0; i < sURLVariables.length; i++)
|
||||
{
|
||||
sParameterName = sURLVariables[i].split('=');
|
||||
|
||||
if (sParameterName[0] === sParam)
|
||||
{
|
||||
return sParameterName[1];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks call parameters, if they are present and are valid
|
||||
* It generates and returns all the parameters needed to perform an ajax remote call
|
||||
|
||||
+813
-676
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package
|
||||
* @author
|
||||
* @copyright Copyright (c) 2016 fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link https://fhcomplete.org
|
||||
* @since Version 1.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Definition and initialization of object FHC_PhrasesLib
|
||||
*/
|
||||
var FHC_PhrasesLib = {
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Returns the phrase-text in the user's language
|
||||
* @param {String} category : phrase-category
|
||||
* @param {String} phrase : phrase-name
|
||||
* @param {array} params : String-parameters to be set in variables in phrasentext
|
||||
* @returns {String} : phrase-text
|
||||
*/
|
||||
t: function (category, phrase, params = []) {
|
||||
|
||||
// Checks if FHC_JS_PHRASES_STORAGE_OBJECT is an array
|
||||
if ($.isArray(FHC_JS_PHRASES_STORAGE_OBJECT))
|
||||
{
|
||||
// loop through global JS PHRASES STORAGE OBJECT and search for phrase
|
||||
for (i in FHC_JS_PHRASES_STORAGE_OBJECT)
|
||||
{
|
||||
var phraseObj = FHC_JS_PHRASES_STORAGE_OBJECT[i]; // Single phrase object
|
||||
|
||||
// If the single phrase match the given parameters and is not an empty string
|
||||
if (phraseObj.category == category
|
||||
&& phraseObj.phrase == phrase
|
||||
&& phraseObj.text != null
|
||||
&& phraseObj.text.trim() != '')
|
||||
{
|
||||
// If params is null or not an array
|
||||
if (params == null || (params != null && !$.isArray(params)))
|
||||
{
|
||||
params = [];
|
||||
}
|
||||
|
||||
return FHC_PhrasesLib._replacePhraseVariable(phraseObj.text, params); // parsing
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return '<< PHRASE ' + phrase + ' >>';
|
||||
},
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Returns phrase with variables being replaced
|
||||
* @param {String} phrase : phrasen-text (with one ore more variables)
|
||||
* @param {array} replaceStringArr : String-array to be set in variables in phrasentext (order matters)
|
||||
* @returns {String} : replaced phrasen-text
|
||||
*/
|
||||
_replacePhraseVariable: function (phrase, replaceStringArr) {
|
||||
for (var i = 0; i < replaceStringArr.length; i++)
|
||||
{
|
||||
phrase = phrase.replace(/\{(.*?)\}/, replaceStringArr[i]);
|
||||
}
|
||||
return phrase;
|
||||
}
|
||||
};
|
||||
@@ -6,9 +6,8 @@ const CALLED_PATH = FHC_JS_DATA_STORAGE_OBJECT.called_path;
|
||||
/**
|
||||
* javascript file for infocenterDetails page
|
||||
*/
|
||||
$(document).ready(
|
||||
function ()
|
||||
{
|
||||
$(document).ready(function ()
|
||||
{
|
||||
//initialise table sorter
|
||||
Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
|
||||
Tablesort.addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]);
|
||||
@@ -133,7 +132,7 @@ $(document).ready(
|
||||
var notizTitle = $(this).find("td:eq(1)").text();
|
||||
var notizContent = this.title;
|
||||
|
||||
$("#notizform label:first").text("Notiz ändern").css("color", "red");
|
||||
$("#notizform label:first").text(FHC_PhrasesLib.t('infocenter', 'notizAendern')).css("color", "red");
|
||||
$("#notizform :input[type='reset']").css("display", "inline-block");
|
||||
|
||||
$("#notizform :input[name='hiddenNotizId']").val(notizId);
|
||||
@@ -209,8 +208,7 @@ var InfocenterDetails = {
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
CALLED_PATH + "/getLastPrestudentWithZgvJson/" + encodeURIComponent(personid),
|
||||
{
|
||||
},
|
||||
null,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
@@ -243,7 +241,7 @@ var InfocenterDetails = {
|
||||
saveZgv: function(data)
|
||||
{
|
||||
var zgvError = function(){
|
||||
$("#zgvSpeichern_" + prestudentid).before("<span id='zgvSpeichernNotice' class='text-danger'>Fehler beim Speichern der ZGV!</span> ");
|
||||
$("#zgvSpeichern_" + prestudentid).before("<span id='zgvSpeichernNotice' class='text-danger'>" + FHC_PhrasesLib.t('ui', 'fehlerBeimSpeichern') + "</span> ");
|
||||
};
|
||||
|
||||
var prestudentid = data.prestudentid;
|
||||
@@ -258,7 +256,7 @@ var InfocenterDetails = {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
InfocenterDetails._refreshLog();
|
||||
$("#zgvSpeichern_" + prestudentid).before("<span id='zgvSpeichernNotice' class='text-success'>ZGV erfolgreich gespeichert!</span> ");
|
||||
$("#zgvSpeichern_" + prestudentid).before("<span id='zgvSpeichernNotice' class='text-success'>" + FHC_PhrasesLib.t('ui', 'gespeichert') + "</span> ");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -319,13 +317,11 @@ var InfocenterDetails = {
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
CALLED_PATH + "/getStudienjahrEnd",
|
||||
{
|
||||
},
|
||||
null,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (data)
|
||||
{
|
||||
console.log("studienjahr end executed");
|
||||
var engdate = $.datepicker.parseDate("yy-mm-dd", data);
|
||||
var gerdate = $.datepicker.formatDate("dd.mm.yy", engdate);
|
||||
$("#parkdate").val(gerdate);
|
||||
@@ -339,8 +335,7 @@ var InfocenterDetails = {
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
CALLED_PATH + "/getParkedDate/"+encodeURIComponent(personid),
|
||||
{
|
||||
},
|
||||
null,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
InfocenterDetails._refreshParking(data);
|
||||
@@ -392,11 +387,11 @@ var InfocenterDetails = {
|
||||
if (data.length > 0)
|
||||
InfocenterDetails.getParkedDate(personid);
|
||||
else
|
||||
$("#unparkmsg").removeClass().addClass("text-warning").text(" Nichts zum Ausparken.");
|
||||
$("#unparkmsg").removeClass().addClass("text-warning").text(FHC_PhrasesLib.t('infocenter', 'nichtsZumAusparken'));
|
||||
}
|
||||
},
|
||||
errorCallback: function(){
|
||||
$("#unparkmsg").removeClass().addClass("text-danger").text(" Fehler beim Ausparken!");
|
||||
$("#unparkmsg").removeClass().addClass("text-danger").text(FHC_PhrasesLib.t('infocenter', 'fehlerBeimAusparken'));
|
||||
},
|
||||
veilTimeout: 0
|
||||
}
|
||||
@@ -440,8 +435,8 @@ var InfocenterDetails = {
|
||||
{
|
||||
$("#parking").html(
|
||||
'<div class="form-group form-inline">'+
|
||||
'<button class="btn btn-default" id="parklink" type="button""><i class="fa fa-clock-o"></i> BewerberIn parken</button> '+
|
||||
'bis '+
|
||||
'<button class="btn btn-default" id="parklink" type="button""><i class="fa fa-clock-o"></i> ' + FHC_PhrasesLib.t('infocenter', 'bewerberParken') + '</button> '+
|
||||
FHC_PhrasesLib.t('global', 'bis') + ' '+
|
||||
'<input id="parkdate" type="text" class="form-control" placeholder="Parkdatum" style="height: 25px; width: 99px"> '+
|
||||
'<span class="text-danger" id="parkmsg"></span>'+
|
||||
'</div>');
|
||||
@@ -467,8 +462,8 @@ var InfocenterDetails = {
|
||||
var parkdate = $.datepicker.parseDate("yy-mm-dd", date);
|
||||
var gerparkdate = $.datepicker.formatDate("dd.mm.yy", parkdate);
|
||||
$("#parking").html(
|
||||
'BewerberIn geparkt bis '+gerparkdate+' '+
|
||||
'<button class="btn btn-default" id="unparklink"><i class="fa fa-sign-out"></i> BewerberIn ausparken</button> '+
|
||||
FHC_PhrasesLib.t('infocenter', 'bewerberGeparktBis')+' '+gerparkdate+' '+
|
||||
'<button class="btn btn-default" id="unparklink"><i class="fa fa-sign-out"></i> '+FHC_PhrasesLib.t('infocenter', 'bewerberAusparken')+'</button> '+
|
||||
'<span id="unparkmsg"></span>'
|
||||
);
|
||||
|
||||
@@ -491,11 +486,11 @@ var InfocenterDetails = {
|
||||
{
|
||||
$("#notizmsg").empty();
|
||||
$("#notizform :input[name='hiddenNotizId']").val("");
|
||||
$("#notizform label:first").text("Notiz hinzufügen").css("color", "black");
|
||||
$("#notizform label:first").text(FHC_PhrasesLib.t('infocenter', 'notizHinzufuegen')).css("color", "black");
|
||||
$("#notizform :input[type='reset']").css("display", "none");
|
||||
},
|
||||
_errorSaveNotiz: function()
|
||||
{
|
||||
$("#notizmsg").text("Fehler beim Speichern der Notiz! ");
|
||||
$("#notizmsg").text(FHC_PhrasesLib.t('ui', 'fehlerBeimSpeichern'));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,111 +1,24 @@
|
||||
/**
|
||||
* Javascript file for infocenter overview page
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
|
||||
appendTableActionsHtml();
|
||||
// setTableActions();
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* adds person table additional actions html (above and beneath it)
|
||||
*/
|
||||
function appendTableActionsHtml()
|
||||
* Refreshes the side menu
|
||||
* NOTE: it is called from the FilterWidget therefore must be a global function
|
||||
*/
|
||||
function refreshSideMenu()
|
||||
{
|
||||
var currurl = window.location.href;
|
||||
var url = currurl.replace(/infocenter\/InfoCenter(.*)/, "Messages/write");
|
||||
|
||||
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
|
||||
$("#datasetActionsTop").before(formHtml);
|
||||
|
||||
var selectAllHtml =
|
||||
'<a href="javascript:void(0)" class="selectAll">' +
|
||||
'<i class="fa fa-check"></i> Alle</a> ' +
|
||||
'<a href="javascript:void(0)" class="unselectAll">' +
|
||||
'<i class="fa fa-times"></i> Keinen</a> ';
|
||||
|
||||
var actionHtml = 'Mit Ausgewählten: ' +
|
||||
'<a href="javascript:void(0)" class="sendMsgsLink">' +
|
||||
'<i class="fa fa-envelope"></i> Nachricht senden</a>';
|
||||
|
||||
var legendHtml = '<i class="fa fa-circle text-danger"></i> Gesperrt ' +
|
||||
'<i class="fa fa-circle text-info"></i> Geparkt';
|
||||
|
||||
var personcount = 0;
|
||||
|
||||
$.ajax({
|
||||
url: window.location.pathname.replace('infocenter/InfoCenter', 'Filters/rowNumber'),
|
||||
method: "GET",
|
||||
data: {
|
||||
fhc_controller_id: getUrlParameter("fhc_controller_id"),
|
||||
filter_page: FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method
|
||||
},
|
||||
dataType: "json"
|
||||
})
|
||||
.done(function(data, textStatus, jqXHR) {
|
||||
|
||||
if (data != null)
|
||||
//
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'system/infocenter/InfoCenter/setNavigationMenuArrayJson',
|
||||
null,
|
||||
{
|
||||
if (data.rowNumber != null)
|
||||
{
|
||||
personcount = data.rowNumber;
|
||||
|
||||
var persontext = personcount === 1 ? "Person" : "Personen";
|
||||
var countHtml = personcount + " " + persontext;
|
||||
|
||||
$("#datasetActionsTop, #datasetActionsBottom").append(
|
||||
"<div class='row'>"+
|
||||
"<div class='col-xs-6'>" + selectAllHtml + " " + actionHtml + "</div>"+
|
||||
"<div class='col-xs-4'>" + legendHtml + "</div>"+
|
||||
"<div class='col-xs-2 text-right'>" + countHtml + "</div>"+
|
||||
"<div class='clearfix'></div>"+
|
||||
"</div>"
|
||||
);
|
||||
$("#datasetActionsBottom").append("<br><br>");
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
FHC_NavigationWidget.renderSideMenu();
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
alert(textStatus);
|
||||
}
|
||||
|
||||
setTableActions();
|
||||
}
|
||||
|
||||
}).fail(function(jqXHR, textStatus, errorThrown) {
|
||||
alert(textStatus);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* sets functionality for the actions above and beneath the person table
|
||||
*/
|
||||
function setTableActions()
|
||||
{
|
||||
$(".sendMsgsLink").click(function() {
|
||||
var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
|
||||
if(idsel.length > 0)
|
||||
{
|
||||
var form = $("#sendMsgsForm");
|
||||
form.find("input[type=hidden]").remove();
|
||||
for (var i = 0; i < idsel.length; i++)
|
||||
{
|
||||
var id = $(idsel[i]).val();
|
||||
form.append("<input type='hidden' name='person_id[]' value='" + id + "'>");
|
||||
}
|
||||
form.submit();
|
||||
}
|
||||
});
|
||||
|
||||
$(".selectAll").click(function()
|
||||
{
|
||||
//select only trs if not filtered by tablesorter
|
||||
var trs = $("#filterTableDataset tbody tr").not(".filtered");
|
||||
trs.find("input[name=PersonId\\[\\]]").prop("checked", true);
|
||||
}
|
||||
);
|
||||
|
||||
$(".unselectAll").click(function()
|
||||
{
|
||||
var trs = $("#filterTableDataset tbody tr").not(".filtered");
|
||||
trs.find("input[name=PersonId\\[\\]]").prop("checked", false);
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -113,41 +26,115 @@ function setTableActions()
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function getUrlParameter(sParam)
|
||||
{
|
||||
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
|
||||
sURLVariables = sPageURL.split('&'),
|
||||
sParameterName,
|
||||
i;
|
||||
var InfocenterPersonDataset = {
|
||||
|
||||
for (i = 0; i < sURLVariables.length; i++)
|
||||
/**
|
||||
* adds person table additional actions html (above and beneath it)
|
||||
/*
|
||||
*/
|
||||
appendTableActionsHtml: function()
|
||||
{
|
||||
sParameterName = sURLVariables[i].split('=');
|
||||
var currurl = window.location.href;
|
||||
var url = currurl.replace(/infocenter\/InfoCenter(.*)/, "Messages/write");
|
||||
|
||||
if (sParameterName[0] === sParam)
|
||||
{
|
||||
return sParameterName[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
|
||||
$("#datasetActionsTop").before(formHtml);
|
||||
|
||||
var selectAllHtml =
|
||||
'<a href="javascript:void(0)" class="selectAll">' +
|
||||
'<i class="fa fa-check"></i> Alle</a> ' +
|
||||
'<a href="javascript:void(0)" class="unselectAll">' +
|
||||
'<i class="fa fa-times"></i> Keinen</a> ';
|
||||
|
||||
var actionHtml = 'Mit Ausgewählten: ' +
|
||||
'<a href="javascript:void(0)" class="sendMsgsLink">' +
|
||||
'<i class="fa fa-envelope"></i> Nachricht senden</a>';
|
||||
|
||||
var legendHtml = '<i class="fa fa-circle text-danger"></i> Gesperrt ' +
|
||||
'<i class="fa fa-circle text-info"></i> Geparkt';
|
||||
|
||||
var personcount = 0;
|
||||
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'system/Filters/rowNumber',
|
||||
{
|
||||
filter_page: FHC_FilterWidget.getFilterPage()
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
personcount = FHC_AjaxClient.getData(data);
|
||||
|
||||
if (personcount > 0)
|
||||
{
|
||||
var persontext = personcount === 1 ? "Person" : "Personen";
|
||||
var countHtml = personcount + " " + persontext;
|
||||
|
||||
$("#datasetActionsTop, #datasetActionsBottom").append(
|
||||
"<div class='row'>"+
|
||||
"<div class='col-xs-6'>" + selectAllHtml + " " + actionHtml + "</div>"+
|
||||
"<div class='col-xs-4'>" + legendHtml + "</div>"+
|
||||
"<div class='col-xs-2 text-right'>" + countHtml + "</div>"+
|
||||
"<div class='clearfix'></div>"+
|
||||
"</div>"
|
||||
);
|
||||
$("#datasetActionsBottom").append("<br><br>");
|
||||
|
||||
InfocenterPersonDataset.setTableActions();
|
||||
}
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
alert(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* sets functionality for the actions above and beneath the person table
|
||||
*/
|
||||
setTableActions: function()
|
||||
{
|
||||
$(".sendMsgsLink").click(function() {
|
||||
var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
|
||||
if(idsel.length > 0)
|
||||
{
|
||||
var form = $("#sendMsgsForm");
|
||||
form.find("input[type=hidden]").remove();
|
||||
for (var i = 0; i < idsel.length; i++)
|
||||
{
|
||||
var id = $(idsel[i]).val();
|
||||
form.append("<input type='hidden' name='person_id[]' value='" + id + "'>");
|
||||
}
|
||||
form.submit();
|
||||
}
|
||||
});
|
||||
|
||||
$(".selectAll").click(function()
|
||||
{
|
||||
//select only trs if not filtered by tablesorter
|
||||
var trs = $("#filterTableDataset tbody tr").not(".filtered");
|
||||
trs.find("input[name=PersonId\\[\\]]").prop("checked", true);
|
||||
}
|
||||
);
|
||||
|
||||
$(".unselectAll").click(function()
|
||||
{
|
||||
var trs = $("#filterTableDataset tbody tr").not(".filtered");
|
||||
trs.find("input[name=PersonId\\[\\]]").prop("checked", false);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Refreshes the side menu
|
||||
* When JQuery is up
|
||||
*/
|
||||
function refreshSideMenu()
|
||||
{
|
||||
$.ajax({
|
||||
url: window.location.pathname+"/setNavigationMenuArray",
|
||||
method: "GET",
|
||||
data: {
|
||||
fhc_controller_id: getUrlParameter("fhc_controller_id")
|
||||
}
|
||||
})
|
||||
.done(function(data, textStatus, jqXHR) {
|
||||
$(document).ready(function() {
|
||||
|
||||
FHC_NavigationWidget.renderSideMenu();
|
||||
InfocenterPersonDataset.appendTableActionsHtml();
|
||||
|
||||
}).fail(function(jqXHR, textStatus, errorThrown) {
|
||||
alert(textStatus);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -61,7 +61,7 @@ var Tablesort = {
|
||||
size: size,
|
||||
cssDisabled: 'disabled',
|
||||
savePages: false,
|
||||
output: '{startRow} – {endRow} / {totalRows} Zeilen'
|
||||
output: '{startRow} – {endRow} / {totalRows} ' + FHC_PhrasesLib.t('global', 'zeilen')
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
+357
-27
@@ -26,7 +26,7 @@
|
||||
$new = false;
|
||||
|
||||
|
||||
$phrases = array(
|
||||
$phrases = array(
|
||||
//******************* CORE/global
|
||||
array(
|
||||
'app' => 'core',
|
||||
@@ -48,6 +48,26 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'global',
|
||||
'phrase' => 'zeilen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Zeilen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'lines',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'global',
|
||||
@@ -909,6 +929,48 @@ $phrases = array(
|
||||
)
|
||||
),
|
||||
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'global',
|
||||
'phrase' => 'mailAnXversandt',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Mail an {email} versandt.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Mail was sent to {email}.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'global',
|
||||
'phrase' => 'beschreibung',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Beschreibung',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'description',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
|
||||
//******************************* CORE/ui
|
||||
array(
|
||||
@@ -1231,6 +1293,46 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'ui',
|
||||
'phrase' => 'fehlerBeimSpeichern',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Fehler beim Speichern',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Error on Saving',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'ui',
|
||||
'phrase' => 'gespeichert',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Gespeichert',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Saved',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
|
||||
//*************************** CORE/filter
|
||||
@@ -1255,6 +1357,70 @@ $phrases = array(
|
||||
)
|
||||
),
|
||||
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'filter',
|
||||
'phrase' => 'filterHinzufuegen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Filter hinzufügen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'add filter',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'filter',
|
||||
'phrase' => 'feldHinzufuegen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Feld hinzufügen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'add field',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'filter',
|
||||
'phrase' => 'filterBeschreibung',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Filter Beschreibung',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'filter description',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
|
||||
|
||||
|
||||
//**************************** CORE/person
|
||||
@@ -2184,6 +2350,46 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'zugangsvoraussetzungen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Zugangsvoraussetzungen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => '',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'keineZugangsvoraussetzungenTxt',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Keine Zugangsvoraussetzungen für den Studiengang definiert',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => '',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
@@ -2273,8 +2479,8 @@ $phrases = array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Bei Absage von InteressentInnen erhalten diese den Status "Abgewiesener" und deren '
|
||||
. 'ZGV-Daten können im Infocenter nicht mehr bearbeitet oder freigegeben werden. '
|
||||
. 'Alle nicht gespeicherten ZGV-Daten gehen verloren. Fortfahren?',
|
||||
.'ZGV-Daten können im Infocenter nicht mehr bearbeitet oder freigegeben werden. '
|
||||
.'Alle nicht gespeicherten ZGV-Daten gehen verloren. Fortfahren?',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
@@ -2380,7 +2586,7 @@ $phrases = array(
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => '',
|
||||
'text' => 'Approve applicant',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
@@ -2483,7 +2689,7 @@ $phrases = array(
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'change note',
|
||||
'text' => 'Change note',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
@@ -2568,7 +2774,128 @@ $phrases = array(
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'bewerberParken',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'BewerberIn parken',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Park applicant',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'bewerberAusparken',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'BewerberIn ausparken',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Unpark applicant',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'nichtsZumAusparken',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Nichts zum ausparken',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => '',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'fehlerBeimAusparken',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Fehler beim Ausparken',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => '',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'fehlerBeimParken',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Fehler beim Parken',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => '',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'bewerberGeparktBis',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'BewerberIn geparkt bis',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Applicant parked until',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
|
||||
@@ -2581,9 +2908,9 @@ foreach ($phrases as $phrase)
|
||||
$qry = "SELECT phrase_id
|
||||
FROM system.tbl_phrase
|
||||
WHERE
|
||||
app=" . $db->db_add_param($phrase['app']) . " AND
|
||||
category=" . $db->db_add_param($phrase['category']) . " AND
|
||||
phrase=" . $db->db_add_param($phrase['phrase']);
|
||||
app=". $db->db_add_param($phrase['app']). " AND
|
||||
category=". $db->db_add_param($phrase['category']). " AND
|
||||
phrase=". $db->db_add_param($phrase['phrase']);
|
||||
|
||||
//*** CHECK PHRASE
|
||||
if ($result = $db->db_query($qry))
|
||||
@@ -2600,11 +2927,11 @@ foreach ($phrases as $phrase)
|
||||
insertvon,
|
||||
category)
|
||||
VALUES(".
|
||||
$db->db_add_param($phrase['app']) . ','.
|
||||
$db->db_add_param($phrase['phrase']) . ','.
|
||||
$db->db_add_param($phrase['app']). ','.
|
||||
$db->db_add_param($phrase['phrase']). ','.
|
||||
' now(),'.
|
||||
$db->db_add_param($phrase['insertvon']) . ','.
|
||||
$db->db_add_param($phrase['category']) . ');';
|
||||
$db->db_add_param($phrase['insertvon']). ','.
|
||||
$db->db_add_param($phrase['category']). ');';
|
||||
|
||||
if ($db->db_query($qry_insert))
|
||||
{
|
||||
@@ -2618,11 +2945,11 @@ foreach ($phrases as $phrase)
|
||||
$phrase_id = $obj->id;
|
||||
}
|
||||
}
|
||||
echo 'Kategorie/Phrase: <b>' . $phrase['category'] . '/' . $phrase['phrase'] . ' hinzugefügt</b><br>';
|
||||
echo 'Kategorie/Phrase: <b>'. $phrase['category']. '/'. $phrase['phrase']. ' hinzugefügt</b><br>';
|
||||
}
|
||||
else
|
||||
echo '<span class="error">Fehler: ' . $phrase['category'] . '/' . $phrase['phrase'] . ' hinzufügen nicht möglich</span><br>';
|
||||
|
||||
echo '<span class="error">Fehler: '. $phrase['category']. '/'.
|
||||
$phrase['phrase']. ' hinzufügen nicht möglich</span><br>';
|
||||
}
|
||||
//phrase existing -> get phrase_id
|
||||
else
|
||||
@@ -2631,23 +2958,23 @@ foreach ($phrases as $phrase)
|
||||
{
|
||||
$phrase_id = $obj->phrase_id;
|
||||
}
|
||||
echo 'Kategorie/Phrase: ' . $phrase['category'] . '/' . $phrase['phrase'] . ' vorhanden.<br>';
|
||||
echo 'Kategorie/Phrase: '. $phrase['category']. '/'. $phrase['phrase']. ' vorhanden.<br>';
|
||||
}
|
||||
|
||||
|
||||
//*** CHECK PHRASENTEXT
|
||||
//loop through languages
|
||||
foreach ($phrase['phrases'] as $phrase_phrases)
|
||||
{
|
||||
{
|
||||
$language = $phrase_phrases['sprache'];
|
||||
|
||||
//query phrasentext in certain language
|
||||
$qry_language =
|
||||
$qry_language =
|
||||
"SELECT *
|
||||
FROM system.tbl_phrasentext
|
||||
WHERE
|
||||
phrase_id=" . $phrase_id . " AND
|
||||
sprache='" . $language . "'";
|
||||
phrase_id=". $phrase_id. " AND
|
||||
sprache='". $language. "'";
|
||||
|
||||
|
||||
if ($result_language = $db->db_query($qry_language))
|
||||
@@ -2665,22 +2992,25 @@ foreach ($phrases as $phrase)
|
||||
insertamum,
|
||||
insertvon)
|
||||
VALUES(".
|
||||
$db->db_add_param($phrase_id, FHC_INTEGER) . ','.
|
||||
$db->db_add_param($phrase_phrases['sprache']) . ','.
|
||||
$db->db_add_param($phrase_id, FHC_INTEGER). ','.
|
||||
$db->db_add_param($phrase_phrases['sprache']). ','.
|
||||
' NULL,'.
|
||||
' NULL,'.
|
||||
$db->db_add_param($phrase_phrases['text']) . ','.
|
||||
$db->db_add_param($phrase_phrases['description']) . ','.
|
||||
$db->db_add_param($phrase_phrases['text']). ','.
|
||||
$db->db_add_param($phrase_phrases['description']). ','.
|
||||
' now(),'.
|
||||
$db->db_add_param($phrase_phrases['insertvon']) . ');';
|
||||
$db->db_add_param($phrase_phrases['insertvon']). ');';
|
||||
|
||||
if ($db->db_query($qry_insert))
|
||||
{
|
||||
echo '-- Phrasentext ' . strtoupper(substr($phrase_phrases['sprache'], 0, 3)) . ': <b>' . $phrase_phrases['text'] . ' hinzugefügt</b><br>';
|
||||
echo '-- Phrasentext '. strtoupper(substr($phrase_phrases['sprache'], 0, 3)). ': <b>'.
|
||||
$phrase_phrases['text']. ' hinzugefügt</b><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">Fehler: Phrasentext ' . strtoupper(substr($phrase_phrases['sprache'], 0, 3)) . ': '. $phrase_phrases['text'] . ' hinzufügen nicht möglich</span><br>';
|
||||
echo '<span class="error">Fehler: Phrasentext '.
|
||||
strtoupper(substr($phrase_phrases['sprache'], 0, 3)). ': '. $phrase_phrases['text'].
|
||||
' hinzufügen nicht möglich</span><br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
@@ -35,68 +35,64 @@ $user=get_uid();
|
||||
$datum_obj = new datum();
|
||||
loadVariables($user);
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
?><!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<script language="Javascript">
|
||||
function disablefields(obj)
|
||||
{
|
||||
if(obj.value==0)
|
||||
val=false;
|
||||
else
|
||||
val=true;
|
||||
|
||||
document.getElementById('anrede').disabled=val;
|
||||
document.getElementById('titel').disabled=val;
|
||||
document.getElementById('titelpost').disabled=val;
|
||||
document.getElementById('nachname').disabled=val;
|
||||
document.getElementById('vorname').disabled=val;
|
||||
document.getElementById('geschlecht').disabled=val;
|
||||
document.getElementById('geburtsdatum').disabled=val;
|
||||
document.getElementById('svnr').disabled=val;
|
||||
document.getElementById('ersatzkennzeichen').disabled=val;
|
||||
//document.getElementById('adresse').disabled=val;
|
||||
//document.getElementById('plz').disabled=val;
|
||||
//document.getElementById('ort').disabled=val;
|
||||
if(val)
|
||||
<meta charset="UTF-8">
|
||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||
<script language="Javascript">
|
||||
function disablefields(obj)
|
||||
{
|
||||
document.getElementById('ueb1').style.display = 'block';
|
||||
document.getElementById('ueb2').style.display = 'block';
|
||||
document.getElementById('ueb3').style.display = 'block';
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById('ueb1').style.display = 'none';
|
||||
document.getElementById('ueb2').style.display = 'none';
|
||||
document.getElementById('ueb3').style.display = 'none';
|
||||
}
|
||||
}
|
||||
if (obj.value==0)
|
||||
val=false;
|
||||
else
|
||||
val=true;
|
||||
|
||||
function GeburtsdatumEintragen()
|
||||
{
|
||||
svnr = document.getElementById('svnr').value;
|
||||
gebdat = document.getElementById('geburtsdatum');
|
||||
|
||||
if(svnr.length==10 && gebdat.value=='')
|
||||
{
|
||||
var tag = svnr.substr(4,2);
|
||||
var monat = svnr.substr(6,2);
|
||||
var jahr = svnr.substr(8,2);
|
||||
|
||||
gebdat.value='19'+jahr+'-'+monat+'-'+tag;
|
||||
document.getElementById('anrede').disabled=val;
|
||||
document.getElementById('titel').disabled=val;
|
||||
document.getElementById('titelpost').disabled=val;
|
||||
document.getElementById('nachname').disabled=val;
|
||||
document.getElementById('vorname').disabled=val;
|
||||
document.getElementById('geschlecht').disabled=val;
|
||||
document.getElementById('geburtsdatum').disabled=val;
|
||||
document.getElementById('svnr').disabled=val;
|
||||
document.getElementById('ersatzkennzeichen').disabled=val;
|
||||
if (val)
|
||||
{
|
||||
document.getElementById('ueb1').style.display = 'block';
|
||||
document.getElementById('ueb2').style.display = 'block';
|
||||
document.getElementById('ueb3').style.display = 'block';
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById('ueb1').style.display = 'none';
|
||||
document.getElementById('ueb2').style.display = 'none';
|
||||
document.getElementById('ueb3').style.display = 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function disablefields2(val)
|
||||
{
|
||||
document.getElementById('adresse').disabled=val;
|
||||
document.getElementById('plz').disabled=val;
|
||||
document.getElementById('ort').disabled=val;
|
||||
}
|
||||
</script>
|
||||
function GeburtsdatumEintragen()
|
||||
{
|
||||
svnr = document.getElementById('svnr').value;
|
||||
gebdat = document.getElementById('geburtsdatum');
|
||||
|
||||
if (svnr.length==10 && gebdat.value=='')
|
||||
{
|
||||
var tag = svnr.substr(4,2);
|
||||
var monat = svnr.substr(6,2);
|
||||
var jahr = svnr.substr(8,2);
|
||||
|
||||
gebdat.value='19'+jahr+'-'+monat+'-'+tag;
|
||||
}
|
||||
}
|
||||
|
||||
function disablefields2(val)
|
||||
{
|
||||
document.getElementById('adresse').disabled=val;
|
||||
document.getElementById('plz').disabled=val;
|
||||
document.getElementById('ort').disabled=val;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Person Anlegen</h1>
|
||||
@@ -105,7 +101,10 @@ function disablefields2(val)
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('basis/firma'))
|
||||
if (!$rechte->isBerechtigt('admin')
|
||||
&& !$rechte->isBerechtigt('mitarbeiter')
|
||||
&& !$rechte->isBerechtigt('assistenz')
|
||||
&& !$rechte->isBerechtigt('basis/firma', null, 'sui'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
$where = '';
|
||||
@@ -132,7 +131,7 @@ $ueberschreiben = (isset($_REQUEST['ueberschreiben'])?$_REQUEST['ueberschreiben'
|
||||
$geburtsdatum_error=false;
|
||||
|
||||
// *** Speichern der Daten ***
|
||||
if(isset($_POST['save']))
|
||||
if (isset($_POST['save']))
|
||||
{
|
||||
//echo "Saving Data: Geburtsdatum: $geburtsdatum | Titel: $titel | Nachname: $nachname | Vorname: $vorname |
|
||||
// Geschlecht: $geschlecht | Adresse: $adresse | Plz: $plz | Ort: $ort |
|
||||
@@ -142,7 +141,10 @@ if(isset($_POST['save']))
|
||||
$db->db_query('BEGIN');
|
||||
//Wenn die person_id=0 dann wird eine neue Person angelegt
|
||||
//Sonst nicht
|
||||
if($person_id=='0')
|
||||
if ($person_id == '')
|
||||
die('Es ist ein Fehler aufgetreten');
|
||||
|
||||
if ($person_id=='0')
|
||||
{
|
||||
$person->new = true;
|
||||
$person->anrede = $anrede;
|
||||
@@ -157,9 +159,9 @@ if(isset($_POST['save']))
|
||||
$person->aktiv = true;
|
||||
$person->insertamum = date('Y-m-d H:i:s');
|
||||
$person->insertvon = $user;
|
||||
$person->zugangscode= uniqid();
|
||||
|
||||
if($person->save())
|
||||
$person->zugangscode= uniqid();
|
||||
|
||||
if ($person->save())
|
||||
{
|
||||
$error=false;
|
||||
}
|
||||
@@ -169,16 +171,16 @@ if(isset($_POST['save']))
|
||||
$errormsg = "Person konnte nicht gespeichert werden: $person->errormsg";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Adresse anlegen
|
||||
if($ueberschreiben!='' && !($plz=='' && $adresse=='' && $ort==''))
|
||||
if ($ueberschreiben!='' && !($plz=='' && $adresse=='' && $ort==''))
|
||||
{
|
||||
if($person_id=='0')
|
||||
if ($person_id=='0')
|
||||
$ueberschreiben='Nein';
|
||||
|
||||
$adr = new adresse();
|
||||
//Adresse neu anlegen
|
||||
if($ueberschreiben=='Nein')
|
||||
if ($ueberschreiben=='Nein')
|
||||
{
|
||||
$adr->new = true;
|
||||
$adr->insertamum = date('Y-m-d H:i:s');
|
||||
@@ -190,10 +192,10 @@ if(isset($_POST['save']))
|
||||
|
||||
//Adressen der Peron laden
|
||||
$adr->load_pers($person->person_id);
|
||||
if(isset($adr->result[0]))
|
||||
if (isset($adr->result[0]))
|
||||
{
|
||||
//Erste Adresse laden
|
||||
if($adr->load($adr->result[0]->adresse_id))
|
||||
if ($adr->load($adr->result[0]->adresse_id))
|
||||
{
|
||||
$adr->new = false;
|
||||
$adr->updateamum = date('Y-m-d H:i:s');
|
||||
@@ -214,7 +216,7 @@ if(isset($_POST['save']))
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
if (!$error)
|
||||
{
|
||||
//Adressdaten zuweisen und speichern
|
||||
$adr->person_id = $person->person_id;
|
||||
@@ -224,7 +226,7 @@ if(isset($_POST['save']))
|
||||
$adr->typ = 'h';
|
||||
$adr->heimatadresse = true;
|
||||
$adr->zustelladresse = true;
|
||||
if(!$adr->save())
|
||||
if (!$adr->save())
|
||||
{
|
||||
$error = true;
|
||||
$errormsg = $adr->errormsg;
|
||||
@@ -233,10 +235,10 @@ if(isset($_POST['save']))
|
||||
}
|
||||
|
||||
//Kontaktdaten anlegen
|
||||
if(!$error)
|
||||
if (!$error)
|
||||
{
|
||||
//EMail Adresse speichern
|
||||
if($email!='')
|
||||
if ($email!='')
|
||||
{
|
||||
$kontakt = new kontakt();
|
||||
$kontakt->person_id = $person->person_id;
|
||||
@@ -247,14 +249,14 @@ if(isset($_POST['save']))
|
||||
$kontakt->insertvon = $user;
|
||||
$kontakt->new = true;
|
||||
|
||||
if(!$kontakt->save())
|
||||
if (!$kontakt->save())
|
||||
{
|
||||
$error = true;
|
||||
$errormsg = 'Fehler beim Speichern der Email Adresse';
|
||||
}
|
||||
}
|
||||
//Telefonnummer speichern
|
||||
if($telefon!='')
|
||||
if ($telefon!='')
|
||||
{
|
||||
$kontakt = new kontakt();
|
||||
$kontakt->person_id = $person->person_id;
|
||||
@@ -265,14 +267,14 @@ if(isset($_POST['save']))
|
||||
$kontakt->insertvon = $user;
|
||||
$kontakt->new = true;
|
||||
|
||||
if(!$kontakt->save())
|
||||
if (!$kontakt->save())
|
||||
{
|
||||
$error = true;
|
||||
$errormsg = 'Fehler beim Speichern der Telefonnummer';
|
||||
}
|
||||
}
|
||||
//Mobiltelefonnummer speichern
|
||||
if($mobil!='')
|
||||
if ($mobil!='')
|
||||
{
|
||||
$kontakt = new kontakt();
|
||||
$kontakt->person_id = $person->person_id;
|
||||
@@ -283,7 +285,7 @@ if(isset($_POST['save']))
|
||||
$kontakt->insertvon = $user;
|
||||
$kontakt->new = true;
|
||||
|
||||
if(!$kontakt->save())
|
||||
if (!$kontakt->save())
|
||||
{
|
||||
$error = true;
|
||||
$errormsg = 'Fehler beim Speichern der Mobiltelefonnummer';
|
||||
@@ -291,7 +293,7 @@ if(isset($_POST['save']))
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
if (!$error)
|
||||
{
|
||||
$db->db_query('COMMIT');
|
||||
die("<script language='Javascript'>
|
||||
@@ -307,12 +309,12 @@ if(isset($_POST['save']))
|
||||
}
|
||||
}
|
||||
// *** SAVE ENDE ***
|
||||
if($geburtsdatum!='')
|
||||
if ($geburtsdatum!='')
|
||||
{
|
||||
//Wenn das Datum im Format d.m.Y ist dann in Y-m-d umwandeln
|
||||
if(strpos($geburtsdatum,'.'))
|
||||
if (strpos($geburtsdatum,'.'))
|
||||
{
|
||||
if($datum_obj->mktime_datum($geburtsdatum))
|
||||
if ($datum_obj->mktime_datum($geburtsdatum))
|
||||
{
|
||||
$geburtsdatum = date('Y-m-d',$datum_obj->mktime_datum($geburtsdatum));
|
||||
}
|
||||
@@ -321,13 +323,13 @@ if($geburtsdatum!='')
|
||||
$geburtsdatum_error=true;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if(!mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$geburtsdatum))
|
||||
if (!mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$geburtsdatum))
|
||||
$geburtsdatum_error=true;
|
||||
}
|
||||
|
||||
if($geburtsdatum_error)
|
||||
|
||||
if ($geburtsdatum_error)
|
||||
echo "Format des Geburtsdatums ist ungueltig!";
|
||||
}
|
||||
?>
|
||||
@@ -367,7 +369,7 @@ echo '<tr><td>Telefon</td><td><input type="text" id="telefon" maxlength="128" na
|
||||
echo '<tr><td>Mobil</td><td><input type="text" id="mobil" maxlength="128" name="mobil" value="'.$mobil.'" /></td></tr>';
|
||||
echo '<tr><td></td><td>';
|
||||
|
||||
if(($geburtsdatum=='' && $vorname=='' && $nachname=='') || $geburtsdatum_error)
|
||||
if (($geburtsdatum=='' && $vorname=='' && $nachname=='') || $geburtsdatum_error)
|
||||
echo '<input type="submit" name="showagain" value="Vorschlag laden">';
|
||||
else
|
||||
echo '<input type="submit" name="save" value="Speichern">';
|
||||
@@ -383,27 +385,34 @@ echo '<td valign="top">';
|
||||
|
||||
//Vorschlaege
|
||||
|
||||
$where = '';
|
||||
//Vorschlaege laden
|
||||
if($geburtsdatum!='')
|
||||
{
|
||||
if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$geburtsdatum))
|
||||
if ($geburtsdatum!='')
|
||||
{
|
||||
if (mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$geburtsdatum))
|
||||
{
|
||||
$where = " gebdatum='".$geburtsdatum."'";
|
||||
$where = " gebdatum=".$db->db_add_param($geburtsdatum);
|
||||
}
|
||||
}
|
||||
|
||||
if($vorname!='' && $nachname!='')
|
||||
if ($vorname!='' && $nachname!='')
|
||||
{
|
||||
if($where!='')
|
||||
if ($where!='')
|
||||
$where.=' OR';
|
||||
$where.=" (LOWER(vorname)=LOWER('".$vorname."') AND LOWER(nachname)=LOWER('".$nachname."'))";
|
||||
$where.=" (LOWER(vorname)=LOWER(".$db->db_add_param($vorname).") AND LOWER(nachname)=LOWER(".$db->db_add_param($nachname)."))";
|
||||
}
|
||||
elseif ($nachname!='')
|
||||
{
|
||||
if ($where!='')
|
||||
$where.=' OR';
|
||||
$where.=" LOWER(nachname)=LOWER(".$db->db_add_param($nachname).")";
|
||||
}
|
||||
|
||||
if($where!='')
|
||||
if ($where!='')
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_person WHERE $where ORDER BY nachname, vorname, gebdatum";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
echo '<table>
|
||||
<tr>
|
||||
@@ -425,7 +434,7 @@ if($where!='')
|
||||
SELECT (get_rolle_prestudent(prestudent_id, null) || ' ' || UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz)) as rolle FROM public.tbl_prestudent JOIN public.tbl_studiengang USING(studiengang_kz) WHERE person_id='$row->person_id'
|
||||
UNION
|
||||
SELECT 'PreInteressent' as rolle FROM public.tbl_preinteressent WHERE person_id='$row->person_id'";
|
||||
if($result_stati = $db->db_query($qry_stati))
|
||||
if ($result_stati = $db->db_query($qry_stati))
|
||||
{
|
||||
while($row_stati=$db->db_fetch_object($result_stati))
|
||||
{
|
||||
@@ -433,10 +442,10 @@ if($where!='')
|
||||
}
|
||||
}
|
||||
$status = mb_substr($status, 0, mb_strlen($status)-2);
|
||||
|
||||
|
||||
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->gebdatum</td><td>$row->svnr</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
|
||||
$qry_adr = "SELECT * FROM public.tbl_adresse WHERE person_id='$row->person_id'";
|
||||
if($result_adr = $db->db_query($qry_adr))
|
||||
if ($result_adr = $db->db_query($qry_adr))
|
||||
while($row_adr=$db->db_fetch_object($result_adr))
|
||||
echo "$row_adr->plz $row_adr->ort, $row_adr->strasse<br>";
|
||||
echo "<td>$status</td>";
|
||||
@@ -447,8 +456,6 @@ if($where!='')
|
||||
echo '</table>';
|
||||
}
|
||||
}
|
||||
//else
|
||||
// echo 'Zum Erstellen des Vorschlags bitte Geburtsdatum oder Vorname und Nachname eingeben';
|
||||
|
||||
?>
|
||||
</td>
|
||||
@@ -456,4 +463,4 @@ if($where!='')
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user