mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-26 17:14: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');
|
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 FILTER_PAGE_PARAM = 'filter_page';
|
||||||
|
|
||||||
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';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Calls the parent's constructor and loads the FiltersLib
|
||||||
*/
|
*/
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
// Load session library
|
$this->_loadFiltersLib(); // Loads the FiltersLib with parameters
|
||||||
$this->load->library('session');
|
|
||||||
|
|
||||||
$this->load->model('system/Filters_model', 'FiltersModel');
|
|
||||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
|
// 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();
|
$this->outputJsonSuccess($this->filterslib->getSession());
|
||||||
|
|
||||||
$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));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Retrives the number of records present in the current dataset and will be written on the output in JSON format
|
||||||
*/
|
|
||||||
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public function rowNumber()
|
public function rowNumber()
|
||||||
{
|
{
|
||||||
$json = new stdClass();
|
$rowNumber = 0;
|
||||||
|
$dataset = $this->filterslib->getElementSession(FiltersLib::SESSION_DATASET);
|
||||||
|
|
||||||
$session = $this->_readSession($this->_getFilterUniqueId());
|
if (isset($dataset) && is_array($dataset))
|
||||||
|
|
||||||
$dataset = $this->_getFromSession('dataset');
|
|
||||||
|
|
||||||
if (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]))
|
$selectedFields = $this->input->post('selectedFields');
|
||||||
return $_SESSION[self::SESSION_NAME][$filterUniqueId];
|
|
||||||
|
|
||||||
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])
|
$selectedField = $this->input->post('selectedField');
|
||||||
|| (isset($_SESSION[self::SESSION_NAME]) && !is_array($_SESSION[self::SESSION_NAME])))
|
|
||||||
{
|
|
||||||
$_SESSION[self::SESSION_NAME] = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$_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);
|
$personexists = $this->PersonModel->load($person_id);
|
||||||
|
|
||||||
if(isError($personexists))
|
if (isError($personexists))
|
||||||
show_error($personexists->retval);
|
show_error($personexists->retval);
|
||||||
|
|
||||||
if (empty($personexists->retval))
|
if (empty($personexists->retval))
|
||||||
show_error('person does not exist!');
|
show_error('person does not exist!');
|
||||||
|
|
||||||
//mark person as locked for editing
|
$show_lock_link_get = $this->input->get('show_lock_link');
|
||||||
$result = $this->PersonLockModel->lockPerson($person_id, $this->uid, self::APP);
|
$show_lock_link = !isset($show_lock_link_get) || $show_lock_link_get === '1';
|
||||||
|
|
||||||
if(isError($result))
|
if ($show_lock_link)
|
||||||
show_error($result->retval);
|
{
|
||||||
|
//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);
|
$persondata = $this->_loadPersonData($person_id);
|
||||||
$prestudentdata = $this->_loadPrestudentData($person_id);
|
$prestudentdata = $this->_loadPrestudentData($person_id);
|
||||||
|
|
||||||
$data = array_merge(
|
$data = array_merge(
|
||||||
$persondata,
|
$persondata,
|
||||||
$prestudentdata
|
$prestudentdata,
|
||||||
|
array('show_lock_link' => $show_lock_link)
|
||||||
);
|
);
|
||||||
|
|
||||||
$data['fhc_controller_id'] = $this->fhc_controller_id;
|
$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);
|
$result = $this->PersonLockModel->unlockPerson($person_id, self::APP);
|
||||||
|
|
||||||
if(isError($result))
|
if (isError($result))
|
||||||
show_error($result->retval);
|
show_error($result->retval);
|
||||||
|
|
||||||
redirect(self::URL_PREFIX.'?fhc_controller_id='.$this->fhc_controller_id);
|
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;
|
$data['data'] = $studienordnung->retval[0]->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->load->view('system/infocenter/studiengangZgvInfo.php',
|
$this->load->view('system/infocenter/studiengangZgvInfo.php', $data);
|
||||||
$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)
|
private function _fillFilters($filters, &$tofill)
|
||||||
{
|
{
|
||||||
foreach ($filters as $filterId => $description)
|
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),
|
'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter'), 'filter_id', $filterId),
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
'subscriptDescription' => 'Remove',
|
'subscriptDescription' => 'Remove',
|
||||||
'subscriptLinkClass' => 'remove-filter',
|
'subscriptLinkClass' => 'remove-custom-filter',
|
||||||
'subscriptLinkValue' => $filterId
|
'subscriptLinkValue' => $filterId
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,16 +20,22 @@ class FHC_Controller extends CI_Controller
|
|||||||
$this->load->helper('fhcauth');
|
$this->load->helper('fhcauth');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Public methods
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wrapper to load phrases using the PhrasesLib
|
* 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.
|
* 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>)
|
* 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');
|
$this->load->library('PhrasesLib', array($categories, $language), 'p');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
|
// Protected methods
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the unique id for the called controller
|
* Sets the unique id for the called controller
|
||||||
* NOTE: it is only working with HTTP GET request, not neeaded with POST
|
* 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;
|
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->_ci =& get_instance();
|
||||||
|
|
||||||
|
$this->_phrases = null; // set the property _phrases as null by default
|
||||||
|
|
||||||
// CI parser
|
// CI parser
|
||||||
$this->_ci->load->library('parser');
|
$this->_ci->load->library('parser');
|
||||||
|
|
||||||
@@ -78,7 +80,6 @@ class PhrasesLib
|
|||||||
return $this->_ci->PhraseModel->update($phrase_id, $data);
|
return $this->_ci->PhraseModel->update($phrase_id, $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getVorlagetextByVorlage() - will load tbl_vorlagestudiengang for a spezific Template.
|
* 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)
|
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++)
|
for ($i = 0; $i < count($this->_phrases); $i++)
|
||||||
{
|
{
|
||||||
|
$_phrase = $this->_phrases[$i]; // single phrase
|
||||||
$_phrase = $this->_phrases[$i];
|
|
||||||
|
// If the single phrase match the given parameters and is not an empty string
|
||||||
if ($_phrase->category == $category
|
if ($_phrase->category == $category
|
||||||
&& $_phrase->phrase == $phrase
|
&& $_phrase->phrase == $phrase
|
||||||
&& $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
|
&& $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
|
||||||
&& $_phrase->orgform_kurzbz== $orgform_kurzbz
|
&& $_phrase->orgform_kurzbz == $orgform_kurzbz
|
||||||
&& (!empty($_phrase->text)))
|
&& (!empty(trim($_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 = $default_phrases[$i];
|
if (!is_array($parameters)) $parameters = array(); // if params is not an array
|
||||||
// var_dump($_phrase);
|
|
||||||
|
|
||||||
// echo $phrase . "<br>";
|
|
||||||
// echo $_phrase->phrase . "<br><br>";
|
|
||||||
|
|
||||||
if ($_phrase->category == $category
|
return $this->_ci->parser->parse_string($_phrase->text, $parameters, true); // parsing
|
||||||
&& $_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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//fallback 2: if phrase not found at all, return phrasename
|
|
||||||
$phrase = '<< PHRASE ' . $phrase . ' >>';
|
// If a valid phrase is not found
|
||||||
return $this->_ci->parser->parse_string($phrase, $parameters, true);
|
return '<< PHRASE '.$phrase.' >>';
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------------
|
||||||
// Private methods
|
// Private methods
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extends the functionalities of the constructor of this class
|
* 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
|
* This is a workaround to use more parameters in the construct since PHP doesn't support many constructors
|
||||||
* The new accepted parameters are:
|
* @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
|
* categories:
|
||||||
* - language: optional parameter must be a string. It's used to load phrases
|
* - 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)
|
private function _extend_construct($params)
|
||||||
{
|
{
|
||||||
// Checks if the $params is an array with at least one element
|
// Checks if the $params is an array with at least one element
|
||||||
if (is_array($params) && count($params) > 0)
|
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 there are parameters
|
||||||
if (is_array($parameters) && count($parameters) > 0)
|
if (is_array($parameters) && count($parameters) > 0)
|
||||||
@@ -287,15 +257,101 @@ class PhrasesLib
|
|||||||
$language = $this->_ci->PersonModel->getLanguage(getAuthUID());
|
$language = $this->_ci->PersonModel->getLanguage(getAuthUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loads phrases
|
// If only categories is not an empty array then loads phrases
|
||||||
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($categories, $language);
|
if (count($categories) > 0) $this->_setPhrases($categories, $language);
|
||||||
|
|
||||||
// If there are phrases loaded then store them in the property _phrases
|
|
||||||
if (hasData($phrases))
|
|
||||||
{
|
|
||||||
$this->_phrases = $phrases->retval;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
$query = '
|
||||||
FROM system.tbl_phrase';
|
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',
|
'title' => 'Info Center',
|
||||||
'jquery' => true,
|
'jquery' => true,
|
||||||
'jqueryui' => true,
|
'jqueryui' => true,
|
||||||
|
'ajaxlib' => true,
|
||||||
'bootstrap' => true,
|
'bootstrap' => true,
|
||||||
'fontawesome' => true,
|
'fontawesome' => true,
|
||||||
'sbadmintemplate' => true,
|
'sbadmintemplate' => true,
|
||||||
'tablesorter' => true,
|
'tablesorter' => true,
|
||||||
'ajaxlib' => true,
|
|
||||||
'filterwidget' => true,
|
'filterwidget' => true,
|
||||||
|
'phrases' => array(
|
||||||
|
'person' => array('vorname', 'nachname'),
|
||||||
|
'global' => array('mailAnXversandt'),
|
||||||
|
'ui' => array('bitteEintragWaehlen')
|
||||||
|
),
|
||||||
'navigationwidget' => true,
|
'navigationwidget' => true,
|
||||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||||
@@ -27,12 +32,17 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<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>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<?php
|
<?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>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
FROM public.tbl_studiensemester
|
FROM public.tbl_studiensemester
|
||||||
WHERE ende >= NOW()
|
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
|
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
) AS "SendDate",
|
) AS "SendDate",
|
||||||
@@ -151,7 +152,7 @@
|
|||||||
),\', \'
|
),\', \'
|
||||||
) AS "StgAktiv",
|
) AS "StgAktiv",
|
||||||
pl.zeitpunkt AS "LockDate",
|
pl.zeitpunkt AS "LockDate",
|
||||||
pl.lockuser as "LockUser",
|
pl.lockuser AS "LockUser",
|
||||||
pd.parkdate AS "ParkDate"
|
pd.parkdate AS "ParkDate"
|
||||||
FROM public.tbl_person p
|
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)
|
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', 'gesperrtVon')),
|
||||||
ucfirst($this->p->t('global', 'parkdatum'))
|
ucfirst($this->p->t('global', 'parkdatum'))
|
||||||
),
|
),
|
||||||
'formatRaw' => function($datasetRaw) {
|
'formatRow' => function($datasetRaw) {
|
||||||
|
|
||||||
$datasetRaw->{'Details'} = sprintf(
|
$datasetRaw->{'Details'} = sprintf(
|
||||||
'<a href="%s/%s?fhc_controller_id=%s">Details</a>',
|
'<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;
|
$filterWidgetArray[InfoCenter::FILTER_ID] = $this->input->get(InfoCenter::FILTER_ID);
|
||||||
|
$filterWidgetArray['app'] = $APP;
|
||||||
if (isset($filterId) && is_numeric($filterId))
|
$filterWidgetArray['datasetName'] = 'PersonActions';
|
||||||
{
|
|
||||||
$filterWidgetArray[InfoCenter::FILTER_ID] = $filterId;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$filterWidgetArray['app'] = $APP;
|
|
||||||
$filterWidgetArray['datasetName'] = 'PersonActions';
|
|
||||||
$filterWidgetArray['filterKurzbz'] = 'InfoCenterNotSentApplicationAll';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -7,11 +7,11 @@
|
|||||||
'bootstrap' => true,
|
'bootstrap' => true,
|
||||||
'fontawesome' => true,
|
'fontawesome' => true,
|
||||||
'jqueryui' => true,
|
'jqueryui' => true,
|
||||||
|
'ajaxlib' => true,
|
||||||
'tablesorter' => true,
|
'tablesorter' => true,
|
||||||
'tinymce' => true,
|
'tinymce' => true,
|
||||||
'sbadmintemplate' => true,
|
'sbadmintemplate' => true,
|
||||||
'addons' => true,
|
'addons' => true,
|
||||||
'ajaxlib' => true,
|
|
||||||
'navigationwidget' => true,
|
'navigationwidget' => true,
|
||||||
'customCSSs' =>
|
'customCSSs' =>
|
||||||
array(
|
array(
|
||||||
@@ -22,8 +22,33 @@
|
|||||||
array(
|
array(
|
||||||
'public/js/bootstrapper.js',
|
'public/js/bootstrapper.js',
|
||||||
'public/js/tablesort/tablesort.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>
|
<body>
|
||||||
@@ -42,14 +67,16 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<div class="headerright text-right">
|
<div class="headerright text-right">
|
||||||
<?php echo $this->p->t('global', 'wirdBearbeitetVon') . ':' ?>
|
|
||||||
<?php
|
<?php
|
||||||
if (isset($lockedby)):
|
if (isset($lockedby)):
|
||||||
|
echo $this->p->t('global', 'wirdBearbeitetVon') . ': ';
|
||||||
echo $lockedby;
|
echo $lockedby;
|
||||||
?>
|
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
|
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>">
|
||||||
class="fa fa-sign-out"></i> <?php echo ucfirst($this->p->t('ui', 'freigeben')) ?></a>
|
<i class="fa fa-sign-out"></i> <?php echo ucfirst($this->p->t('ui', 'freigeben')) ?>
|
||||||
|
</a>
|
||||||
|
<?php endif; ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -59,7 +86,9 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="panel panel-primary">
|
<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">
|
<div class="panel-body">
|
||||||
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
|
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
|
||||||
<?php $this->load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
|
<?php $this->load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
|
||||||
@@ -73,7 +102,9 @@
|
|||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="panel panel-primary">
|
<div class="panel panel-primary">
|
||||||
<a name="DokPruef"></a><!-- anchor for jumping to the section -->
|
<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">
|
<div class="panel-body">
|
||||||
<?php $this->load->view('system/infocenter/dokpruefung.php'); ?>
|
<?php $this->load->view('system/infocenter/dokpruefung.php'); ?>
|
||||||
</div> <!-- ./panel-body -->
|
</div> <!-- ./panel-body -->
|
||||||
@@ -87,7 +118,8 @@
|
|||||||
<div class="panel panel-primary">
|
<div class="panel panel-primary">
|
||||||
<div class="panel-heading text-center">
|
<div class="panel-heading text-center">
|
||||||
<a name="ZgvPruef"></a>
|
<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>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
|
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
|
||||||
@@ -102,7 +134,7 @@
|
|||||||
<div class="panel panel-primary">
|
<div class="panel panel-primary">
|
||||||
<div class="panel-heading text-center">
|
<div class="panel-heading text-center">
|
||||||
<a name="Nachrichten"></a>
|
<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>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -121,7 +153,8 @@
|
|||||||
<div class="panel panel-primary">
|
<div class="panel panel-primary">
|
||||||
<div class="panel-heading text-center">
|
<div class="panel-heading text-center">
|
||||||
<a name="NotizAkt"></a>
|
<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>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -169,10 +169,10 @@
|
|||||||
'additionalColumns' => array('Details'),
|
'additionalColumns' => array('Details'),
|
||||||
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation','Letzte Aktion','Letzter Bearbeiter',
|
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation','Letzte Aktion','Letzter Bearbeiter',
|
||||||
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
|
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
|
||||||
'formatRaw' => function($datasetRaw) {
|
'formatRow' => function($datasetRaw) {
|
||||||
|
|
||||||
$datasetRaw->{'Details'} = sprintf(
|
$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'),
|
site_url('system/infocenter/InfoCenter/showDetails'),
|
||||||
$datasetRaw->{'PersonId'},
|
$datasetRaw->{'PersonId'},
|
||||||
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
|
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
|
||||||
|
|||||||
@@ -17,13 +17,13 @@ $this->load->view(
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<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>
|
</div>
|
||||||
<div id="data">
|
<div id="data">
|
||||||
<?php if (empty($data)): ?>
|
<?php if (empty($data)): ?>
|
||||||
Keine Zugangsvoraussetzungen für den Studiengang definiert
|
<?php echo $this->p->t('infocenter', 'keineZugangsvoraussetzungenTxt'); ?>
|
||||||
<?php
|
<?php
|
||||||
else:
|
else:
|
||||||
echo json_decode($data);
|
echo json_decode($data);
|
||||||
endif;
|
endif;
|
||||||
|
|||||||
@@ -201,7 +201,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-<?php echo $columns[3] ?>">
|
<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
|
<?php
|
||||||
if ($infoonly)
|
if ($infoonly)
|
||||||
echo $zgvpruefung->zgvmanation_bez;
|
echo $zgvpruefung->zgvmanation_bez;
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-6 text-left">
|
<div class="col-xs-6 text-left">
|
||||||
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
|
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||||
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
|
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 text-right">
|
<div class="col-xs-6 text-right">
|
||||||
@@ -249,7 +249,7 @@
|
|||||||
class="d-inline float-right"
|
class="d-inline float-right"
|
||||||
required>
|
required>
|
||||||
<option value="null"
|
<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>
|
</option>
|
||||||
<?php foreach ($statusgruende as $statusgrund): ?>
|
<?php foreach ($statusgruende as $statusgrund): ?>
|
||||||
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
|
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
|
||||||
@@ -323,7 +323,7 @@
|
|||||||
data-toggle="modal"
|
data-toggle="modal"
|
||||||
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>"
|
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||||
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
|
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
|
||||||
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
|
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -340,10 +340,10 @@
|
|||||||
</button>
|
</button>
|
||||||
<h4 class="modal-title"
|
<h4 class="modal-title"
|
||||||
id="freigabeModalLabel">
|
id="freigabeModalLabel">
|
||||||
<?php echo $this->p->t('global', 'freigabeBestaetigen') ?></h4>
|
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?></h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
|
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button"
|
<button type="button"
|
||||||
@@ -353,7 +353,7 @@
|
|||||||
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>">
|
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>">
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="btn btn-primary">
|
class="btn btn-primary">
|
||||||
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
|
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ $calledMethod = $this->router->method;
|
|||||||
$title = isset($title) ? $title : null;
|
$title = isset($title) ? $title : null;
|
||||||
$customCSSs = isset($customCSSs) ? $customCSSs : null;
|
$customCSSs = isset($customCSSs) ? $customCSSs : null;
|
||||||
$customJSs = isset($customJSs) ? $customJSs : null;
|
$customJSs = isset($customJSs) ? $customJSs : null;
|
||||||
|
$phrases = isset($phrases) ? $phrases : null;
|
||||||
|
|
||||||
// By default set the parameters to false
|
// By default set the parameters to false
|
||||||
$jquery = isset($jquery) ? $jquery : false;
|
$jquery = isset($jquery) ? $jquery : false;
|
||||||
@@ -84,6 +85,25 @@ function _generateJSDataStorageObject($calledPath, $calledMethod)
|
|||||||
echo $toPrint;
|
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
|
* 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
|
// NOTE: must be called before any other JS include
|
||||||
_generateJSDataStorageObject($calledPath, $calledMethod);
|
_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
|
// JQuery V3
|
||||||
if ($jquery === true) _generateJSsInclude('vendor/components/jquery/jquery.min.js');
|
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
|
_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
|
// Bootstrap JS
|
||||||
if ($bootstrap === true) _generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.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');
|
_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
|
// FilterWidget JS
|
||||||
if($filterwidget === true) _generateJSsInclude('public/js/FilterWidget.js') ;
|
if($filterwidget === true) _generateJSsInclude('public/js/FilterWidget.js') ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
|
|
||||||
<div class="filter-name-title">
|
<!-- Filter name -->
|
||||||
<?php FilterWidget::displayFilterName(); ?>
|
<div class="filter-name-title"></div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<!-- Filter options -->
|
||||||
<div class="panel-group">
|
<div class="panel-group">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
@@ -16,18 +16,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="collapseFilterHeader" class="panel-collapse collapse">
|
<div id="collapseFilterHeader" class="panel-collapse collapse">
|
||||||
<div class="filters-hidden-panel">
|
<div class="filters-hidden-panel">
|
||||||
|
<!-- Filter fields options -->
|
||||||
<div>
|
<div>
|
||||||
<?php FilterWidget::loadViewSelectFields(); ?>
|
<?php FilterWidget::loadViewSelectFields(); ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<!-- Filter filters options -->
|
||||||
<div>
|
<div>
|
||||||
<?php FilterWidget::loadViewSelectFilters(); ?>
|
<?php FilterWidget::loadViewSelectFilters(); ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<!-- Filter save options -->
|
||||||
<div>
|
<div>
|
||||||
<?php FilterWidget::loadViewSaveFilter(); ?>
|
<?php FilterWidget::loadViewSaveFilter(); ?>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,12 +41,15 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<!-- Filter info top -->
|
||||||
<div id="datasetActionsTop"></div>
|
<div id="datasetActionsTop"></div>
|
||||||
|
|
||||||
|
<!-- Filter table -->
|
||||||
<div>
|
<div>
|
||||||
<?php FilterWidget::loadViewTableDataset(); ?>
|
<?php FilterWidget::loadViewTableDataset(); ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Filter info bottom -->
|
||||||
<div id="datasetActionsBottom"></div>
|
<div id="datasetActionsBottom"></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<br>
|
<br>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<span class="filter-options-span">
|
<span class="filter-span-label">
|
||||||
Filter description:
|
<?php echo ucfirst($this->p->t('global', 'beschreibung')); ?>:
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
<input type="text" id="customFilterDescription" value="">
|
<input type="text" id="customFilterDescription" class="input-text-custom-filter" value="">
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<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>
|
</span>
|
||||||
</div>
|
</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>
|
<div>
|
||||||
<span class="filter-options-span">
|
<span class="filter-span-label">
|
||||||
Add field:
|
<?php echo ucfirst($this->p->t('filter', 'feldHinzufuegen')); ?>:
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
<select id="addField"></select>
|
<select id="addField" class="drop-down-fields"></select>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
<br>
|
<br>
|
||||||
|
|
||||||
<div id="selectedFilters"></div>
|
<div id="appliedFilters"></div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<span class="filter-options-span">
|
<span class="filter-span-label">
|
||||||
Add filter:
|
<?php echo ucfirst($this->p->t('filter', 'filterHinzufuegen')); ?>:
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
<select id="addFilter"></select>
|
<select id="addFilter" class="drop-down-filters"></select>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<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>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+344
-1130
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,49 @@
|
|||||||
<!DOCTYPE html>
|
<?php
|
||||||
<!--
|
require_once('../../../../config/cis.config.inc.php');
|
||||||
To change this license header, choose License Headers in Project Properties.
|
require_once('../../../../include/studiensemester.class.php');
|
||||||
To change this template file, choose Tools | Templates
|
require_once('../../../../include/functions.inc.php');
|
||||||
and open the template in the editor.
|
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||||
-->
|
require_once('../../../../include/pruefungCis.class.php');
|
||||||
<html>
|
?>
|
||||||
<head>
|
<!DOCTYPE html>
|
||||||
<meta charset="UTF-8">
|
<html>
|
||||||
<title></title>
|
<head>
|
||||||
</head>
|
<meta charset="UTF-8">
|
||||||
<body>
|
<title>Prüfung</title>
|
||||||
<?php
|
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||||
// put your code here
|
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||||
?>
|
</head>
|
||||||
</body>
|
<body>
|
||||||
</html>
|
<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('../../../../config/cis.config.inc.php');
|
||||||
require_once('../../../../include/basis_db.class.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())
|
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')
|
if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='lektor')
|
||||||
{
|
{
|
||||||
$search=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:''));
|
$search=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:''));
|
||||||
if (is_null($search) ||$search=='')
|
if (is_null($search) ||$search=='')
|
||||||
exit();
|
exit();
|
||||||
$mitarbeiter = new mitarbeiter();
|
$mitarbeiter = new mitarbeiter();
|
||||||
$searchItems = explode(' ',$search);
|
$searchItems = explode(' ',$search);
|
||||||
if($mitarbeiter->search($search))
|
if ($mitarbeiter->search($search))
|
||||||
{
|
{
|
||||||
$result_obj = array();
|
$result_obj = array();
|
||||||
foreach($mitarbeiter->result as $row)
|
foreach($mitarbeiter->result as $row)
|
||||||
@@ -47,4 +47,4 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='lektor')
|
|||||||
}
|
}
|
||||||
exit;
|
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
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright 2014 fhcomplete.org
|
* Copyright 2014 fhcomplete.org
|
||||||
@@ -37,18 +36,18 @@ $sprache = getSprache();
|
|||||||
$lang = new sprache();
|
$lang = new sprache();
|
||||||
$lang->load($sprache);
|
$lang->load($sprache);
|
||||||
$p = new phrasen($sprache);
|
$p = new phrasen($sprache);
|
||||||
//TODO
|
|
||||||
$uid = get_uid();
|
$uid = get_uid();
|
||||||
|
|
||||||
if(isset($_GET['uid']))
|
if (isset($_GET['uid']))
|
||||||
{
|
{
|
||||||
// Administratoren duerfen die UID als Parameter uebergeben um den Studienplan
|
// Administratoren duerfen die UID als Parameter uebergeben um den Studienplan
|
||||||
// von anderen Personen anzuzeigen
|
// von anderen Personen anzuzeigen
|
||||||
|
|
||||||
$rechte = new benutzerberechtigung();
|
$rechte = new benutzerberechtigung();
|
||||||
$rechte->getBerechtigungen($uid);
|
$rechte->getBerechtigungen($uid);
|
||||||
if($rechte->isBerechtigt('admin'))
|
if ($rechte->isBerechtigt('admin'))
|
||||||
$uid=$_GET['uid'];
|
$uid = $_GET['uid'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$db = new basis_db();
|
$db = new basis_db();
|
||||||
@@ -60,277 +59,290 @@ $benutzer = new student($uid);
|
|||||||
$studiensemester = new studiensemester();
|
$studiensemester = new studiensemester();
|
||||||
$studiensemester->getAll();
|
$studiensemester->getAll();
|
||||||
|
|
||||||
?>
|
?><!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Prüfungsanmeldung</title>
|
<title>Prüfungsanmeldung</title>
|
||||||
<script src="../../../../include/js/datecheck.js"></script>
|
<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/components/jquery/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js"></script>
|
||||||
<script src="./pruefung.js.php"></script>
|
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
<script type="text/javascript" src="../../../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
<script src="./pruefung.js.php"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||||
<style type="text/css">
|
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||||
#pruefungen, #prfTermine {
|
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||||
width: 50%;
|
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
|
||||||
}
|
<style type="text/css">
|
||||||
|
#pruefungen, #prfTermine
|
||||||
#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)
|
|
||||||
{
|
{
|
||||||
$("#accordion").accordion({
|
width: 50%;
|
||||||
header: "h2",
|
}
|
||||||
autoHeight: false
|
#details
|
||||||
});
|
{
|
||||||
$("#accordion").attr("style", "visibility: visible;");
|
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();
|
loadPruefungen();
|
||||||
loadPruefungenOfStudiengang();
|
loadPruefungenOfStudiengang();
|
||||||
loadPruefungenGesamt();
|
loadPruefungenGesamt();
|
||||||
$("#saveDialog").dialog({
|
$("#saveDialog").dialog({
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: "auto"
|
width: "auto"
|
||||||
});
|
});
|
||||||
$("#dialog").dialog({ autoOpen: false });
|
$("#dialog").dialog({ autoOpen: false });
|
||||||
|
|
||||||
$("#details").dialog({
|
$("#details").dialog({
|
||||||
modal: true,
|
modal: true,
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
width: "400px"
|
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
|
<?php
|
||||||
echo '<h3>'.$p->t('pruefung/filter').'</h3>';
|
echo '
|
||||||
echo '<p>'.$p->t('global/studiensemester').': ';
|
function openAnmeldung(lehrveranstaltung_id, stsem)
|
||||||
echo '<select id="filter_studiensemester" onchange="refresh();">';
|
{
|
||||||
$aktuellesSemester = $studiensemester->getaktorNext();
|
$("#dialog").load("../../profile/studienplan.php?getAnmeldung=true&lehrveranstaltung_id="+lehrveranstaltung_id+"&stsem="+stsem+"&uid='.$db->convert_html_chars($uid).'");
|
||||||
foreach($studiensemester->studiensemester as $sem)
|
$("#dialog").dialog("open");
|
||||||
{
|
}';
|
||||||
if($aktuellesSemester == $sem->studiensemester_kurzbz)
|
?>
|
||||||
|
</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
|
else
|
||||||
{
|
{
|
||||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo '</select></p>';
|
echo '</select></p>';
|
||||||
|
?>
|
||||||
?>
|
<div id="details" title="<?php echo $p->t('pruefung/details'); ?>">
|
||||||
<div id="details" title="<?php echo $p->t('pruefung/details'); ?>">
|
<div id="lvDetails">
|
||||||
<div id="lvDetails">
|
|
||||||
<h1><?php echo $p->t('pruefung/lvDetails'); ?></h1>
|
<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/>
|
<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>
|
<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/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('pruefung/pruefungMethode'); ?>: </span><span id="prfMethode"></span><br/>
|
||||||
<span class="titel"><?php echo $p->t('global/beschreibung'); ?>: </span><span id="prfBeschreibung"></span><br/>
|
<span class="titel"><?php echo $p->t('global/beschreibung'); ?>: </span><span id="prfBeschreibung"></span><br/>
|
||||||
<span id="prfEinzeln"></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/>
|
<span class="titel" style="visibility: hidden;"><?php echo $p->t('pruefung/intervall'); ?>: </span><span id="prfIntervall"></span><br/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="message"></div>
|
|
||||||
<div id="accordion" style="visibility: hidden;">
|
<div id="message"></div>
|
||||||
<h2><?php echo $p->t('pruefung/besuchteLehrveranstaltungen'); ?></h2>
|
|
||||||
<div>
|
<div id="accordion" style="visibility: hidden;">
|
||||||
|
<h2><?php echo $p->t('pruefung/besuchteLehrveranstaltungen'); ?></h2>
|
||||||
|
<div>
|
||||||
<table id="table1" class="tablesorter">
|
<table id="table1" class="tablesorter">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="pruefungen">
|
<tbody id="pruefungen">
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<?php if(!defined('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG') || CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG == true): ?>
|
<?php
|
||||||
<h2><?php echo $p->t('pruefung/lvVonStudiengang'); ?></h2>
|
if (!defined('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG')
|
||||||
<div>
|
|| CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG == true):
|
||||||
|
?>
|
||||||
|
<h2><?php echo $p->t('pruefung/lvVonStudiengang'); ?></h2>
|
||||||
|
<div>
|
||||||
<table id="table2" class="tablesorter">
|
<table id="table2" class="tablesorter">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="pruefungenStudiengang">
|
<tbody id="pruefungenStudiengang">
|
||||||
|
</tbody>
|
||||||
</tbody>
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<h2><?php echo $p->t('pruefung/lvAlle'); ?></h2>
|
|
||||||
<div>
|
<h2><?php echo $p->t('pruefung/lvAlle'); ?></h2>
|
||||||
|
<div>
|
||||||
<table id="table3" class="tablesorter">
|
<table id="table3" class="tablesorter">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="pruefungenGesamt">
|
<tbody id="pruefungenGesamt">
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="saveDialog" title="<?php echo $p->t('pruefung/anmeldungSpeichern'); ?>">
|
</div>
|
||||||
<form id="saveAnmeldungForm">
|
<div id="saveDialog" title="<?php echo $p->t('pruefung/anmeldungSpeichern'); ?>">
|
||||||
|
<form id="saveAnmeldungForm">
|
||||||
<table id="neueAnmeldung">
|
<table id="neueAnmeldung">
|
||||||
<tr>
|
<tr>
|
||||||
<td> </td>
|
<td> </td>
|
||||||
<td>
|
<td>
|
||||||
<input type="hidden" id="lehrveranstaltungHidden" disabled="true">
|
<input type="hidden" id="lehrveranstaltungHidden" disabled="true">
|
||||||
<input type="hidden" id="terminHidden" disabled="true">
|
<input type="hidden" id="terminHidden" disabled="true">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/lehrveranstaltung'); ?>: </td>
|
<td style="vertical-align: top; font-weight: bold;">
|
||||||
<td>
|
<?php echo $p->t('global/lehrveranstaltung'); ?>:
|
||||||
<span id="lehrveranstaltung"></span>
|
</td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<span id="lehrveranstaltung"></span>
|
||||||
<tr>
|
</td>
|
||||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/von'); ?>: </td>
|
</tr>
|
||||||
<td>
|
<tr>
|
||||||
|
<td style="vertical-align: top; font-weight: bold;">
|
||||||
<span id="terminVon"></span>
|
<?php echo $p->t('global/von'); ?>:
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
<td>
|
||||||
<tr>
|
<span id="terminVon"></span>
|
||||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/bis'); ?>: </td>
|
</td>
|
||||||
<td>
|
</tr>
|
||||||
<span type="text" id="terminBis" disabled="true"></span>
|
<tr>
|
||||||
</td>
|
<td style="vertical-align: top; font-weight: bold;">
|
||||||
</tr>
|
<?php echo $p->t('global/bis'); ?>:
|
||||||
<?php if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true): ?>
|
</td>
|
||||||
<tr>
|
<td>
|
||||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('pruefung/studienverpflichtung'); ?>:* </td>
|
<span type="text" id="terminBis" disabled="true"></span>
|
||||||
<td>
|
</td>
|
||||||
<select id="studienverpflichtung"></select>
|
</tr>
|
||||||
</td>
|
<?php
|
||||||
</tr>
|
if (!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG')
|
||||||
<?php endif; ?>
|
|| CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true):
|
||||||
<tr id="studiengang">
|
?>
|
||||||
|
<tr>
|
||||||
</tr>
|
<td style="vertical-align: top; font-weight: bold;">
|
||||||
<tr>
|
<?php echo $p->t('pruefung/studienverpflichtung'); ?>:*
|
||||||
<td style="vertical-align: top; font-weight: bold;"><?php echo $p->t('global/anmerkung'); ?>: </td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<textarea id="anmeldungBemerkung" rows="10" cols="20"></textarea>
|
<select id="studienverpflichtung"></select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<?php endif; ?>
|
||||||
<td><input type="button" value="<?php echo $p->t('global/anmelden'); ?>" onclick="saveAnmeldung();"></td>
|
<tr id="studiengang">
|
||||||
</tr>
|
</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>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div id="dialog">
|
<div id="dialog">
|
||||||
</div>
|
</div>
|
||||||
</body>
|
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -17,6 +17,11 @@
|
|||||||
*
|
*
|
||||||
* Authors: Manfred Kindl <[email protected]>
|
* Authors: Manfred Kindl <[email protected]>
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* 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('../../../../config/cis.config.inc.php');
|
||||||
require_once('../../../../include/dokument_export.class.php');
|
require_once('../../../../include/dokument_export.class.php');
|
||||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||||
@@ -46,18 +51,18 @@ $p = new phrasen($sprache);
|
|||||||
$berechtigung = new benutzerberechtigung();
|
$berechtigung = new benutzerberechtigung();
|
||||||
$berechtigung->getBerechtigungen($user);
|
$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'];
|
$lvid = $_GET['lehrveranstaltung_id'];
|
||||||
else
|
else
|
||||||
die('Eine gueltige LvID muss uebergeben werden');
|
die('Eine gueltige LvID muss uebergeben werden');
|
||||||
|
|
||||||
if(isset($_GET['studiensemester']))
|
if (isset($_GET['studiensemester']))
|
||||||
$studiensemester = $_GET['studiensemester'];
|
$studiensemester = $_GET['studiensemester'];
|
||||||
else
|
else
|
||||||
die('Eine Studiensemester muss uebergeben werden');
|
die('Eine Studiensemester muss uebergeben werden');
|
||||||
|
|
||||||
if(isset($_GET['termin_id']) && is_numeric($_GET['termin_id']))
|
if (isset($_GET['termin_id']) && is_numeric($_GET['termin_id']))
|
||||||
$termin_id = $_GET['termin_id'];
|
$termin_id = $_GET['termin_id'];
|
||||||
else
|
else
|
||||||
die('Eine Termin-ID muss uebergeben werden');
|
die('Eine Termin-ID muss uebergeben werden');
|
||||||
|
|
||||||
@@ -65,12 +70,12 @@ $vorlagecheck = new vorlage();
|
|||||||
if (!$vorlagecheck->loadVorlage('Pruefungslist'))
|
if (!$vorlagecheck->loadVorlage('Pruefungslist'))
|
||||||
header('Location: pruefungsanmeldungen_liste.php?termin_id='.$termin_id.'&lehrveranstaltung_id='.$lvid.'&studiensemester='.$studiensemester);
|
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');
|
die('Sie muessen LektorIn der LV oder Admin sein, um diese Seite aufrufen zu koennen');
|
||||||
|
|
||||||
$output='pdf';
|
$output='pdf';
|
||||||
|
|
||||||
if(isset($_GET['output']) && ($output='odt' || $output='doc'))
|
if (isset($_GET['output']) && ($output='odt' || $output='doc'))
|
||||||
$output=$_GET['output'];
|
$output=$_GET['output'];
|
||||||
|
|
||||||
|
|
||||||
@@ -80,7 +85,6 @@ $lv->load($lvid);
|
|||||||
|
|
||||||
$doc = new dokument_export('Pruefungslist');
|
$doc = new dokument_export('Pruefungslist');
|
||||||
|
|
||||||
|
|
||||||
$stg = new studiengang();
|
$stg = new studiengang();
|
||||||
$stg->load($lv->studiengang_kz);
|
$stg->load($lv->studiengang_kz);
|
||||||
|
|
||||||
@@ -94,7 +98,7 @@ $pruefungsanmeldung = new pruefungsanmeldung();
|
|||||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lvid, $studiensemester, "bestaetigt");
|
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lvid, $studiensemester, "bestaetigt");
|
||||||
$lehrveranstaltung = new lehrveranstaltung($lvid);
|
$lehrveranstaltung = new lehrveranstaltung($lvid);
|
||||||
$einzeln = FALSE;
|
$einzeln = FALSE;
|
||||||
if(!empty($anmeldungen))
|
if (!empty($anmeldungen))
|
||||||
{
|
{
|
||||||
$pruefung = new pruefungCis($anmeldungen[0]->pruefung_id);
|
$pruefung = new pruefungCis($anmeldungen[0]->pruefung_id);
|
||||||
$pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id);
|
$pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id);
|
||||||
@@ -102,7 +106,6 @@ if(!empty($anmeldungen))
|
|||||||
$dozent = $mitarbeiter->getFullName(FALSE);
|
$dozent = $mitarbeiter->getFullName(FALSE);
|
||||||
$termin_datum = $datum->formatDatum($pruefungstermin->von, "d.m.Y - H:i");
|
$termin_datum = $datum->formatDatum($pruefungstermin->von, "d.m.Y - H:i");
|
||||||
|
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'bezeichnung'=>$lv->bezeichnung,
|
'bezeichnung'=>$lv->bezeichnung,
|
||||||
'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id,
|
'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id,
|
||||||
@@ -122,7 +125,7 @@ if(!empty($anmeldungen))
|
|||||||
$student = new student($anmeldung->uid);
|
$student = new student($anmeldung->uid);
|
||||||
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
|
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
|
||||||
|
|
||||||
if($einzeln)
|
if ($einzeln)
|
||||||
{
|
{
|
||||||
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
|
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
|
||||||
$date = strtotime($date);
|
$date = strtotime($date);
|
||||||
@@ -136,10 +139,10 @@ if(!empty($anmeldungen))
|
|||||||
$count++;
|
$count++;
|
||||||
}
|
}
|
||||||
// Es soll das Datum der Anmeldung angezeigt werden
|
// Es soll das Datum der Anmeldung angezeigt werden
|
||||||
if ($anmeldung->datum_anmeldung)
|
if ($anmeldung->datum_anmeldung)
|
||||||
$date = $datum->formatDatum($anmeldung->datum_anmeldung, "d.m.Y");
|
$date = $datum->formatDatum($anmeldung->datum_anmeldung, "d.m.Y");
|
||||||
else
|
else
|
||||||
$date = '';
|
$date = '';
|
||||||
|
|
||||||
$data[] = array('student'=>array(
|
$data[] = array('student'=>array(
|
||||||
'count' => $count,
|
'count' => $count,
|
||||||
@@ -153,19 +156,15 @@ if(!empty($anmeldungen))
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$doc->addDataArray($data,'pruefungsliste');
|
$doc->addDataArray($data,'pruefungsliste');
|
||||||
|
|
||||||
//header("Content-type: application/xhtml+xml");
|
if (!$doc->create($output))
|
||||||
//echo $doc->ConvertArrayToXML($data,'anwesenheitsliste');
|
|
||||||
//exit;
|
|
||||||
|
|
||||||
if(!$doc->create($output))
|
|
||||||
die($doc->errormsg);
|
die($doc->errormsg);
|
||||||
$doc->output();
|
$doc->output();
|
||||||
$doc->close();
|
$doc->close();
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden');
|
echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright 2014 fhcomplete.org
|
* Copyright 2014 fhcomplete.org
|
||||||
@@ -45,145 +44,145 @@ $p = new phrasen($sprache);
|
|||||||
$uid = get_uid();
|
$uid = get_uid();
|
||||||
$rechte = new benutzerberechtigung();
|
$rechte = new benutzerberechtigung();
|
||||||
$rechte->getBerechtigungen($uid);
|
$rechte->getBerechtigungen($uid);
|
||||||
?>
|
?><!DOCTYPE html>
|
||||||
<html moznomarginboxes="">
|
<html moznomarginboxes="">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<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/components/jquery/jquery.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="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
<style type="text/css">
|
||||||
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
body {
|
||||||
<style type="text/css">
|
margin: 0;
|
||||||
body {
|
padding: 0;
|
||||||
margin: 0;
|
}
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
-moz-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 {
|
#page {
|
||||||
margin: 0;
|
width: 210mm;
|
||||||
border: initial;
|
min-height: 297mm;
|
||||||
border-radius: initial;
|
padding: 20mm;
|
||||||
width: initial;
|
margin: 10mm auto;
|
||||||
min-height: initial;
|
border: 1px #ffffff solid;
|
||||||
box-shadow: initial;
|
border-radius: 5px;
|
||||||
background: initial;
|
background: white;
|
||||||
page-break-after: auto;
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
||||||
|
font-family: Arial, Helvetica;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
#subpage {
|
||||||
* Workaround um beim Drucken jede zweite Zeile der Tabelle
|
padding: 10mm;
|
||||||
* grau darzustellen. Standardmäßig werden von Browsern keine
|
border: 1px white solid;
|
||||||
* Hintergrundfarben gedruckt.
|
height: 256mm;
|
||||||
*/
|
outline: 20mm;
|
||||||
tr:nth-child(odd) > td{
|
|
||||||
box-shadow: inset 0 0 0 1000px lightgrey;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Veranlasst Chrome Hintergrundfarben zu drucken
|
#liste {
|
||||||
body{
|
border: 1px solid black;
|
||||||
-webkit-print-color-adjust:exact;
|
border-collapse: collapse;
|
||||||
background-color: #FFFFFF;
|
width: 100%;
|
||||||
margin: 0;
|
margin-top: 5mm;
|
||||||
|
font-size: 11pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Anweisungen nur für Firefox
|
h1 {
|
||||||
@-moz-document url-prefix() {
|
text-align: center;
|
||||||
html, body {
|
|
||||||
height: 280mm;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@-moz-document url-prefix() {
|
|
||||||
#page {
|
.bold {
|
||||||
padding: 15mm 25mm 25mm 15mm !important;
|
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>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function(){
|
$(document).ready(function()
|
||||||
window.print();
|
{
|
||||||
});
|
window.print();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<div id="page">
|
<div id="page">
|
||||||
<div id="subpage">
|
<div id="subpage">
|
||||||
<h1><?php echo $p->t('pruefung/anmeldungsliste'); ?></h1>
|
<h1><?php echo $p->t('pruefung/anmeldungsliste'); ?></h1>
|
||||||
<?php
|
<?php
|
||||||
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
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");
|
$termin_id = filter_input(INPUT_GET,"termin_id");
|
||||||
$lehrveranstaltung_id = filter_input(INPUT_GET,"lehrveranstaltung_id");
|
$lehrveranstaltung_id = filter_input(INPUT_GET,"lehrveranstaltung_id");
|
||||||
@@ -191,42 +190,42 @@ $rechte->getBerechtigungen($uid);
|
|||||||
|
|
||||||
if(is_null($lehrveranstaltung_id))
|
if(is_null($lehrveranstaltung_id))
|
||||||
{
|
{
|
||||||
die($p->t('pruefung/fehlenderParam_lvid'));
|
die($p->t('pruefung/fehlenderParam_lvid'));
|
||||||
}
|
}
|
||||||
else if(is_null($termin_id))
|
else if(is_null($termin_id))
|
||||||
{
|
{
|
||||||
die($p->t('pruefung/fehlenderParam_terminid'));
|
die($p->t('pruefung/fehlenderParam_terminid'));
|
||||||
}
|
}
|
||||||
else if(is_null($studiensemester))
|
else if(is_null($studiensemester))
|
||||||
{
|
{
|
||||||
die($p->t('pruefung/fehlenderParam_studiensemester'));
|
die($p->t('pruefung/fehlenderParam_studiensemester'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$datum = new datum();
|
$datum = new datum();
|
||||||
$stdsem = new studiensemester($studiensemester);
|
$stdsem = new studiensemester($studiensemester);
|
||||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lehrveranstaltung_id, $studiensemester, "bestaetigt");
|
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($termin_id, $lehrveranstaltung_id, $studiensemester, "bestaetigt");
|
||||||
$lehrveranstaltung = new lehrveranstaltung($lehrveranstaltung_id);
|
$lehrveranstaltung = new lehrveranstaltung($lehrveranstaltung_id);
|
||||||
$einzeln = FALSE;
|
$einzeln = FALSE;
|
||||||
if(!empty($anmeldungen))
|
if(!empty($anmeldungen))
|
||||||
{
|
{
|
||||||
$pruefung = new pruefungCis($anmeldungen[0]->pruefung_id);
|
$pruefung = new pruefungCis($anmeldungen[0]->pruefung_id);
|
||||||
$pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id);
|
$pruefungstermin = new pruefungstermin($anmeldungen[0]->pruefungstermin_id);
|
||||||
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
|
$mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid);
|
||||||
if($pruefung->einzeln)
|
if($pruefung->einzeln)
|
||||||
{
|
{
|
||||||
$einzeln = TRUE;
|
$einzeln = TRUE;
|
||||||
$pruefungsintervall = $pruefung->pruefungsintervall;
|
$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/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('global/studiensemester'); ?>: </span><span><?=$stdsem->bezeichnung?></span><br/>
|
||||||
<span class="bold"><?php echo $p->t('pruefung/pruefer'); ?>: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
|
<span class="bold"><?php echo $p->t('pruefung/pruefer'); ?>: </span><span><?=$mitarbeiter->getFullName(FALSE)?></span><br/>
|
||||||
<table id="liste">
|
<table id="liste">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th><?php echo $p->t('global/vorname'); ?></th>
|
<th><?php echo $p->t('global/vorname'); ?></th>
|
||||||
<th><?php echo $p->t('global/nachname'); ?></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('global/datum'); ?></th>
|
||||||
<th><?php echo $p->t('benotungstool/note'); ?></th>
|
<th><?php echo $p->t('benotungstool/note'); ?></th>
|
||||||
<th><?php echo $p->t('global/anmerkung'); ?></th>
|
<th><?php echo $p->t('global/anmerkung'); ?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php
|
<?php
|
||||||
$count = 0;
|
$count = 0;
|
||||||
/*@var $anmeldung pruefungsanmeldung */
|
/*@var $anmeldung pruefungsanmeldung */
|
||||||
foreach($anmeldungen as $anmeldung)
|
foreach($anmeldungen as $anmeldung)
|
||||||
{
|
{
|
||||||
$student = new student($anmeldung->uid);
|
$student = new student($anmeldung->uid);
|
||||||
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
|
$prfTermin = new pruefungstermin($anmeldung->pruefungstermin_id);
|
||||||
|
|
||||||
if($einzeln)
|
if($einzeln)
|
||||||
{
|
{
|
||||||
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
|
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
|
||||||
$date = strtotime($date);
|
$date = strtotime($date);
|
||||||
$date = $date+(60*$pruefungsintervall*($count));
|
$date = $date+(60*$pruefungsintervall*($count));
|
||||||
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
|
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
|
||||||
$count++;
|
$count++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i");
|
$date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i");
|
||||||
$count++;
|
$count++;
|
||||||
}
|
}
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo '<td>'.$count.'</td>';
|
echo '<td>'.$count.'</td>';
|
||||||
echo '<td>'.$student->vorname.'</td>';
|
echo '<td>'.$student->vorname.'</td>';
|
||||||
echo '<td>'.$student->nachname.'</td>';
|
echo '<td>'.$student->nachname.'</td>';
|
||||||
@@ -266,22 +265,24 @@ $rechte->getBerechtigungen($uid);
|
|||||||
echo '<td>'.$date.'</td>';
|
echo '<td>'.$date.'</td>';
|
||||||
echo '<td></td>';
|
echo '<td></td>';
|
||||||
echo '<td></td>';
|
echo '<td></td>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</tbody>
|
</tbody>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<span><?php echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden'); ?></span><br/>
|
<span><?php echo $p->t('pruefung/keineBestaetigtenAnmeldungenVorhanden'); ?></span><br/>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
}
|
exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</table>
|
</table>
|
||||||
<br>
|
<br>
|
||||||
<table width="100%" id="liste">
|
<table width="100%" id="liste">
|
||||||
<tr>
|
<tr>
|
||||||
@@ -295,7 +296,7 @@ $rechte->getBerechtigungen($uid);
|
|||||||
<td></td>
|
<td></td>
|
||||||
</tr
|
</tr
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright 2014 fhcomplete.org
|
* Copyright 2014 fhcomplete.org
|
||||||
@@ -44,41 +43,44 @@ $rechte->getBerechtigungen($uid);
|
|||||||
$studiensemester = new studiensemester();
|
$studiensemester = new studiensemester();
|
||||||
$pruefung = new pruefungCis();
|
$pruefung = new pruefungCis();
|
||||||
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
|
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
|
||||||
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
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');
|
||||||
|
|
||||||
?>
|
?><!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title><?php echo $p->t('pruefung/anmeldungenVerwaltenTitle'); ?></title>
|
<title><?php echo $p->t('pruefung/anmeldungenVerwaltenTitle'); ?></title>
|
||||||
<script src="../../../../include/js/datecheck.js"></script>
|
<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/components/jquery/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.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/jquery-ui.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||||
<script src="./pruefung.js.php"></script>
|
<script src="./pruefung.js.php"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
<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/fhcomplete.css">
|
||||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||||
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.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;
|
|
||||||
}
|
|
||||||
|
|
||||||
#stgWrapper {
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
padding: 10px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#stgWrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 70px;
|
height: 80px;
|
||||||
width: 850px;
|
width: 850px;
|
||||||
padding: 1.8em 1.5em 1.8em 1em;
|
padding: 1.8em 1.5em 1.8em 1em;
|
||||||
/*border-radius: 25px;*/
|
/*border-radius: 25px;*/
|
||||||
border: 1px solid #dddddd;
|
border: 1px solid #dddddd;
|
||||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#studiengaenge {
|
#studiengaenge {
|
||||||
/*border: 1px solid black;*/
|
/*border: 1px solid black;*/
|
||||||
width: 94%;
|
width: 94%;
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -87,10 +89,10 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#prfWrapper {
|
#prfWrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 70%;
|
height: 70%;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
@@ -99,9 +101,9 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
|||||||
/*border-radius: 25px;*/
|
/*border-radius: 25px;*/
|
||||||
border: 1px solid #dddddd;
|
border: 1px solid #dddddd;
|
||||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#pruefungen {
|
#pruefungen {
|
||||||
/*border: 1px solid black;*/
|
/*border: 1px solid black;*/
|
||||||
width: 94%;
|
width: 94%;
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -110,9 +112,9 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
#anmWrapper {
|
#anmWrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
/*top: 45px;*/
|
/*top: 45px;*/
|
||||||
left: 350px;
|
left: 350px;
|
||||||
@@ -123,38 +125,38 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
|||||||
/*border-radius: 25px;*/
|
/*border-radius: 25px;*/
|
||||||
border: 1px solid #dddddd;
|
border: 1px solid #dddddd;
|
||||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#anmeldungen {
|
#anmeldungen {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
#anmeldungen > * {
|
#anmeldungen > * {
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#raum > * {
|
#raum > * {
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#message {
|
#message {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0px;
|
bottom: 0px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 2em;
|
height: 2em;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sortable {
|
#sortable {
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
#sortable li {
|
#sortable li {
|
||||||
margin: 0 3px 3px 3px;
|
margin: 0 3px 3px 3px;
|
||||||
padding: 0.2em 0.4em 0.4em;
|
padding: 0.2em 0.4em 0.4em;
|
||||||
padding-left: 1.5em;
|
padding-left: 1.5em;
|
||||||
@@ -162,37 +164,37 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
|||||||
height: 18px;
|
height: 18px;
|
||||||
list-style-image: none;
|
list-style-image: none;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
#sortable li span {
|
#sortable li span {
|
||||||
/*position: absolute;*/
|
/*position: absolute;*/
|
||||||
margin-left: -1.3em;
|
margin-left: -1.3em;
|
||||||
float:left;
|
float:left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.resultOK {
|
.resultOK {
|
||||||
color: green;
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
.resultNotOK {
|
.resultNotOK {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sortable li a {
|
#sortable li a {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sortable li div {
|
#sortable li div {
|
||||||
float: right;
|
float: right;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.anmerkungInfo {
|
.anmerkungInfo {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
width: 10%;
|
width: 10%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#progressbar {
|
#progressbar {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
top: 30%;
|
top: 30%;
|
||||||
@@ -200,83 +202,84 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
|||||||
margin-left: -150px;
|
margin-left: -150px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
background: '#9CFF29';
|
background: '#9CFF29';
|
||||||
}
|
}
|
||||||
.modalOverlay {
|
.modalOverlay {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||||
}
|
}
|
||||||
|
|
||||||
.studiengang {
|
.studiengang {
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#studiengaenge > div {
|
#studiengaenge > div {
|
||||||
float: left;
|
float: left;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function(){
|
$(document).ready(function()
|
||||||
loadStudiengaenge();
|
{
|
||||||
$("#filter_studiensemester").css("visibility","visible");
|
loadStudiengaenge();
|
||||||
// console.log($("#filter_studiensemester"));
|
$("#filter_studiensemester").css("visibility","visible");
|
||||||
$("#raumDialog").dialog({
|
|
||||||
modal: true,
|
$("#raumDialog").dialog({
|
||||||
autoOpen: false,
|
modal: true,
|
||||||
width: "400px"
|
autoOpen: false,
|
||||||
|
width: "400px"
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
<h1><?php echo $p->t('pruefung/anmeldungenVerwalten'); ?></h1>
|
<h1><?php echo $p->t('pruefung/anmeldungenVerwalten'); ?></h1>
|
||||||
<div id='stgWrapper'>
|
<div id='stgWrapper'>
|
||||||
<div id='studiengaenge'>
|
<div id='studiengaenge'>
|
||||||
<div>
|
<div>
|
||||||
<h2><?php echo $p->t('global/studiengang'); ?></h2>
|
<h2><?php echo $p->t('global/studiengang'); ?></h2>
|
||||||
<div id='stgListe'>
|
<div id='stgListe'>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h2><?php echo $p->t('global/studiensemester'); ?></h2>
|
<h2><?php echo $p->t('global/studiensemester'); ?></h2>
|
||||||
<?php
|
<?php
|
||||||
echo '<select id="filter_studiensemester" onchange="loadPruefungStudiengang();" style="visibility: hidden;">';
|
echo '<select id="filter_studiensemester" onchange="loadPruefungStudiengang();" style="visibility: hidden;">';
|
||||||
$aktuellesSemester = $studiensemester->getaktorNext();
|
$aktuellesSemester = $studiensemester->getaktorNext();
|
||||||
$studiensemester->getAll();
|
$studiensemester->getAll();
|
||||||
foreach($studiensemester->studiensemester as $sem)
|
foreach($studiensemester->studiensemester as $sem)
|
||||||
{
|
{
|
||||||
/*@var $sem studiensemester */
|
/*@var $sem studiensemester */
|
||||||
if($aktuellesSemester == $sem->studiensemester_kurzbz)
|
if ($aktuellesSemester == $sem->studiensemester_kurzbz)
|
||||||
{
|
{
|
||||||
echo '<option selected value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
|
echo '<option selected value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
|
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->bezeichnung.'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo '</select></p>';
|
echo '</select></p>';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id='prfWrapper'>
|
<div id='prfWrapper'>
|
||||||
<div id='pruefungen'>
|
<div id='pruefungen'>
|
||||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||||
<ul id="pruefungenListe">
|
<ul id="pruefungenListe">
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id='anmWrapper'>
|
<div id='anmWrapper'>
|
||||||
<div id="anmeldungen">
|
<div id="anmeldungen">
|
||||||
<h2><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?> <span id='lvdaten'></span></h2>
|
<h2><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?> <span id='lvdaten'></span></h2>
|
||||||
<div id="anmeldung_hinzufuegen">
|
<div id="anmeldung_hinzufuegen">
|
||||||
|
|
||||||
@@ -300,17 +303,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="raumDialog">
|
<div id="raumDialog">
|
||||||
<div id="raum">
|
<div id="raum">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="raumSpeichernButton">
|
<div id="raumSpeichernButton">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="message"></div>
|
<div id="message"></div>
|
||||||
<div id="progressbar"></div>
|
<div id="progressbar"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</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 <[email protected]>
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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
|
<?php
|
||||||
|
|
||||||
/* Copyright (C) 2014 fhcomplete.org
|
/* Copyright (C) 2014 fhcomplete.org
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -18,8 +17,6 @@
|
|||||||
*
|
*
|
||||||
* Authors: Stefan Puraner <[email protected]>
|
* Authors: Stefan Puraner <[email protected]>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
require_once('../../../../config/cis.config.inc.php');
|
require_once('../../../../config/cis.config.inc.php');
|
||||||
require_once('../../../../include/phrasen.class.php');
|
require_once('../../../../include/phrasen.class.php');
|
||||||
require_once('../../../../include/globals.inc.php');
|
require_once('../../../../include/globals.inc.php');
|
||||||
@@ -32,12 +29,9 @@ $p = new phrasen($sprache);
|
|||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Error-Behandlung bei Ajax Requests
|
* Error-Behandlung bei Ajax Requests
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
function loadError(xhr, textStatus, errorThrown)
|
function loadError(xhr, textStatus, errorThrown)
|
||||||
{
|
{
|
||||||
if(xhr.status==200)
|
if(xhr.status==200)
|
||||||
@@ -62,7 +56,7 @@ function loadPruefungenMitarbeiter()
|
|||||||
mitarbeiter_uid: uid
|
mitarbeiter_uid: uid
|
||||||
},
|
},
|
||||||
error: loadError
|
error: loadError
|
||||||
}).success(function(data){
|
}).done(function(data){
|
||||||
$("#pruefungen").find("h2").first().text("<?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?> ("+uid+")");
|
$("#pruefungen").find("h2").first().text("<?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?> ("+uid+")");
|
||||||
if(data.error === 'false')
|
if(data.error === 'false')
|
||||||
{
|
{
|
||||||
@@ -72,7 +66,7 @@ function loadPruefungenMitarbeiter()
|
|||||||
e.pruefung.lehrveranstaltungen.forEach(function(d)
|
e.pruefung.lehrveranstaltungen.forEach(function(d)
|
||||||
{
|
{
|
||||||
d.pruefung.termine.forEach(function(f){
|
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>";
|
liste += "</li></ul>";
|
||||||
@@ -106,7 +100,7 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
|||||||
method: "getNoten"
|
method: "getNoten"
|
||||||
},
|
},
|
||||||
error: loadError
|
error: loadError
|
||||||
}).success(function(data){
|
}).done(function(data){
|
||||||
if(data.error != 'true')
|
if(data.error != 'true')
|
||||||
{
|
{
|
||||||
data.result.forEach(function(d)
|
data.result.forEach(function(d)
|
||||||
@@ -119,7 +113,7 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
|||||||
{
|
{
|
||||||
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
||||||
}
|
}
|
||||||
}).complete(function(event, xhr, settings){
|
}).always(function(event, xhr, settings){
|
||||||
var notenSelect = noten;
|
var notenSelect = noten;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
@@ -131,7 +125,7 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
|||||||
lehrveranstaltung_id: lehrveranstaltung_id
|
lehrveranstaltung_id: lehrveranstaltung_id
|
||||||
},
|
},
|
||||||
error: loadError
|
error: loadError
|
||||||
}).success(function(data){
|
}).done(function(data){
|
||||||
var entry = "";
|
var entry = "";
|
||||||
if(data.error === "false")
|
if(data.error === "false")
|
||||||
{
|
{
|
||||||
@@ -142,11 +136,21 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
|||||||
var datum = d.von.split(" ");
|
var datum = d.von.split(" ");
|
||||||
if(d.pruefung.note===null)
|
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
|
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);
|
$("#anmeldeDaten").append(entry);
|
||||||
if(d.pruefung.note!==null)
|
if(d.pruefung.note!==null)
|
||||||
@@ -173,7 +177,7 @@ function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstalt
|
|||||||
entry = "<div><div>"+data.errormsg+"</div></div>";
|
entry = "<div><div>"+data.errormsg+"</div></div>";
|
||||||
$("#anmeldeDaten").html(entry);
|
$("#anmeldeDaten").html(entry);
|
||||||
}
|
}
|
||||||
}).complete(function(event, xhr, settings){
|
}).always(function(event, xhr, settings){
|
||||||
$("#modalOverlay").removeClass("modalOverlay");
|
$("#modalOverlay").removeClass("modalOverlay");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -217,7 +221,7 @@ function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrver
|
|||||||
pruefungsanmeldung_id: pruefungsanmeldung_id
|
pruefungsanmeldung_id: pruefungsanmeldung_id
|
||||||
},
|
},
|
||||||
error: loadError
|
error: loadError
|
||||||
}).success(function(data){
|
}).done(function(data){
|
||||||
if(data.error != 'true')
|
if(data.error != 'true')
|
||||||
{
|
{
|
||||||
markAsSaved(ele);
|
markAsSaved(ele);
|
||||||
@@ -228,7 +232,7 @@ function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrver
|
|||||||
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
messageBox("message",data.errormsg, "red", "highlight", 1000);
|
||||||
$(ele).parent().find("select").val(null);
|
$(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
|
anmerkung: anmerkung
|
||||||
},
|
},
|
||||||
error: loadError
|
error: loadError
|
||||||
}).success(function(data){
|
}).done(function(data){
|
||||||
if(data.error != 'true')
|
if(data.error != 'true')
|
||||||
{
|
{
|
||||||
markAsSaved(ele);
|
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
|
<?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 <[email protected]>
|
||||||
|
*/
|
||||||
header( 'Expires: -1' );
|
header( 'Expires: -1' );
|
||||||
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
|
||||||
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
|
||||||
@@ -45,115 +63,115 @@ $method = filter_input(INPUT_POST, 'method');
|
|||||||
switch($method)
|
switch($method)
|
||||||
{
|
{
|
||||||
case 'getPruefungMitarbeiter':
|
case 'getPruefungMitarbeiter':
|
||||||
if($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
if ($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||||
{
|
{
|
||||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||||
}
|
}
|
||||||
else if($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
else if ($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||||
{
|
{
|
||||||
$mitarbeiter_uid = $uid;
|
$mitarbeiter_uid = $uid;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['result']='false';
|
$data['result']='false';
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$data = getPruefungMitarbeiter($mitarbeiter_uid);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
$data = getPruefungMitarbeiter($mitarbeiter_uid);
|
|
||||||
break;
|
|
||||||
case 'getNoten':
|
case 'getNoten':
|
||||||
if(!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
if (!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||||
{
|
{
|
||||||
$data['result']='false';
|
$data['result']='false';
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$data = getNoten();
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
$data = getNoten();
|
|
||||||
break;
|
|
||||||
case 'saveBeurteilung':
|
case 'saveBeurteilung':
|
||||||
$lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id');
|
$lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id');
|
||||||
$student_uid = filter_input(INPUT_POST, 'student_uid');
|
$student_uid = filter_input(INPUT_POST, 'student_uid');
|
||||||
if($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
if ($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||||
{
|
{
|
||||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||||
}
|
}
|
||||||
else if($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
else if ($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||||
{
|
{
|
||||||
$mitarbeiter_uid = $uid;
|
$mitarbeiter_uid = $uid;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['result']='false';
|
$data['result']='false';
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
$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;
|
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':
|
case 'updateBeurteilung':
|
||||||
if($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
if ($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||||
{
|
{
|
||||||
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
$mitarbeiter_uid = filter_input(INPUT_POST, 'mitarbeiter_uid');
|
||||||
}
|
}
|
||||||
else if($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
else if ($rechte->isBerechtigt('lehre/pruefungsbeurteilung'))
|
||||||
{
|
{
|
||||||
$mitarbeiter_uid = $uid;
|
$mitarbeiter_uid = $uid;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['result']='false';
|
$data['result']='false';
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
$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;
|
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':
|
case 'loadPruefung':
|
||||||
if(!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && ($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
if (!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && ($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||||
{
|
{
|
||||||
$data['result']='false';
|
$data['result']='false';
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
||||||
|
$data = loadPruefung($pruefung_id);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
$pruefung_id = filter_input(INPUT_POST, 'pruefung_id');
|
|
||||||
$data = loadPruefung($pruefung_id);
|
|
||||||
break;
|
|
||||||
case 'getBeurteilung':
|
case 'getBeurteilung':
|
||||||
if(!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
if (!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||||
{
|
{
|
||||||
$data['result']='false';
|
$data['result']='false';
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
$data['errormsg']=$p->t('global/keineBerechtigung');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$pruefungsanmeldung_id = filter_input(INPUT_POST, 'pruefungsanmeldung_id');
|
||||||
|
$data = getBeurteilung($pruefungsanmeldung_id);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
$pruefungsanmeldung_id = filter_input(INPUT_POST, 'pruefungsanmeldung_id');
|
|
||||||
$data = getBeurteilung($pruefungsanmeldung_id);
|
|
||||||
break;
|
|
||||||
case 'getAnmeldungenTermin':
|
case 'getAnmeldungenTermin':
|
||||||
if(!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
if (!($rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin')) && !($rechte->isBerechtigt('lehre/pruefungsbeurteilung')))
|
||||||
{
|
{
|
||||||
$data['result']='false';
|
$data['result']='false';
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('global/keineBerechtigung');
|
$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;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode($data);
|
echo json_encode($data);
|
||||||
@@ -166,41 +184,41 @@ echo json_encode($data);
|
|||||||
function getPruefungMitarbeiter($uid = null)
|
function getPruefungMitarbeiter($uid = null)
|
||||||
{
|
{
|
||||||
global $p;
|
global $p;
|
||||||
$lehrveranstaltung = new lehrveranstaltung();
|
$lehrveranstaltung = new lehrveranstaltung();
|
||||||
if($uid !== null)
|
if ($uid !== null)
|
||||||
{
|
|
||||||
$lehrveranstaltung->getLVByMitarbeiter($uid);
|
|
||||||
$result = array();
|
|
||||||
foreach($lehrveranstaltung->lehrveranstaltungen as $lv)
|
|
||||||
{
|
{
|
||||||
$pruefung = new pruefungCis();
|
$lehrveranstaltung->getLVByMitarbeiter($uid);
|
||||||
$pruefung->getPruefungByLv($lv->lehrveranstaltung_id);
|
$result = array();
|
||||||
if(!empty($pruefung->lehrveranstaltungen))
|
foreach($lehrveranstaltung->lehrveranstaltungen as $lv)
|
||||||
{
|
|
||||||
foreach($pruefung->lehrveranstaltungen as $tempLv)
|
|
||||||
{
|
{
|
||||||
$prf = new pruefungCis($tempLv->pruefung_id);
|
$pruefung = new pruefungCis();
|
||||||
$prf->getTermineByPruefung();
|
$pruefung->getPruefungByLv($lv->lehrveranstaltung_id);
|
||||||
$tempLv->pruefung = $prf;
|
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))
|
if (!empty($result))
|
||||||
{
|
{
|
||||||
$data['result']=$result;
|
$data['result']=$result;
|
||||||
$data['error']='false';
|
$data['error']='false';
|
||||||
$data['errormsg']='';
|
$data['errormsg']='';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('pruefung/keinePruefungenVorhanden');
|
$data['errormsg']=$p->t('pruefung/keinePruefungenVorhanden');
|
||||||
}
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -209,19 +227,19 @@ function getPruefungMitarbeiter($uid = null)
|
|||||||
*/
|
*/
|
||||||
function getNoten()
|
function getNoten()
|
||||||
{
|
{
|
||||||
$note = new note();
|
$note = new note();
|
||||||
if($note->getAll())
|
if ($note->getAll())
|
||||||
{
|
{
|
||||||
$data['result']=$note->result;
|
$data['result']=$note->result;
|
||||||
$data['error']='false';
|
$data['error']='false';
|
||||||
$data['errormsg']='';
|
$data['errormsg']='';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$note->errormsg;
|
$data['errormsg']=$note->errormsg;
|
||||||
}
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -240,80 +258,78 @@ function getNoten()
|
|||||||
function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid)
|
function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid)
|
||||||
{
|
{
|
||||||
global $p;
|
global $p;
|
||||||
$pruefungCis = new pruefungCis($pruefung_id);
|
$pruefungCis = new pruefungCis($pruefung_id);
|
||||||
$lehrveranstaltung = new lehrveranstaltung();
|
$lehrveranstaltung = new lehrveranstaltung();
|
||||||
$lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid);
|
$lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid);
|
||||||
$pruefung = new pruefung();
|
$pruefung = new pruefung();
|
||||||
$pruefung->new = true;
|
$pruefung->new = true;
|
||||||
if(!empty($lehreinheiten))
|
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))
|
|
||||||
{
|
{
|
||||||
if($pruefung->save())
|
$pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id);
|
||||||
{
|
$pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id);
|
||||||
$data['result']=$pruefung->pruefung_id;
|
|
||||||
$data['error']='false';
|
$pruefung->lehreinheit_id = $lehreinheiten[0];
|
||||||
$data['errormsg']='';
|
$pruefung->student_uid = $student_uid;
|
||||||
}
|
$pruefung->mitarbeiter_uid = $mitarbeiter_uid;
|
||||||
else
|
$pruefung->note = $note;
|
||||||
{
|
$pruefung->pruefungstyp_kurzbz = $pruefungsanmeldung->pruefungstyp_kurzbz;
|
||||||
$data['error']='true';
|
$pruefung->datum = $datum;
|
||||||
$data['errormsg']=$pruefung->errormsg;
|
$pruefung->anmerkung = $anmerkung;
|
||||||
}
|
$pruefung->pruefungsanmeldung_id = $pruefungsanmeldung_id;
|
||||||
if (defined('CIS_PRUEFUNG_SET_ZEUGNISNOTE') && CIS_PRUEFUNG_SET_ZEUGNISNOTE)
|
$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();
|
if ($pruefung->save())
|
||||||
$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);
|
$data['result']=$pruefung->pruefung_id;
|
||||||
|
$data['error']='false';
|
||||||
|
$data['errormsg']='';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['error'] = 'true';
|
$data['error']='true';
|
||||||
$data['errormsg'] = 'Existing Grade';
|
$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
|
else
|
||||||
{
|
{
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('pruefung/terminNichtInDerVergangenheit');
|
$data['errormsg']=$p->t('pruefung/keineLehreinheitenVorhanden');
|
||||||
//$data['errormsg']='Nicht in der Vergangenheit';
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
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)
|
function updateBeurteilung($pruefung_id, $note, $uid, $anmerkung)
|
||||||
{
|
{
|
||||||
global $p;
|
global $p;
|
||||||
$pruefung = new pruefung($pruefung_id);
|
$pruefung = new pruefung($pruefung_id);
|
||||||
$pruefung->new = FALSE;
|
$pruefung->new = FALSE;
|
||||||
$pruefung->note = $note;
|
$pruefung->note = $note;
|
||||||
$pruefung->anmerkung = $anmerkung;
|
$pruefung->anmerkung = $anmerkung;
|
||||||
$pruefung->updatevon = $uid;
|
$pruefung->updatevon = $uid;
|
||||||
$pruefung->updateamum = date('Y-m-d H:i:s');
|
$pruefung->updateamum = date('Y-m-d H:i:s');
|
||||||
if($pruefung->save())
|
if ($pruefung->save())
|
||||||
{
|
{
|
||||||
$data['result']=$pruefung->pruefung_id;
|
$data['result']=$pruefung->pruefung_id;
|
||||||
$data['error']='false';
|
$data['error']='false';
|
||||||
$data['errormsg']='';
|
$data['errormsg']='';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$pruefung->errormsg;
|
$data['errormsg']=$pruefung->errormsg;
|
||||||
}
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -353,19 +369,19 @@ function updateBeurteilung($pruefung_id, $note, $uid, $anmerkung)
|
|||||||
*/
|
*/
|
||||||
function getBeurteilung($pruefungsanmeldung_id)
|
function getBeurteilung($pruefungsanmeldung_id)
|
||||||
{
|
{
|
||||||
$pruefung = new pruefung();
|
$pruefung = new pruefung();
|
||||||
if($pruefung->getPruefungByAnmeldung($pruefungsanmeldung_id))
|
if ($pruefung->getPruefungByAnmeldung($pruefungsanmeldung_id))
|
||||||
{
|
{
|
||||||
$data['result']=$pruefung->pruefung_id;
|
$data['result']=$pruefung->pruefung_id;
|
||||||
$data['error']='false';
|
$data['error']='false';
|
||||||
$data['errormsg']='';
|
$data['errormsg']='';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$pruefung->errormsg;
|
$data['errormsg']=$pruefung->errormsg;
|
||||||
}
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -375,37 +391,37 @@ function getBeurteilung($pruefungsanmeldung_id)
|
|||||||
function getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id)
|
function getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id)
|
||||||
{
|
{
|
||||||
global $p;
|
global $p;
|
||||||
$pruefungsanmeldung = new pruefungsanmeldung();
|
$pruefungsanmeldung = new pruefungsanmeldung();
|
||||||
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
$anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id);
|
||||||
foreach($anmeldungen as $a)
|
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)
|
|
||||||
{
|
{
|
||||||
$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
|
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
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright 2014 fhcomplete.org
|
* Copyright 2014 fhcomplete.org
|
||||||
@@ -50,220 +49,201 @@ $rechte->getBerechtigungen($uid);
|
|||||||
$studiensemester = new studiensemester();
|
$studiensemester = new studiensemester();
|
||||||
$pruefung = new pruefungCis();
|
$pruefung = new pruefungCis();
|
||||||
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
|
$pruefung->getPruefungByMitarbeiter($uid, $studiensemester->getaktorNext());
|
||||||
if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
|
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');
|
||||||
|
|
||||||
?>
|
?><!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Prüfungsbewertung</title>
|
<title>Prüfungsbewertung</title>
|
||||||
<script src="../../../../include/js/datecheck.js"></script>
|
<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/components/jquery/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.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="./pruefung.js.php"></script>
|
||||||
<script src="./pruefungsbewertung.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="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
||||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
<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">
|
<style type="text/css">
|
||||||
body {
|
body {
|
||||||
padding: 10px 0 0 10px;
|
padding: 10px 0 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#prfWrapper {
|
#prfWrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 80%;
|
height: 80%;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
padding: 1.8em 1.5em 1.8em 1em;
|
padding: 1.8em 1.5em 1.8em 1em;
|
||||||
//border-radius: 25px;
|
border: 1px solid #dddddd;
|
||||||
border: 1px solid #dddddd;
|
}
|
||||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
#pruefungen {
|
#pruefungen {
|
||||||
/*border: 1px solid black;*/
|
width: 94%;
|
||||||
width: 94%;
|
position: relative;
|
||||||
position: relative;
|
float: left;
|
||||||
float: left;
|
padding: 0 1em 0em 1em;
|
||||||
padding: 0 1em 0em 1em;
|
height: 100%;
|
||||||
height: 100%;
|
overflow: auto;
|
||||||
overflow: auto;
|
overflow-x: hidden;
|
||||||
overflow-x: hidden;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#anmWrapper {
|
#anmWrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
/*top: 45px;*/
|
left: 360px;
|
||||||
left: 360px;
|
width: 600px;
|
||||||
width: 600px;
|
height: 80%;
|
||||||
height: 80%;
|
padding: 1.8em 1.5em 1.8em 1em;
|
||||||
padding: 1.8em 1.5em 1.8em 1em;
|
border: 1px solid #dddddd;
|
||||||
/*border-radius: 25px;*/
|
}
|
||||||
border: 1px solid #dddddd;
|
|
||||||
/*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
#anmeldungen {
|
#anmeldungen {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
#anmeldungen > div, h2 {
|
#anmeldungen > div, h2 {
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#message {
|
#message {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
right: 0px;
|
right: 0px;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
height: 2em;
|
height: 2em;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.missingFormData {
|
.missingFormData {
|
||||||
border: 2px solid red;
|
border: 2px solid red;
|
||||||
outline: 2px solid red;
|
outline: 2px solid red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modalOverlay {
|
.modalOverlay {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||||
}
|
}
|
||||||
|
|
||||||
.anmeldung {
|
.anmeldung {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
border-bottom: 1px solid black;
|
border-bottom: 1px solid black;
|
||||||
height: 3.5em;
|
margin: 0.5em 0 0 0.5em;
|
||||||
clear: both;
|
padding: 0.5em 0 0 0.5em;
|
||||||
padding: 0.5em 0 0 0.5em;
|
}
|
||||||
}
|
|
||||||
.anmeldung > *{
|
|
||||||
margin: 0 1em 0 0;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.anmeldung:last-child {
|
.saved {
|
||||||
clear: both;
|
background-color: lightgreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
.anmeldung div:first-child {
|
.unsaved {
|
||||||
width: 250px;
|
background-color: lightpink;
|
||||||
height: 100%;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.saved {
|
#wrapper {
|
||||||
background-color: green;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.unsaved {
|
#lektor {
|
||||||
background-color: red;
|
margin: 0 0 1em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#wrapper {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#lektor {
|
|
||||||
margin: 0 0 1em 0;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function()
|
||||||
var isFormHidden = true;
|
{
|
||||||
$("#lektor").autocomplete({
|
var isFormHidden = true;
|
||||||
source: "lektor_autocomplete.php?autocomplete=lektor",
|
$("#lektor").autocomplete({
|
||||||
minLength:2,
|
source: "lektor_autocomplete.php?autocomplete=lektor",
|
||||||
response: function(event, ui)
|
minLength:2,
|
||||||
{
|
response: function(event, ui)
|
||||||
//Value und Label fuer die Anzeige setzen
|
{
|
||||||
for(i in ui.content)
|
//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+")";
|
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)
|
},
|
||||||
{
|
select: function(event, ui)
|
||||||
//Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren
|
{
|
||||||
if (ui.item.mitarbeiter_uid=='')
|
//Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren
|
||||||
{
|
if (ui.item.mitarbeiter_uid=='')
|
||||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
{
|
||||||
$("#uid").val("student");
|
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||||
}
|
$("#uid").val("student");
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
{
|
||||||
$("#uid").val("lektor");
|
$("#mitarbeiter_uid").val(ui.item.uid);
|
||||||
}
|
$("#uid").val("lektor");
|
||||||
if(isFormHidden)
|
}
|
||||||
{
|
if (isFormHidden)
|
||||||
isFormHidden = false;
|
{
|
||||||
$("#wrapper").slideToggle("slow");
|
isFormHidden = false;
|
||||||
}
|
$("#wrapper").slideToggle("slow");
|
||||||
loadPruefungenMitarbeiter();
|
}
|
||||||
}
|
loadPruefungenMitarbeiter();
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
</script>
|
||||||
</script>
|
</head>
|
||||||
|
<body>
|
||||||
<div>
|
<div>
|
||||||
<h1><?php echo $p->t('pruefung/pruefungsbewertungTitle'); ?></h1>
|
<h1><?php echo $p->t('pruefung/pruefungsbewertungTitle'); ?></h1>
|
||||||
<div>
|
<div>
|
||||||
<?php
|
<?php
|
||||||
if(!$rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
if (!$rechte->isBerechtigt('lehre/pruefungsbeurteilungAdmin'))
|
||||||
{
|
{
|
||||||
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
|
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$("#wrapper").attr("style", "display: block");
|
$("#wrapper").attr("style", "display: block");
|
||||||
loadPruefungenMitarbeiter();
|
loadPruefungenMitarbeiter();
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo '<span width="116px">'.$p->t('pruefung/pruefungLektor').': </span>';
|
echo '<span width="116px">'.$p->t('pruefung/pruefungLektor').': </span>';
|
||||||
echo '<input placeholder="UID" type="text" id="lektor" value="" size="30"/>';
|
echo '<input placeholder="UID" type="text" id="lektor" value="" size="30"/>';
|
||||||
echo '<input type="hidden" id="uid" value="" />';
|
echo '<input type="hidden" id="uid" value="" />';
|
||||||
echo '<input type="hidden" id="mitarbeiter_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>
|
||||||
<div id='anmWrapper'>
|
<div id="wrapper">
|
||||||
<div id="anmeldungen">
|
<div id='prfWrapper'>
|
||||||
<h2><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?></h2>
|
<div id='pruefungen'>
|
||||||
<div id="anmeldeDaten">
|
<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>
|
||||||
</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>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright 2014 fhcomplete.org
|
* Copyright 2014 fhcomplete.org
|
||||||
@@ -48,42 +47,45 @@ if(!$rechte->isBerechtigt('lehre/pruefungsfenster'))
|
|||||||
|
|
||||||
function compareOe($a, $b)
|
function compareOe($a, $b)
|
||||||
{
|
{
|
||||||
if($a->organisationseinheittyp_kurzbz == $b->organisationseinheittyp_kurzbz)
|
if($a->organisationseinheittyp_kurzbz == $b->organisationseinheittyp_kurzbz)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return ($a->organisationseinheittyp_kurzbz < $b->organisationseinheittyp_kurzbz) ? -1 : 1;
|
return ($a->organisationseinheittyp_kurzbz < $b->organisationseinheittyp_kurzbz) ? -1 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?><!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title><?php echo $p->t('pruefung/titlePruefungsfenster') ?></title>
|
<title><?php echo $p->t('pruefung/titlePruefungsfenster') ?></title>
|
||||||
<script src="../../../../include/js/datecheck.js"></script>
|
<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/components/jquery/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.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/jquery-ui.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
<script type="text/javascript" src="../../../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
<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/fhcomplete.css">
|
||||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
||||||
<link rel="stylesheet" href="../../../../skin/tablesort.css">
|
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/theme.default.min.css">
|
||||||
</head>
|
<link rel="stylesheet" href="../../../../vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css">
|
||||||
<body>
|
</head>
|
||||||
<script>
|
<body>
|
||||||
$(document).ready(function() {
|
<script>
|
||||||
$("#startDate").datepicker({
|
$(document).ready(function() {
|
||||||
minDate: new Date()
|
$("#startDate").datepicker({
|
||||||
});
|
minDate: new Date()
|
||||||
$("#endDate").datepicker({
|
});
|
||||||
minDate: +1
|
$("#endDate").datepicker({
|
||||||
});
|
minDate: +1
|
||||||
$("#prfTable").tablesorter({
|
});
|
||||||
widgets: ["zebra"]
|
$("#prfTable").tablesorter({
|
||||||
});
|
widgets: ["zebra"]
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php
|
<?php
|
||||||
$datum = new datum();
|
$datum = new datum();
|
||||||
$method = "";
|
$method = "";
|
||||||
@@ -96,155 +98,140 @@ $studiensemester->getAll();
|
|||||||
|
|
||||||
if (isset($_POST["method"]) && $_POST["method"] == "save")
|
if (isset($_POST["method"]) && $_POST["method"] == "save")
|
||||||
{
|
{
|
||||||
$method = $_POST["method"];
|
$method = $_POST["method"];
|
||||||
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
||||||
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
|
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
|
||||||
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
|
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
|
||||||
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
|
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
|
||||||
|
|
||||||
if ($endDate != false && $startDate != false)
|
if ($endDate != false && $startDate != false)
|
||||||
{
|
{
|
||||||
if ($datum->DateDiff($startDate, $endDate) >= 0)
|
if ($datum->DateDiff($startDate, $endDate) >= 0)
|
||||||
{
|
{
|
||||||
if ($datum->DateDiff(date("Y-m-d"), $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 = new pruefungsfenster();
|
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
||||||
$pruefungsfenster->new = true;
|
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
||||||
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
$pruefungsfenster->start = $startDate;
|
||||||
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
$pruefungsfenster->ende = $endDate;
|
||||||
$pruefungsfenster->start = $startDate;
|
if ($pruefungsfenster->save())
|
||||||
$pruefungsfenster->ende = $endDate;
|
{
|
||||||
if ($pruefungsfenster->save())
|
echo $p->t('pruefung/erfolgreichgespeichert');
|
||||||
{
|
}
|
||||||
echo $p->t('pruefung/erfolgreichgespeichert');
|
else {
|
||||||
}
|
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
||||||
else {
|
}
|
||||||
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
}
|
||||||
}
|
else
|
||||||
// }
|
{
|
||||||
// else
|
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
||||||
// {
|
}
|
||||||
// echo "Fehler: Startdatum liegt in der Vergangenheit.";
|
}
|
||||||
// }
|
else
|
||||||
}
|
{
|
||||||
else
|
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
||||||
{
|
}
|
||||||
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
}
|
||||||
}
|
else
|
||||||
}
|
{
|
||||||
else
|
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
||||||
{
|
}
|
||||||
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if(isset($_POST["method"]) && $_POST["method"] == "update")
|
else if(isset($_POST["method"]) && $_POST["method"] == "update")
|
||||||
{
|
{
|
||||||
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
$studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : "");
|
||||||
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
|
$oe_kurzbz = (isset($_POST["oe_kurzbz"]) ? $_POST["oe_kurzbz"] : "");
|
||||||
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
|
$startDate = (isset($_POST["startDate"]) ? $datum->formatDatum($_POST["startDate"], "Y-m-d") : "");
|
||||||
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
|
$endDate = (isset($_POST["endDate"]) ? $datum->formatDatum($_POST["endDate"], "Y-m-d") : "");
|
||||||
|
|
||||||
if ($endDate != false && $startDate != false)
|
if ($endDate != false && $startDate != false)
|
||||||
{
|
{
|
||||||
if ($datum->DateDiff($startDate, $endDate) >= 0)
|
if ($datum->DateDiff($startDate, $endDate) >= 0)
|
||||||
{
|
{
|
||||||
if ($datum->DateDiff(date("Y-m-d"), $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_id = $_POST["id"];
|
$pruefungsfenster->load($pruefungsfenster_id);
|
||||||
$pruefungsfenster = new pruefungsfenster();
|
|
||||||
$pruefungsfenster->load($pruefungsfenster_id);
|
|
||||||
|
|
||||||
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||||
{
|
{
|
||||||
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
$pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected;
|
||||||
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
$pruefungsfenster->oe_kurzbz = $oe_kurzbz;
|
||||||
$pruefungsfenster->start = $startDate;
|
$pruefungsfenster->start = $startDate;
|
||||||
$pruefungsfenster->ende = $endDate;
|
$pruefungsfenster->ende = $endDate;
|
||||||
if ($pruefungsfenster->save())
|
if ($pruefungsfenster->save())
|
||||||
{
|
{
|
||||||
echo $p->t('pruefung/erfolgreichgeaendert');
|
echo $p->t('pruefung/erfolgreichgeaendert');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo $p->t('pruefung/keineBerechtigungZumAendernDesDatensatzes');
|
echo $p->t('pruefung/keineBerechtigungZumAendernDesDatensatzes');
|
||||||
}
|
}
|
||||||
// }
|
}
|
||||||
// else
|
else
|
||||||
// {
|
{
|
||||||
// echo "Fehler: Startdatum liegt in der Vergangenheit.";
|
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit');
|
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo $p->t('pruefung/fehlerEndDatumVorStartDatum');
|
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo $p->t('pruefung/fehlerDatumNichtKorrekt');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="update")
|
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="update")
|
||||||
{
|
{
|
||||||
$pruefungsfenster_id = $_GET["id"];
|
$pruefungsfenster_id = $_GET["id"];
|
||||||
$pruefungsfenster = new pruefungsfenster();
|
$pruefungsfenster = new pruefungsfenster();
|
||||||
$pruefungsfenster->load($pruefungsfenster_id);
|
$pruefungsfenster->load($pruefungsfenster_id);
|
||||||
if(!in_array($pruefungsfenster->oe_kurzbz, $oe))
|
if(!in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||||
{
|
{
|
||||||
echo $p->t('pruefung/keineBerechtigungZumAnzeigenDesDatensatzes');
|
echo $p->t('pruefung/keineBerechtigungZumAnzeigenDesDatensatzes');
|
||||||
$pruefungsfenster = new pruefungsfenster();
|
$pruefungsfenster = new pruefungsfenster();
|
||||||
}
|
}
|
||||||
$method = $_GET["method"];
|
$method = $_GET["method"];
|
||||||
}
|
}
|
||||||
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="delete")
|
else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="delete")
|
||||||
{
|
{
|
||||||
$pruefungsfenster_id = $_GET["id"];
|
$pruefungsfenster_id = $_GET["id"];
|
||||||
$pruefungsfenster = new pruefungsfenster();
|
$pruefungsfenster = new pruefungsfenster();
|
||||||
$pruefungsfenster->load($pruefungsfenster_id);
|
$pruefungsfenster->load($pruefungsfenster_id);
|
||||||
|
|
||||||
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
if(in_array($pruefungsfenster->oe_kurzbz, $oe))
|
||||||
{
|
{
|
||||||
if(!$pruefungsfenster->hasPruefungen($pruefungsfenster_id) && $pruefungsfenster->errormsg === null)
|
if(!$pruefungsfenster->hasPruefungen($pruefungsfenster_id) && $pruefungsfenster->errormsg === null)
|
||||||
{
|
{
|
||||||
|
|
||||||
if($pruefungsfenster->delete($pruefungsfenster_id))
|
if($pruefungsfenster->delete($pruefungsfenster_id))
|
||||||
{
|
{
|
||||||
echo $p->t('pruefung/erfolgreichgeloescht');
|
echo $p->t('pruefung/erfolgreichgeloescht');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo "Fehler: ".$pruefungsfenster->errormsg;
|
echo "Fehler: ".$pruefungsfenster->errormsg;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
else
|
||||||
else
|
{
|
||||||
{
|
echo $p->t('pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen');
|
||||||
echo $p->t('pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen');
|
}
|
||||||
}
|
$method = $_GET["method"];
|
||||||
$method = $_GET["method"];
|
}
|
||||||
}
|
else
|
||||||
else
|
{
|
||||||
{
|
echo $p->t('pruefung/keineBerechtigungZumLoeschenDesDatensatzes');
|
||||||
echo $p->t('pruefung/keineBerechtigungZumLoeschenDesDatensatzes');
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$prfFenster = new pruefungsfenster();
|
$prfFenster = new pruefungsfenster();
|
||||||
@@ -252,146 +239,146 @@ $prfFenster->getAll("start");
|
|||||||
if($method != "update")
|
if($method != "update")
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
||||||
<h2><?php echo $p->t('pruefung/neuesPruefungsfensterAnlegen'); ?></h2>
|
<h2><?php echo $p->t('pruefung/neuesPruefungsfensterAnlegen'); ?></h2>
|
||||||
<div>
|
<div>
|
||||||
<form method="POST" action="pruefungsfenster_anlegen.php">
|
<form method="POST" action="pruefungsfenster_anlegen.php">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="hidden" name="method" value="save"></td>
|
<td><input type="hidden" name="method" value="save"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
||||||
<td>
|
<td>
|
||||||
<select id="studiensemester" name="studiensemester">
|
<select id="studiensemester" name="studiensemester">
|
||||||
<?php
|
<?php
|
||||||
$aktuellesSemester = $studiensemester->getSemesterFromDatum(date("Y-m-d"));
|
$aktuellesSemester = $studiensemester->getSemesterFromDatum(date("Y-m-d"));
|
||||||
foreach ($studiensemester->studiensemester as $result)
|
foreach ($studiensemester->studiensemester as $result)
|
||||||
{
|
{
|
||||||
if($aktuellesSemester == $result->studiensemester_kurzbz)
|
if($aktuellesSemester == $result->studiensemester_kurzbz)
|
||||||
{
|
{
|
||||||
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
||||||
<td>
|
<td>
|
||||||
<select id="oe_kurzbz" name="oe_kurzbz">
|
<select id="oe_kurzbz" name="oe_kurzbz">
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$oe_array = array();
|
$oe_array = array();
|
||||||
|
|
||||||
foreach ($oe as $result)
|
foreach ($oe as $result)
|
||||||
{
|
{
|
||||||
$organisationseinheit = new organisationseinheit();
|
$organisationseinheit = new organisationseinheit();
|
||||||
$organisationseinheit->load($result);
|
$organisationseinheit->load($result);
|
||||||
array_push($oe_array, $organisationseinheit);
|
array_push($oe_array, $organisationseinheit);
|
||||||
}
|
}
|
||||||
|
|
||||||
usort($oe_array, "compareOe");
|
usort($oe_array, "compareOe");
|
||||||
|
|
||||||
foreach ($oe_array as $result)
|
foreach ($oe_array as $result)
|
||||||
{
|
{
|
||||||
echo '<option value="'.$result->oe_kurzbz.'">'.$result->organisationseinheittyp_kurzbz.' '.$result->bezeichnung.'</option>';
|
echo '<option value="'.$result->oe_kurzbz.'">'.$result->organisationseinheittyp_kurzbz.' '.$result->bezeichnung.'</option>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
||||||
<td><input type="text" id="startDate" name="startDate"></td>
|
<td><input type="text" id="startDate" name="startDate"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
||||||
<td><input type="text" id="endDate" name="endDate"></td>
|
<td><input type="text" id="endDate" name="endDate"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
<h1><?php echo $p->t('pruefung/pruefungsfensterVerwaltung'); ?></h1>
|
||||||
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
||||||
<div>
|
<div>
|
||||||
<form method="POST" action="pruefungsfenster_anlegen.php">
|
<form method="POST" action="pruefungsfenster_anlegen.php">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="hidden" name="method" value="update"></td>
|
<td><input type="hidden" name="method" value="update"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="hidden" name="id" value="<?php echo $pruefungsfenster->pruefungsfenster_id; ?>"></td>
|
<td><input type="hidden" name="id" value="<?php echo $pruefungsfenster->pruefungsfenster_id; ?>"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
<td><?php echo $p->t('global/studiensemester'); ?>: </td>
|
||||||
<td>
|
<td>
|
||||||
<select id="studiensemester" name="studiensemester">
|
<select id="studiensemester" name="studiensemester">
|
||||||
<?php
|
<?php
|
||||||
foreach ($studiensemester->studiensemester as $result)
|
foreach ($studiensemester->studiensemester as $result)
|
||||||
{
|
{
|
||||||
if($result->studiensemester_kurzbz == $pruefungsfenster->studiensemester_kurzbz)
|
if($result->studiensemester_kurzbz == $pruefungsfenster->studiensemester_kurzbz)
|
||||||
{
|
{
|
||||||
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
echo '<option selected>'.$result->studiensemester_kurzbz.'</option>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
echo '<option>'.$result->studiensemester_kurzbz.'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
<td><?php echo $p->t('global/organisationseinheit'); ?>: </td>
|
||||||
<td>
|
<td>
|
||||||
<select id="oe_kurzbz" name="oe_kurzbz">
|
<select id="oe_kurzbz" name="oe_kurzbz">
|
||||||
<?php
|
<?php
|
||||||
foreach ($oe as $result)
|
foreach ($oe as $result)
|
||||||
{
|
{
|
||||||
if($result == $pruefungsfenster->oe_kurzbz)
|
if($result == $pruefungsfenster->oe_kurzbz)
|
||||||
{
|
{
|
||||||
echo '<option selected>'.$result.'</option>';
|
echo '<option selected>'.$result.'</option>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo '<option>'.$result.'</option>';
|
echo '<option>'.$result.'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
<td><?php echo $p->t('pruefung/start'); ?>: </td>
|
||||||
<td><input type="text" id="startDate" name="startDate" value="<?php echo $pruefungsfenster->start; ?>"></td>
|
<td><input type="text" id="startDate" name="startDate" value="<?php echo $pruefungsfenster->start; ?>"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
<td><?php echo $p->t('pruefung/ende'); ?>: </td>
|
||||||
<td><input type="text" id="endDate" name="endDate" value="<?php echo $pruefungsfenster->ende; ?>"></td>
|
<td><input type="text" id="endDate" name="endDate" value="<?php echo $pruefungsfenster->ende; ?>"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="submit" value="<?php echo $p->t('global/speichern'); ?>"></td>
|
<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>
|
<td><a href="pruefungsfenster_anlegen.php"><input type="button" value="<?php echo $p->t('global/abbrechen'); ?>"></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Wenn ein Datensatz um bearbeiten ausgewählt wurde,
|
* Wenn ein Datensatz um bearbeiten ausgewählt wurde,
|
||||||
@@ -400,59 +387,59 @@ else
|
|||||||
|
|
||||||
if((isset($_GET["id"]) && $method!="update") || !isset($_GET["id"]))
|
if((isset($_GET["id"]) && $method!="update") || !isset($_GET["id"]))
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
<h2><?php echo $p->t('pruefung/pruefungsfensterBearbeiten'); ?></h2>
|
||||||
<div style="width: 50%;">
|
<div style="width: 50%;">
|
||||||
<?php
|
<?php
|
||||||
if(!empty($prfFenster->result)){
|
if(!empty($prfFenster->result)){
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<table class="tablesorter" id="prfTable">
|
<table class="tablesorter" id="prfTable">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
||||||
<th><?php echo $p->t('global/organisationseinheit'); ?></th>
|
<th><?php echo $p->t('global/organisationseinheit'); ?></th>
|
||||||
<th><?php echo $p->t('pruefung/start'); ?></th>
|
<th><?php echo $p->t('pruefung/start'); ?></th>
|
||||||
<th><?php echo $p->t('pruefung/ende'); ?></th>
|
<th><?php echo $p->t('pruefung/ende'); ?></th>
|
||||||
<th><?php echo $p->t('global/bearbeiten'); ?></th>
|
<th><?php echo $p->t('global/bearbeiten'); ?></th>
|
||||||
<th><?php echo $p->t('global/loeschen'); ?></th>
|
<th><?php echo $p->t('global/loeschen'); ?></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php
|
<?php
|
||||||
$organisationseinheit = new organisationseinheit();
|
$organisationseinheit = new organisationseinheit();
|
||||||
foreach ($prfFenster->result as $result)
|
foreach ($prfFenster->result as $result)
|
||||||
{
|
{
|
||||||
if(in_array($result->oe_kurzbz, $oe))
|
if(in_array($result->oe_kurzbz, $oe))
|
||||||
{
|
{
|
||||||
$organisationseinheit->load($result->oe_kurzbz);
|
$organisationseinheit->load($result->oe_kurzbz);
|
||||||
echo
|
echo
|
||||||
'<tr>
|
'<tr>
|
||||||
<td>'.$result->studiensemester_kurzbz.'</td>
|
<td>'.$result->studiensemester_kurzbz.'</td>
|
||||||
<td>'.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.'</td>
|
<td>'.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.'</td>
|
||||||
<td>'.$result->start.'</td>
|
<td>'.$result->start.'</td>
|
||||||
<td>'.$result->ende.'</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=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>
|
<td><a href="pruefungsfenster_anlegen.php?method=delete&id='.$result->pruefungsfenster_id.'">'. $p->t('global/loeschen').'</a></td>
|
||||||
</tr>';
|
</tr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
'<tr>
|
'<tr>
|
||||||
<td>'.$p->t('pruefung/keinePruefungsfensterGespeichert').'</td>
|
<td>'.$p->t('pruefung/keinePruefungsfensterGespeichert').'</td>
|
||||||
</tr>';
|
</tr>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,3 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright 2014 fhcomplete.org
|
* Copyright 2014 fhcomplete.org
|
||||||
@@ -55,7 +54,7 @@ $studiensemester = new studiensemester();
|
|||||||
$lehrveranstaltung = new lehrveranstaltung();
|
$lehrveranstaltung = new lehrveranstaltung();
|
||||||
$lehrveranstaltung->loadLVAfromMitarbeiter(0, $uid, $studiensemester->getaktorNext());
|
$lehrveranstaltung->loadLVAfromMitarbeiter(0, $uid, $studiensemester->getaktorNext());
|
||||||
if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
|
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']))
|
if (!ctype_digit($_GET['termin_id']))
|
||||||
die('Wrong Parameter');
|
die('Wrong Parameter');
|
||||||
@@ -129,52 +128,55 @@ foreach ($anmeldungen as $row)
|
|||||||
$uids .= $row->uid.'@'.DOMAIN.'<br>';
|
$uids .= $row->uid.'@'.DOMAIN.'<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?><!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
||||||
<script src="../../../../include/js/datecheck.js"></script>
|
<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/components/jquery/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js"></script>
|
||||||
<script src="./pruefung.js.php"></script>
|
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
<script type="text/javascript" src="../../../../vendor/components/jqueryui/ui/i18n/datepicker-de.js"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
<script src="./pruefung.js.php"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/tablesort.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">
|
<style type="text/css">
|
||||||
#message {
|
#message {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
right: 0px;
|
right: 0px;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
height: 2em;
|
height: 2em;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.missingFormData {
|
.missingFormData {
|
||||||
border: 2px solid red;
|
border: 2px solid red;
|
||||||
outline: 2px solid red;
|
outline: 2px solid red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modalOverlay {
|
.modalOverlay {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||||
}
|
}
|
||||||
|
|
||||||
#prfDetails, #prfVerwaltung {
|
#prfDetails, #prfVerwaltung {
|
||||||
margin: 1em;
|
margin: 1em;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body style="padding-top:20px">
|
<body style="padding-top:20px">
|
||||||
<center>
|
<center>
|
||||||
<form name="change_termin" action="./pruefungstermin_aendern.php" method="GET">
|
<form name="change_termin" action="./pruefungstermin_aendern.php" method="GET">
|
||||||
<table>
|
<table>
|
||||||
@@ -220,5 +222,5 @@ foreach ($anmeldungen as $row)
|
|||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</center>
|
</center>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright 2014 fhcomplete.org
|
* Copyright 2014 fhcomplete.org
|
||||||
@@ -50,26 +49,29 @@ $rechte->getBerechtigungen($uid);
|
|||||||
$studiensemester = new studiensemester();
|
$studiensemester = new studiensemester();
|
||||||
$lehrveranstaltung = new lehrveranstaltung();
|
$lehrveranstaltung = new lehrveranstaltung();
|
||||||
$lehrveranstaltung->loadLVAfromMitarbeiter(0, $uid, $studiensemester->getaktorNext());
|
$lehrveranstaltung->loadLVAfromMitarbeiter(0, $uid, $studiensemester->getaktorNext());
|
||||||
if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
|
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');
|
||||||
|
|
||||||
?>
|
?><!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
<title><?php echo $p->t('pruefung/titlePruefungstermin'); ?></title>
|
||||||
<script src="../../../../include/js/datecheck.js"></script>
|
<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/components/jquery/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js"></script>
|
||||||
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
<script type="text/javascript" src="../../../../vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js"></script>
|
||||||
<script src="./pruefung.js.php"></script>
|
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/fhcomplete.css">
|
<script src="./pruefung.js.php"></script>
|
||||||
<link rel="stylesheet" href="../../../../skin/style.css.php">
|
<link rel="stylesheet" href="../../../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
|
||||||
<link rel="stylesheet" href="../../../../skin/tablesort.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">
|
<style type="text/css">
|
||||||
#message {
|
#message {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
right: 0px;
|
right: 0px;
|
||||||
@@ -77,250 +79,250 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
|
|||||||
height: 2em;
|
height: 2em;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.missingFormData {
|
.missingFormData {
|
||||||
border: 2px solid red;
|
border: 2px solid red;
|
||||||
outline: 2px solid red;
|
outline: 2px solid red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modalOverlay {
|
.modalOverlay {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
background-color: rgba(0,0,0,0.3); /* black semi-transparent */
|
||||||
}
|
}
|
||||||
|
|
||||||
#prfDetails, #prfVerwaltung {
|
#prfDetails, #prfVerwaltung {
|
||||||
margin: 1em;
|
margin: 1em;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
<script>
|
||||||
<body>
|
$(document).ready(function()
|
||||||
<script>
|
{
|
||||||
$(document).ready(function() {
|
$("#einzeln").bind("change", function()
|
||||||
$("#einzeln").bind("change", function(){
|
{
|
||||||
if($("#einzeln").prop("checked") === true)
|
if ($("#einzeln").prop("checked") === true)
|
||||||
{
|
{
|
||||||
$("#pruefungsintervall").closest("tr").css("visibility", "visible");
|
$("#pruefungsintervall").closest("tr").css("visibility", "visible");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$("#pruefungsintervall").closest("tr").css("visibility", "hidden");
|
$("#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;
|
</script>
|
||||||
$("#lektor").autocomplete({
|
</head>
|
||||||
source: "lektor_autocomplete.php?autocomplete=lektor",
|
<body>
|
||||||
minLength:2,
|
<div id="prfVerwaltung">
|
||||||
response: function(event, ui)
|
<h1><?php echo $p->t('pruefung/pruefungenVerwalten'); ?></h1>
|
||||||
{
|
<table>
|
||||||
//Value und Label fuer die Anzeige setzen
|
<tr>
|
||||||
for(i in ui.content)
|
<?php
|
||||||
{
|
if (!$rechte->isBerechtigt('lehre/pruefungsterminAdmin'))
|
||||||
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+")";
|
echo '<input id="mitarbeiter_uid" type="hidden" value="'.$uid.'"/>
|
||||||
}
|
<script>
|
||||||
},
|
$(document).ready(function() {
|
||||||
select: function(event, ui)
|
$("#prfVerwaltung form").attr("style", "display: block");
|
||||||
{
|
loadPruefungstypen("false");
|
||||||
//Ausgewaehlte Ressource zuweisen und Textfeld wieder leeren
|
loadStudiensemester();
|
||||||
if (ui.item.mitarbeiter_uid=='')
|
loadAllPruefungen();
|
||||||
{
|
});
|
||||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
</script>';
|
||||||
$("#uid").val("student");
|
}
|
||||||
}
|
else
|
||||||
else
|
{
|
||||||
{
|
echo '<td width="116px">'.$p->t('pruefung/pruefungLektor').':</td>';
|
||||||
$("#mitarbeiter_uid").val(ui.item.uid);
|
echo '<td width="250px"><input placeholder="UID" type="text" id="lektor" value="" size="30"/></td>';
|
||||||
$("#uid").val("lektor");
|
echo '<input type="hidden" id="uid" value="" />';
|
||||||
}
|
echo '<input type="hidden" id="mitarbeiter_uid" value="" />';
|
||||||
if(isFormHidden)
|
}
|
||||||
{
|
?>
|
||||||
isFormHidden = false;
|
</tr>
|
||||||
$("#prfVerwaltung form").slideToggle("slow");
|
</table>
|
||||||
}
|
<form method="post" action="pruefungstermin_festlegen.php" style="display: none;">
|
||||||
// loadAllPruefungen();
|
<input type="hidden" name="method" value="save">
|
||||||
resetPruefungsverwaltung();
|
<table>
|
||||||
// loadPruefungstypen("false");
|
|
||||||
// loadStudiensemester();
|
|
||||||
// loadAllPruefungen();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<div id="prfVerwaltung">
|
|
||||||
<h1><?php echo $p->t('pruefung/pruefungenVerwalten'); ?></h1>
|
|
||||||
<table>
|
|
||||||
<tr>
|
<tr>
|
||||||
<?php
|
<td><?php echo $p->t('pruefung/pruefungTitel'); ?>:</td>
|
||||||
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>
|
<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="15">15</option>
|
||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
<option value="30">30</option>
|
<option value="30">30</option>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align: top;"><?php echo $p->t('global/lehrveranstaltung'); ?>:</td>
|
<td style="vertical-align: top;"><?php echo $p->t('global/lehrveranstaltung'); ?>:</td>
|
||||||
<td>
|
<td>
|
||||||
<div id="lvDropdowns">
|
<div id="lvDropdowns">
|
||||||
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
|
<select id="lvDropdown1" onchange="lehrveranstaltungDropdownhinzufuegen(this, false);" name="lv[]">
|
||||||
<!--Daten werden per JavaScript geladen-->
|
<!--Daten werden per JavaScript geladen-->
|
||||||
</select></br>
|
</select><br />
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align: top;"><a name="termin"><?php echo $p->t('pruefung/pruefungTermin'); ?>:</a></td>
|
<td style="vertical-align: top;"><a name="termin"><?php echo $p->t('pruefung/pruefungTermin'); ?>:</a></td>
|
||||||
<td>
|
<td>
|
||||||
<div>
|
<div>
|
||||||
<table width="500px" style="text-align: right;">
|
<?php
|
||||||
<thead>
|
if (defined('CIS_PRUEFUNGSTERMIN_FRIST'))
|
||||||
<tr>
|
{
|
||||||
<th><?php echo $p->t('global/datum'); ?></th>
|
$terminfrist = CIS_PRUEFUNGSTERMIN_FRIST;
|
||||||
<th><?php echo $p->t('global/von'); ?></th>
|
}
|
||||||
<th><?php echo $p->t('global/bis'); ?></th>
|
else
|
||||||
<th><?php echo $p->t('pruefung/pruefungMinTeilnehmer'); ?></th>
|
{
|
||||||
<th><?php echo $p->t('pruefung/pruefungMaxTeilnehmer'); ?></th>
|
$terminfrist = 14;
|
||||||
<th><?php echo $p->t('pruefung/pruefungSammelklausur'); ?></th>
|
}
|
||||||
<th></th>
|
echo $p->t('pruefung/TerminVorlaufzeit',array($terminfrist));
|
||||||
</tr>
|
?>
|
||||||
</thead>
|
<table width="500px" >
|
||||||
<tbody id="prfTermin">
|
<thead>
|
||||||
<tr id="row1">
|
<tr>
|
||||||
<td>
|
<th><?php echo $p->t('global/datum'); ?></th>
|
||||||
<input type="text" id="termin1" name="termin[]">
|
<th><?php echo $p->t('global/von'); ?></th>
|
||||||
</td>
|
<th><?php echo $p->t('global/bis'); ?></th>
|
||||||
<td>
|
<th><?php echo $p->t('pruefung/pruefungMinTeilnehmer'); ?></th>
|
||||||
<input type="time" id="termin1Beginn" placeholder="00:00" name="termin1Beginn[]">
|
<th><?php echo $p->t('pruefung/pruefungMaxTeilnehmer'); ?></th>
|
||||||
</td>
|
<th><?php echo $p->t('pruefung/pruefungSammelklausur'); ?></th>
|
||||||
<td>
|
<th></th>
|
||||||
<input type="time" id="termin1Ende" placeholder="00:00" name="termin1Ende[]">
|
</tr>
|
||||||
</td>
|
</thead>
|
||||||
<td>
|
<tbody id="prfTermin">
|
||||||
<input type="number" id="termin1min" placeholder="0" min="0" name="termin1minTeilnehmer[]">
|
<tr id="row1">
|
||||||
</td>
|
<td>
|
||||||
<td>
|
<input type="text" id="termin1" name="termin[]">
|
||||||
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
|
</td>
|
||||||
</td>
|
<td>
|
||||||
<td>
|
<input type="time" id="termin1Beginn" placeholder="00:00" name="termin1Beginn[]">
|
||||||
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
|
</td>
|
||||||
</td>
|
<td>
|
||||||
<td>
|
<input type="time" id="termin1Ende" placeholder="00:00" name="termin1Ende[]">
|
||||||
<input id="termin1sammelklausur" type="checkbox" name="sammelklausur">
|
</td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<input type="number" id="termin1min" placeholder="0" min="0" name="termin1minTeilnehmer[]">
|
||||||
</tbody>
|
</td>
|
||||||
</table>
|
<td>
|
||||||
</div>
|
<input type="number" id="termin1max" placeholder="10" min="0" name="termin1maxTeilnehmer[]">
|
||||||
<a href="#termin" onclick="terminHinzufuegen();"><?php echo $p->t('pruefung/pruefungTerminHinzufuegen'); ?></a>
|
</td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<input id="termin1sammelklausur" type="checkbox" name="sammelklausur">
|
||||||
<tr>
|
</td>
|
||||||
<td> </td><td><input id="buttonSave" type="button" value="<?php echo $p->t('global/speichern'); ?>" onclick='savePruefungstermin();'></td>
|
</tr>
|
||||||
</tr>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
<a href="#termin" onclick="terminHinzufuegen();"><?php echo $p->t('pruefung/pruefungTerminHinzufuegen'); ?></a>
|
||||||
<div id="prfDetails">
|
</td>
|
||||||
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
</tr>
|
||||||
<div style="width: 75%;">
|
<tr>
|
||||||
<table class="tablesorter" id="prfTable">
|
<td> </td><td><input id="buttonSave" type="button" value="<?php echo $p->t('global/speichern'); ?>" onclick='savePruefungstermin();'></td>
|
||||||
<thead>
|
</tr>
|
||||||
<tr>
|
</table>
|
||||||
<th><?php echo $p->t('pruefung/pruefungTitel'); ?></th>
|
</form>
|
||||||
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
</div>
|
||||||
<th><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
<div id="prfDetails">
|
||||||
<th><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
<h2><?php echo $p->t('pruefung/pruefungPruefungenTitle'); ?></h2>
|
||||||
<th><?php echo $p->t('pruefung/pruefungMethode'); ?></th>
|
<div style="width: 75%;">
|
||||||
<th><?php echo $p->t('pruefung/pruefungTyp'); ?></th>
|
<table class="tablesorter" id="prfTable">
|
||||||
<th><?php echo $p->t('pruefung/pruefungEinzelpruefung'); ?></th>
|
<thead>
|
||||||
<th><?php echo $p->t('pruefung/pruefungMitarbeiter'); ?></th>
|
<tr>
|
||||||
<th><?php echo $p->t('pruefung/storniert'); ?></th>
|
<th><?php echo $p->t('pruefung/pruefungTitel'); ?></th>
|
||||||
</tr>
|
<th><?php echo $p->t('global/studiensemester'); ?></th>
|
||||||
</thead>
|
<th><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||||
<tbody>
|
<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>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id='message'></div>
|
<div id='message'></div>
|
||||||
<div id="modalOverlay"></div>
|
<div id="modalOverlay"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1098,7 +1098,7 @@ function StudentProjektbetreuerLoadMitarbeiterDaten()
|
|||||||
// ****
|
// ****
|
||||||
function StudentProjektbetreuerNeuePerson()
|
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/zuerstPruefungAuswaehlen'] = 'Zuerst Prüfung auswählen.';
|
||||||
$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'von Lektor hinzugefügt';
|
$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'von Lektor hinzugefügt';
|
||||||
$this->phrasen['pruefung/bestaetigen'] = 'Bestätigen';
|
$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/bestaetigt'] = 'bestätigt';
|
||||||
$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von';
|
$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von';
|
||||||
$this->phrasen['pruefung/reihungSpeichern'] = 'Reihung speichern';
|
$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/emailVerschiebungSubject'] = 'Verschiebung einer Prüfung';
|
||||||
|
|
||||||
$this->phrasen['pruefung/AnrechnungInStudiengang'] = 'Studiengang für Anrechnung';
|
$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/zuerstPruefungAuswaehlen'] = 'Zuerst Prüfung auswählen.';
|
||||||
$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'von Lektor hinzugefügt';
|
$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'von Lektor hinzugefügt';
|
||||||
$this->phrasen['pruefung/bestaetigen'] = 'Bestätigen';
|
$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/bestaetigt'] = 'bestätigt';
|
||||||
$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von';
|
$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von';
|
||||||
$this->phrasen['pruefung/reihungSpeichern'] = 'Reihung speichern';
|
$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 for course %1$s has been resceduled.
|
||||||
The exam will take place on %2$s at %3$s hrs.';
|
The exam will take place on %2$s at %3$s hrs.';
|
||||||
$this->phrasen['pruefung/emailVerschiebungSubject'] = 'Exam changed';
|
$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 {
|
.filter-name-title {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
/*font-weight: bold;*/
|
|
||||||
line-height: 1.1;
|
line-height: 1.1;
|
||||||
color: black;
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.panel-title {
|
||||||
|
font-weight: bold;
|
||||||
|
padding-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
.filters-hidden-panel {
|
.filters-hidden-panel {
|
||||||
margin: 0 10px 10px 10px;
|
margin: 0 10px 10px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hidden-control {
|
.filter-span-label {
|
||||||
display: none !important;
|
display: inline-block;
|
||||||
|
width: 200px;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-select-fields-dnd-div {
|
.drag-and-drop-fields-area {
|
||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-select-field-dnd-span {
|
.drag-and-drop-fields-span {
|
||||||
border: 1px solid black;
|
border: 1px solid black;
|
||||||
border-radius: 7px;
|
border-radius: 7px;
|
||||||
margin-left: 3px;
|
margin-left: 3px;
|
||||||
@@ -33,14 +33,23 @@
|
|||||||
top: 10px;
|
top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-select-field-dnd-span:hover {
|
.drag-and-drop-fields-span:hover {
|
||||||
cursor: move;
|
cursor: move;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-select-field-dnd-span a {
|
.remove-selected-field {
|
||||||
|
font-weight: bold;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.remove-selected-field:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-control {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
.selection-before::before {
|
.selection-before::before {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -61,47 +70,38 @@
|
|||||||
border-right: 2px solid #428bca;
|
border-right: 2px solid #428bca;
|
||||||
}
|
}
|
||||||
|
|
||||||
.select-filter-operation {
|
.applied-filter-operation {
|
||||||
display: inline;
|
display: inline;
|
||||||
width: 130px;
|
width: 130px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.select-filter-operation-value {
|
.applied-filter-condition {
|
||||||
display: inline;
|
display: inline;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.select-filter-option {
|
.applied-filter-option {
|
||||||
display: inline;
|
display: inline;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#addField, #customFilterDescription, #addFilter {
|
.remove-applied-filter {
|
||||||
|
padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drop-down-fields, .drop-down-filters, .input-text-custom-filter {
|
||||||
display: inline;
|
display: inline;
|
||||||
width: 535px;
|
width: 535px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#selectedFilters {
|
#appliedFilters {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#applyFilter, #saveCustomFilterButton, .remove-selected-filter {
|
#applyFilter, #saveCustomFilterButton, .remove-applied-filter {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#applyFilter, #saveCustomFilterButton {
|
#applyFilter, #saveCustomFilterButton {
|
||||||
width: 100px;
|
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*/
|
/*arrow toggle for panels*/
|
||||||
.panel-heading .accordion-toggle:before{
|
.panel-heading .accordion-toggle.arrowcollapse:before{
|
||||||
/* symbol for "opening" panels */
|
/* symbol for "opening" panels */
|
||||||
font-family: 'Glyphicons Halflings'; /* essential for enabling glyphicon */
|
font-family: 'Glyphicons Halflings'; /* essential for enabling glyphicon */
|
||||||
content: "\e114"; /* adjust as needed, taken from bootstrap.css */
|
content: "\e114"; /* adjust as needed, taken from bootstrap.css */
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
color: grey; /* adjust as needed */
|
color: grey; /* adjust as needed */
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel-heading .accordion-toggle.collapsed:before{
|
.panel-heading .accordion-toggle.collapsed.arrowcollapse:before{
|
||||||
/* symbol for "collapsed" panels */
|
/* symbol for "collapsed" panels */
|
||||||
content: "\e080"; /* adjust as needed, taken from bootstrap.css */
|
content: "\e080"; /* adjust as needed, taken from bootstrap.css */
|
||||||
}
|
}
|
||||||
|
|||||||
+34
-20
@@ -124,6 +124,20 @@ var FHC_AjaxClient = {
|
|||||||
return data;
|
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
|
* Retrives code from response object
|
||||||
*/
|
*/
|
||||||
@@ -163,6 +177,26 @@ var FHC_AjaxClient = {
|
|||||||
FHC_AjaxClient._hideVeil();
|
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
|
// Private methods
|
||||||
|
|
||||||
@@ -278,26 +312,6 @@ var FHC_AjaxClient = {
|
|||||||
this._veilTimeout);
|
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
|
* Checks call parameters, if they are present and are valid
|
||||||
* It generates and returns all the parameters needed to perform an ajax remote call
|
* 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
|
* javascript file for infocenterDetails page
|
||||||
*/
|
*/
|
||||||
$(document).ready(
|
$(document).ready(function ()
|
||||||
function ()
|
{
|
||||||
{
|
|
||||||
//initialise table sorter
|
//initialise table sorter
|
||||||
Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
|
Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
|
||||||
Tablesort.addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]);
|
Tablesort.addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]);
|
||||||
@@ -133,7 +132,7 @@ $(document).ready(
|
|||||||
var notizTitle = $(this).find("td:eq(1)").text();
|
var notizTitle = $(this).find("td:eq(1)").text();
|
||||||
var notizContent = this.title;
|
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[type='reset']").css("display", "inline-block");
|
||||||
|
|
||||||
$("#notizform :input[name='hiddenNotizId']").val(notizId);
|
$("#notizform :input[name='hiddenNotizId']").val(notizId);
|
||||||
@@ -209,8 +208,7 @@ var InfocenterDetails = {
|
|||||||
{
|
{
|
||||||
FHC_AjaxClient.ajaxCallGet(
|
FHC_AjaxClient.ajaxCallGet(
|
||||||
CALLED_PATH + "/getLastPrestudentWithZgvJson/" + encodeURIComponent(personid),
|
CALLED_PATH + "/getLastPrestudentWithZgvJson/" + encodeURIComponent(personid),
|
||||||
{
|
null,
|
||||||
},
|
|
||||||
{
|
{
|
||||||
successCallback: function(data, textStatus, jqXHR) {
|
successCallback: function(data, textStatus, jqXHR) {
|
||||||
if (FHC_AjaxClient.hasData(data))
|
if (FHC_AjaxClient.hasData(data))
|
||||||
@@ -243,7 +241,7 @@ var InfocenterDetails = {
|
|||||||
saveZgv: function(data)
|
saveZgv: function(data)
|
||||||
{
|
{
|
||||||
var zgvError = function(){
|
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;
|
var prestudentid = data.prestudentid;
|
||||||
@@ -258,7 +256,7 @@ var InfocenterDetails = {
|
|||||||
if (FHC_AjaxClient.hasData(data))
|
if (FHC_AjaxClient.hasData(data))
|
||||||
{
|
{
|
||||||
InfocenterDetails._refreshLog();
|
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
|
else
|
||||||
{
|
{
|
||||||
@@ -319,13 +317,11 @@ var InfocenterDetails = {
|
|||||||
{
|
{
|
||||||
FHC_AjaxClient.ajaxCallGet(
|
FHC_AjaxClient.ajaxCallGet(
|
||||||
CALLED_PATH + "/getStudienjahrEnd",
|
CALLED_PATH + "/getStudienjahrEnd",
|
||||||
{
|
null,
|
||||||
},
|
|
||||||
{
|
{
|
||||||
successCallback: function(data, textStatus, jqXHR) {
|
successCallback: function(data, textStatus, jqXHR) {
|
||||||
if (data)
|
if (data)
|
||||||
{
|
{
|
||||||
console.log("studienjahr end executed");
|
|
||||||
var engdate = $.datepicker.parseDate("yy-mm-dd", data);
|
var engdate = $.datepicker.parseDate("yy-mm-dd", data);
|
||||||
var gerdate = $.datepicker.formatDate("dd.mm.yy", engdate);
|
var gerdate = $.datepicker.formatDate("dd.mm.yy", engdate);
|
||||||
$("#parkdate").val(gerdate);
|
$("#parkdate").val(gerdate);
|
||||||
@@ -339,8 +335,7 @@ var InfocenterDetails = {
|
|||||||
{
|
{
|
||||||
FHC_AjaxClient.ajaxCallGet(
|
FHC_AjaxClient.ajaxCallGet(
|
||||||
CALLED_PATH + "/getParkedDate/"+encodeURIComponent(personid),
|
CALLED_PATH + "/getParkedDate/"+encodeURIComponent(personid),
|
||||||
{
|
null,
|
||||||
},
|
|
||||||
{
|
{
|
||||||
successCallback: function(data, textStatus, jqXHR) {
|
successCallback: function(data, textStatus, jqXHR) {
|
||||||
InfocenterDetails._refreshParking(data);
|
InfocenterDetails._refreshParking(data);
|
||||||
@@ -392,11 +387,11 @@ var InfocenterDetails = {
|
|||||||
if (data.length > 0)
|
if (data.length > 0)
|
||||||
InfocenterDetails.getParkedDate(personid);
|
InfocenterDetails.getParkedDate(personid);
|
||||||
else
|
else
|
||||||
$("#unparkmsg").removeClass().addClass("text-warning").text(" Nichts zum Ausparken.");
|
$("#unparkmsg").removeClass().addClass("text-warning").text(FHC_PhrasesLib.t('infocenter', 'nichtsZumAusparken'));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
errorCallback: function(){
|
errorCallback: function(){
|
||||||
$("#unparkmsg").removeClass().addClass("text-danger").text(" Fehler beim Ausparken!");
|
$("#unparkmsg").removeClass().addClass("text-danger").text(FHC_PhrasesLib.t('infocenter', 'fehlerBeimAusparken'));
|
||||||
},
|
},
|
||||||
veilTimeout: 0
|
veilTimeout: 0
|
||||||
}
|
}
|
||||||
@@ -440,8 +435,8 @@ var InfocenterDetails = {
|
|||||||
{
|
{
|
||||||
$("#parking").html(
|
$("#parking").html(
|
||||||
'<div class="form-group form-inline">'+
|
'<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> '+
|
'<button class="btn btn-default" id="parklink" type="button""><i class="fa fa-clock-o"></i> ' + FHC_PhrasesLib.t('infocenter', 'bewerberParken') + '</button> '+
|
||||||
'bis '+
|
FHC_PhrasesLib.t('global', 'bis') + ' '+
|
||||||
'<input id="parkdate" type="text" class="form-control" placeholder="Parkdatum" style="height: 25px; width: 99px"> '+
|
'<input id="parkdate" type="text" class="form-control" placeholder="Parkdatum" style="height: 25px; width: 99px"> '+
|
||||||
'<span class="text-danger" id="parkmsg"></span>'+
|
'<span class="text-danger" id="parkmsg"></span>'+
|
||||||
'</div>');
|
'</div>');
|
||||||
@@ -467,8 +462,8 @@ var InfocenterDetails = {
|
|||||||
var parkdate = $.datepicker.parseDate("yy-mm-dd", date);
|
var parkdate = $.datepicker.parseDate("yy-mm-dd", date);
|
||||||
var gerparkdate = $.datepicker.formatDate("dd.mm.yy", parkdate);
|
var gerparkdate = $.datepicker.formatDate("dd.mm.yy", parkdate);
|
||||||
$("#parking").html(
|
$("#parking").html(
|
||||||
'BewerberIn geparkt bis '+gerparkdate+' '+
|
FHC_PhrasesLib.t('infocenter', 'bewerberGeparktBis')+' '+gerparkdate+' '+
|
||||||
'<button class="btn btn-default" id="unparklink"><i class="fa fa-sign-out"></i> BewerberIn ausparken</button> '+
|
'<button class="btn btn-default" id="unparklink"><i class="fa fa-sign-out"></i> '+FHC_PhrasesLib.t('infocenter', 'bewerberAusparken')+'</button> '+
|
||||||
'<span id="unparkmsg"></span>'
|
'<span id="unparkmsg"></span>'
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -491,11 +486,11 @@ var InfocenterDetails = {
|
|||||||
{
|
{
|
||||||
$("#notizmsg").empty();
|
$("#notizmsg").empty();
|
||||||
$("#notizform :input[name='hiddenNotizId']").val("");
|
$("#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");
|
$("#notizform :input[type='reset']").css("display", "none");
|
||||||
},
|
},
|
||||||
_errorSaveNotiz: function()
|
_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
|
* Javascript file for infocenter overview page
|
||||||
*/
|
*/
|
||||||
$(document).ready(function() {
|
|
||||||
|
|
||||||
appendTableActionsHtml();
|
|
||||||
// setTableActions();
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* adds person table additional actions html (above and beneath it)
|
* Refreshes the side menu
|
||||||
*/
|
* NOTE: it is called from the FilterWidget therefore must be a global function
|
||||||
function appendTableActionsHtml()
|
*/
|
||||||
|
function refreshSideMenu()
|
||||||
{
|
{
|
||||||
var currurl = window.location.href;
|
//
|
||||||
var url = currurl.replace(/infocenter\/InfoCenter(.*)/, "Messages/write");
|
FHC_AjaxClient.ajaxCallGet(
|
||||||
|
'system/infocenter/InfoCenter/setNavigationMenuArrayJson',
|
||||||
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
|
null,
|
||||||
$("#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)
|
|
||||||
{
|
{
|
||||||
if (data.rowNumber != null)
|
successCallback: function(data, textStatus, jqXHR) {
|
||||||
{
|
FHC_NavigationWidget.renderSideMenu();
|
||||||
personcount = data.rowNumber;
|
},
|
||||||
|
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||||
var persontext = personcount === 1 ? "Person" : "Personen";
|
alert(textStatus);
|
||||||
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>");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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 InfocenterPersonDataset = {
|
||||||
{
|
|
||||||
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
|
|
||||||
sURLVariables = sPageURL.split('&'),
|
|
||||||
sParameterName,
|
|
||||||
i;
|
|
||||||
|
|
||||||
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)
|
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
|
||||||
{
|
$("#datasetActionsTop").before(formHtml);
|
||||||
return sParameterName[1];
|
|
||||||
}
|
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()
|
$(document).ready(function() {
|
||||||
{
|
|
||||||
$.ajax({
|
|
||||||
url: window.location.pathname+"/setNavigationMenuArray",
|
|
||||||
method: "GET",
|
|
||||||
data: {
|
|
||||||
fhc_controller_id: getUrlParameter("fhc_controller_id")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.done(function(data, textStatus, jqXHR) {
|
|
||||||
|
|
||||||
FHC_NavigationWidget.renderSideMenu();
|
InfocenterPersonDataset.appendTableActionsHtml();
|
||||||
|
|
||||||
}).fail(function(jqXHR, textStatus, errorThrown) {
|
});
|
||||||
alert(textStatus);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ var Tablesort = {
|
|||||||
size: size,
|
size: size,
|
||||||
cssDisabled: 'disabled',
|
cssDisabled: 'disabled',
|
||||||
savePages: false,
|
savePages: false,
|
||||||
output: '{startRow} – {endRow} / {totalRows} Zeilen'
|
output: '{startRow} – {endRow} / {totalRows} ' + FHC_PhrasesLib.t('global', 'zeilen')
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+357
-27
@@ -26,7 +26,7 @@
|
|||||||
$new = false;
|
$new = false;
|
||||||
|
|
||||||
|
|
||||||
$phrases = array(
|
$phrases = array(
|
||||||
//******************* CORE/global
|
//******************* CORE/global
|
||||||
array(
|
array(
|
||||||
'app' => 'core',
|
'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(
|
array(
|
||||||
'app' => 'core',
|
'app' => 'core',
|
||||||
'category' => 'global',
|
'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
|
//******************************* CORE/ui
|
||||||
array(
|
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
|
//*************************** 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
|
//**************************** 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(
|
array(
|
||||||
'app' => 'infocenter',
|
'app' => 'infocenter',
|
||||||
'category' => 'infocenter',
|
'category' => 'infocenter',
|
||||||
@@ -2273,8 +2479,8 @@ $phrases = array(
|
|||||||
array(
|
array(
|
||||||
'sprache' => 'German',
|
'sprache' => 'German',
|
||||||
'text' => 'Bei Absage von InteressentInnen erhalten diese den Status "Abgewiesener" und deren '
|
'text' => 'Bei Absage von InteressentInnen erhalten diese den Status "Abgewiesener" und deren '
|
||||||
. 'ZGV-Daten können im Infocenter nicht mehr bearbeitet oder freigegeben werden. '
|
.'ZGV-Daten können im Infocenter nicht mehr bearbeitet oder freigegeben werden. '
|
||||||
. 'Alle nicht gespeicherten ZGV-Daten gehen verloren. Fortfahren?',
|
.'Alle nicht gespeicherten ZGV-Daten gehen verloren. Fortfahren?',
|
||||||
'description' => '',
|
'description' => '',
|
||||||
'insertvon' => 'system'
|
'insertvon' => 'system'
|
||||||
),
|
),
|
||||||
@@ -2380,7 +2586,7 @@ $phrases = array(
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'sprache' => 'English',
|
'sprache' => 'English',
|
||||||
'text' => '',
|
'text' => 'Approve applicant',
|
||||||
'description' => '',
|
'description' => '',
|
||||||
'insertvon' => 'system'
|
'insertvon' => 'system'
|
||||||
)
|
)
|
||||||
@@ -2483,7 +2689,7 @@ $phrases = array(
|
|||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'sprache' => 'English',
|
'sprache' => 'English',
|
||||||
'text' => 'change note',
|
'text' => 'Change note',
|
||||||
'description' => '',
|
'description' => '',
|
||||||
'insertvon' => 'system'
|
'insertvon' => 'system'
|
||||||
)
|
)
|
||||||
@@ -2568,7 +2774,128 @@ $phrases = array(
|
|||||||
'insertvon' => 'system'
|
'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
|
$qry = "SELECT phrase_id
|
||||||
FROM system.tbl_phrase
|
FROM system.tbl_phrase
|
||||||
WHERE
|
WHERE
|
||||||
app=" . $db->db_add_param($phrase['app']) . " AND
|
app=". $db->db_add_param($phrase['app']). " AND
|
||||||
category=" . $db->db_add_param($phrase['category']) . " AND
|
category=". $db->db_add_param($phrase['category']). " AND
|
||||||
phrase=" . $db->db_add_param($phrase['phrase']);
|
phrase=". $db->db_add_param($phrase['phrase']);
|
||||||
|
|
||||||
//*** CHECK PHRASE
|
//*** CHECK PHRASE
|
||||||
if ($result = $db->db_query($qry))
|
if ($result = $db->db_query($qry))
|
||||||
@@ -2600,11 +2927,11 @@ foreach ($phrases as $phrase)
|
|||||||
insertvon,
|
insertvon,
|
||||||
category)
|
category)
|
||||||
VALUES(".
|
VALUES(".
|
||||||
$db->db_add_param($phrase['app']) . ','.
|
$db->db_add_param($phrase['app']). ','.
|
||||||
$db->db_add_param($phrase['phrase']) . ','.
|
$db->db_add_param($phrase['phrase']). ','.
|
||||||
' now(),'.
|
' now(),'.
|
||||||
$db->db_add_param($phrase['insertvon']) . ','.
|
$db->db_add_param($phrase['insertvon']). ','.
|
||||||
$db->db_add_param($phrase['category']) . ');';
|
$db->db_add_param($phrase['category']). ');';
|
||||||
|
|
||||||
if ($db->db_query($qry_insert))
|
if ($db->db_query($qry_insert))
|
||||||
{
|
{
|
||||||
@@ -2618,11 +2945,11 @@ foreach ($phrases as $phrase)
|
|||||||
$phrase_id = $obj->id;
|
$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
|
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
|
//phrase existing -> get phrase_id
|
||||||
else
|
else
|
||||||
@@ -2631,23 +2958,23 @@ foreach ($phrases as $phrase)
|
|||||||
{
|
{
|
||||||
$phrase_id = $obj->phrase_id;
|
$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
|
//*** CHECK PHRASENTEXT
|
||||||
//loop through languages
|
//loop through languages
|
||||||
foreach ($phrase['phrases'] as $phrase_phrases)
|
foreach ($phrase['phrases'] as $phrase_phrases)
|
||||||
{
|
{
|
||||||
$language = $phrase_phrases['sprache'];
|
$language = $phrase_phrases['sprache'];
|
||||||
|
|
||||||
//query phrasentext in certain language
|
//query phrasentext in certain language
|
||||||
$qry_language =
|
$qry_language =
|
||||||
"SELECT *
|
"SELECT *
|
||||||
FROM system.tbl_phrasentext
|
FROM system.tbl_phrasentext
|
||||||
WHERE
|
WHERE
|
||||||
phrase_id=" . $phrase_id . " AND
|
phrase_id=". $phrase_id. " AND
|
||||||
sprache='" . $language . "'";
|
sprache='". $language. "'";
|
||||||
|
|
||||||
|
|
||||||
if ($result_language = $db->db_query($qry_language))
|
if ($result_language = $db->db_query($qry_language))
|
||||||
@@ -2665,22 +2992,25 @@ foreach ($phrases as $phrase)
|
|||||||
insertamum,
|
insertamum,
|
||||||
insertvon)
|
insertvon)
|
||||||
VALUES(".
|
VALUES(".
|
||||||
$db->db_add_param($phrase_id, FHC_INTEGER) . ','.
|
$db->db_add_param($phrase_id, FHC_INTEGER). ','.
|
||||||
$db->db_add_param($phrase_phrases['sprache']) . ','.
|
$db->db_add_param($phrase_phrases['sprache']). ','.
|
||||||
' NULL,'.
|
' NULL,'.
|
||||||
' NULL,'.
|
' NULL,'.
|
||||||
$db->db_add_param($phrase_phrases['text']) . ','.
|
$db->db_add_param($phrase_phrases['text']). ','.
|
||||||
$db->db_add_param($phrase_phrases['description']) . ','.
|
$db->db_add_param($phrase_phrases['description']). ','.
|
||||||
' now(),'.
|
' now(),'.
|
||||||
$db->db_add_param($phrase_phrases['insertvon']) . ');';
|
$db->db_add_param($phrase_phrases['insertvon']). ');';
|
||||||
|
|
||||||
if ($db->db_query($qry_insert))
|
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
|
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 < [email protected] >
|
* Rudolf Hangl < [email protected] >
|
||||||
* Gerald Simane-Sequens < [email protected] >
|
* Gerald Simane-Sequens < [email protected] >
|
||||||
*/
|
*/
|
||||||
require_once('../../config/vilesci.config.inc.php');
|
require_once('../../config/vilesci.config.inc.php');
|
||||||
require_once('../../include/functions.inc.php');
|
require_once('../../include/functions.inc.php');
|
||||||
require_once('../../include/benutzerberechtigung.class.php');
|
require_once('../../include/benutzerberechtigung.class.php');
|
||||||
require_once('../../include/person.class.php');
|
require_once('../../include/person.class.php');
|
||||||
@@ -35,68 +35,64 @@ $user=get_uid();
|
|||||||
$datum_obj = new datum();
|
$datum_obj = new datum();
|
||||||
loadVariables($user);
|
loadVariables($user);
|
||||||
|
|
||||||
?>
|
?><!DOCTYPE HTML>
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<meta charset="UTF-8">
|
||||||
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
|
||||||
<script language="Javascript">
|
<script language="Javascript">
|
||||||
function disablefields(obj)
|
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)
|
|
||||||
{
|
{
|
||||||
document.getElementById('ueb1').style.display = 'block';
|
if (obj.value==0)
|
||||||
document.getElementById('ueb2').style.display = 'block';
|
val=false;
|
||||||
document.getElementById('ueb3').style.display = 'block';
|
else
|
||||||
}
|
val=true;
|
||||||
else
|
|
||||||
{
|
|
||||||
document.getElementById('ueb1').style.display = 'none';
|
|
||||||
document.getElementById('ueb2').style.display = 'none';
|
|
||||||
document.getElementById('ueb3').style.display = 'none';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function GeburtsdatumEintragen()
|
document.getElementById('anrede').disabled=val;
|
||||||
{
|
document.getElementById('titel').disabled=val;
|
||||||
svnr = document.getElementById('svnr').value;
|
document.getElementById('titelpost').disabled=val;
|
||||||
gebdat = document.getElementById('geburtsdatum');
|
document.getElementById('nachname').disabled=val;
|
||||||
|
document.getElementById('vorname').disabled=val;
|
||||||
if(svnr.length==10 && gebdat.value=='')
|
document.getElementById('geschlecht').disabled=val;
|
||||||
{
|
document.getElementById('geburtsdatum').disabled=val;
|
||||||
var tag = svnr.substr(4,2);
|
document.getElementById('svnr').disabled=val;
|
||||||
var monat = svnr.substr(6,2);
|
document.getElementById('ersatzkennzeichen').disabled=val;
|
||||||
var jahr = svnr.substr(8,2);
|
if (val)
|
||||||
|
{
|
||||||
gebdat.value='19'+jahr+'-'+monat+'-'+tag;
|
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)
|
function GeburtsdatumEintragen()
|
||||||
{
|
{
|
||||||
document.getElementById('adresse').disabled=val;
|
svnr = document.getElementById('svnr').value;
|
||||||
document.getElementById('plz').disabled=val;
|
gebdat = document.getElementById('geburtsdatum');
|
||||||
document.getElementById('ort').disabled=val;
|
|
||||||
}
|
if (svnr.length==10 && gebdat.value=='')
|
||||||
</script>
|
{
|
||||||
|
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>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>Person Anlegen</h1>
|
<h1>Person Anlegen</h1>
|
||||||
@@ -105,7 +101,10 @@ function disablefields2(val)
|
|||||||
$rechte = new benutzerberechtigung();
|
$rechte = new benutzerberechtigung();
|
||||||
$rechte->getBerechtigungen($user);
|
$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');
|
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||||
|
|
||||||
$where = '';
|
$where = '';
|
||||||
@@ -132,7 +131,7 @@ $ueberschreiben = (isset($_REQUEST['ueberschreiben'])?$_REQUEST['ueberschreiben'
|
|||||||
$geburtsdatum_error=false;
|
$geburtsdatum_error=false;
|
||||||
|
|
||||||
// *** Speichern der Daten ***
|
// *** Speichern der Daten ***
|
||||||
if(isset($_POST['save']))
|
if (isset($_POST['save']))
|
||||||
{
|
{
|
||||||
//echo "Saving Data: Geburtsdatum: $geburtsdatum | Titel: $titel | Nachname: $nachname | Vorname: $vorname |
|
//echo "Saving Data: Geburtsdatum: $geburtsdatum | Titel: $titel | Nachname: $nachname | Vorname: $vorname |
|
||||||
// Geschlecht: $geschlecht | Adresse: $adresse | Plz: $plz | Ort: $ort |
|
// Geschlecht: $geschlecht | Adresse: $adresse | Plz: $plz | Ort: $ort |
|
||||||
@@ -142,7 +141,10 @@ if(isset($_POST['save']))
|
|||||||
$db->db_query('BEGIN');
|
$db->db_query('BEGIN');
|
||||||
//Wenn die person_id=0 dann wird eine neue Person angelegt
|
//Wenn die person_id=0 dann wird eine neue Person angelegt
|
||||||
//Sonst nicht
|
//Sonst nicht
|
||||||
if($person_id=='0')
|
if ($person_id == '')
|
||||||
|
die('Es ist ein Fehler aufgetreten');
|
||||||
|
|
||||||
|
if ($person_id=='0')
|
||||||
{
|
{
|
||||||
$person->new = true;
|
$person->new = true;
|
||||||
$person->anrede = $anrede;
|
$person->anrede = $anrede;
|
||||||
@@ -157,9 +159,9 @@ if(isset($_POST['save']))
|
|||||||
$person->aktiv = true;
|
$person->aktiv = true;
|
||||||
$person->insertamum = date('Y-m-d H:i:s');
|
$person->insertamum = date('Y-m-d H:i:s');
|
||||||
$person->insertvon = $user;
|
$person->insertvon = $user;
|
||||||
$person->zugangscode= uniqid();
|
$person->zugangscode= uniqid();
|
||||||
|
|
||||||
if($person->save())
|
if ($person->save())
|
||||||
{
|
{
|
||||||
$error=false;
|
$error=false;
|
||||||
}
|
}
|
||||||
@@ -169,16 +171,16 @@ if(isset($_POST['save']))
|
|||||||
$errormsg = "Person konnte nicht gespeichert werden: $person->errormsg";
|
$errormsg = "Person konnte nicht gespeichert werden: $person->errormsg";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Adresse anlegen
|
//Adresse anlegen
|
||||||
if($ueberschreiben!='' && !($plz=='' && $adresse=='' && $ort==''))
|
if ($ueberschreiben!='' && !($plz=='' && $adresse=='' && $ort==''))
|
||||||
{
|
{
|
||||||
if($person_id=='0')
|
if ($person_id=='0')
|
||||||
$ueberschreiben='Nein';
|
$ueberschreiben='Nein';
|
||||||
|
|
||||||
$adr = new adresse();
|
$adr = new adresse();
|
||||||
//Adresse neu anlegen
|
//Adresse neu anlegen
|
||||||
if($ueberschreiben=='Nein')
|
if ($ueberschreiben=='Nein')
|
||||||
{
|
{
|
||||||
$adr->new = true;
|
$adr->new = true;
|
||||||
$adr->insertamum = date('Y-m-d H:i:s');
|
$adr->insertamum = date('Y-m-d H:i:s');
|
||||||
@@ -190,10 +192,10 @@ if(isset($_POST['save']))
|
|||||||
|
|
||||||
//Adressen der Peron laden
|
//Adressen der Peron laden
|
||||||
$adr->load_pers($person->person_id);
|
$adr->load_pers($person->person_id);
|
||||||
if(isset($adr->result[0]))
|
if (isset($adr->result[0]))
|
||||||
{
|
{
|
||||||
//Erste Adresse laden
|
//Erste Adresse laden
|
||||||
if($adr->load($adr->result[0]->adresse_id))
|
if ($adr->load($adr->result[0]->adresse_id))
|
||||||
{
|
{
|
||||||
$adr->new = false;
|
$adr->new = false;
|
||||||
$adr->updateamum = date('Y-m-d H:i:s');
|
$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
|
//Adressdaten zuweisen und speichern
|
||||||
$adr->person_id = $person->person_id;
|
$adr->person_id = $person->person_id;
|
||||||
@@ -224,7 +226,7 @@ if(isset($_POST['save']))
|
|||||||
$adr->typ = 'h';
|
$adr->typ = 'h';
|
||||||
$adr->heimatadresse = true;
|
$adr->heimatadresse = true;
|
||||||
$adr->zustelladresse = true;
|
$adr->zustelladresse = true;
|
||||||
if(!$adr->save())
|
if (!$adr->save())
|
||||||
{
|
{
|
||||||
$error = true;
|
$error = true;
|
||||||
$errormsg = $adr->errormsg;
|
$errormsg = $adr->errormsg;
|
||||||
@@ -233,10 +235,10 @@ if(isset($_POST['save']))
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Kontaktdaten anlegen
|
//Kontaktdaten anlegen
|
||||||
if(!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
//EMail Adresse speichern
|
//EMail Adresse speichern
|
||||||
if($email!='')
|
if ($email!='')
|
||||||
{
|
{
|
||||||
$kontakt = new kontakt();
|
$kontakt = new kontakt();
|
||||||
$kontakt->person_id = $person->person_id;
|
$kontakt->person_id = $person->person_id;
|
||||||
@@ -247,14 +249,14 @@ if(isset($_POST['save']))
|
|||||||
$kontakt->insertvon = $user;
|
$kontakt->insertvon = $user;
|
||||||
$kontakt->new = true;
|
$kontakt->new = true;
|
||||||
|
|
||||||
if(!$kontakt->save())
|
if (!$kontakt->save())
|
||||||
{
|
{
|
||||||
$error = true;
|
$error = true;
|
||||||
$errormsg = 'Fehler beim Speichern der Email Adresse';
|
$errormsg = 'Fehler beim Speichern der Email Adresse';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Telefonnummer speichern
|
//Telefonnummer speichern
|
||||||
if($telefon!='')
|
if ($telefon!='')
|
||||||
{
|
{
|
||||||
$kontakt = new kontakt();
|
$kontakt = new kontakt();
|
||||||
$kontakt->person_id = $person->person_id;
|
$kontakt->person_id = $person->person_id;
|
||||||
@@ -265,14 +267,14 @@ if(isset($_POST['save']))
|
|||||||
$kontakt->insertvon = $user;
|
$kontakt->insertvon = $user;
|
||||||
$kontakt->new = true;
|
$kontakt->new = true;
|
||||||
|
|
||||||
if(!$kontakt->save())
|
if (!$kontakt->save())
|
||||||
{
|
{
|
||||||
$error = true;
|
$error = true;
|
||||||
$errormsg = 'Fehler beim Speichern der Telefonnummer';
|
$errormsg = 'Fehler beim Speichern der Telefonnummer';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Mobiltelefonnummer speichern
|
//Mobiltelefonnummer speichern
|
||||||
if($mobil!='')
|
if ($mobil!='')
|
||||||
{
|
{
|
||||||
$kontakt = new kontakt();
|
$kontakt = new kontakt();
|
||||||
$kontakt->person_id = $person->person_id;
|
$kontakt->person_id = $person->person_id;
|
||||||
@@ -283,7 +285,7 @@ if(isset($_POST['save']))
|
|||||||
$kontakt->insertvon = $user;
|
$kontakt->insertvon = $user;
|
||||||
$kontakt->new = true;
|
$kontakt->new = true;
|
||||||
|
|
||||||
if(!$kontakt->save())
|
if (!$kontakt->save())
|
||||||
{
|
{
|
||||||
$error = true;
|
$error = true;
|
||||||
$errormsg = 'Fehler beim Speichern der Mobiltelefonnummer';
|
$errormsg = 'Fehler beim Speichern der Mobiltelefonnummer';
|
||||||
@@ -291,7 +293,7 @@ if(isset($_POST['save']))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
$db->db_query('COMMIT');
|
$db->db_query('COMMIT');
|
||||||
die("<script language='Javascript'>
|
die("<script language='Javascript'>
|
||||||
@@ -307,12 +309,12 @@ if(isset($_POST['save']))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// *** SAVE ENDE ***
|
// *** SAVE ENDE ***
|
||||||
if($geburtsdatum!='')
|
if ($geburtsdatum!='')
|
||||||
{
|
{
|
||||||
//Wenn das Datum im Format d.m.Y ist dann in Y-m-d umwandeln
|
//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));
|
$geburtsdatum = date('Y-m-d',$datum_obj->mktime_datum($geburtsdatum));
|
||||||
}
|
}
|
||||||
@@ -321,13 +323,13 @@ if($geburtsdatum!='')
|
|||||||
$geburtsdatum_error=true;
|
$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;
|
$geburtsdatum_error=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($geburtsdatum_error)
|
if ($geburtsdatum_error)
|
||||||
echo "Format des Geburtsdatums ist ungueltig!";
|
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>Mobil</td><td><input type="text" id="mobil" maxlength="128" name="mobil" value="'.$mobil.'" /></td></tr>';
|
||||||
echo '<tr><td></td><td>';
|
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">';
|
echo '<input type="submit" name="showagain" value="Vorschlag laden">';
|
||||||
else
|
else
|
||||||
echo '<input type="submit" name="save" value="Speichern">';
|
echo '<input type="submit" name="save" value="Speichern">';
|
||||||
@@ -383,27 +385,34 @@ echo '<td valign="top">';
|
|||||||
|
|
||||||
//Vorschlaege
|
//Vorschlaege
|
||||||
|
|
||||||
|
$where = '';
|
||||||
//Vorschlaege laden
|
//Vorschlaege laden
|
||||||
if($geburtsdatum!='')
|
if ($geburtsdatum!='')
|
||||||
{
|
{
|
||||||
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))
|
||||||
{
|
{
|
||||||
$where = " gebdatum='".$geburtsdatum."'";
|
$where = " gebdatum=".$db->db_add_param($geburtsdatum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($vorname!='' && $nachname!='')
|
if ($vorname!='' && $nachname!='')
|
||||||
{
|
{
|
||||||
if($where!='')
|
if ($where!='')
|
||||||
$where.=' OR';
|
$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";
|
$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>
|
echo '<table>
|
||||||
<tr>
|
<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'
|
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
|
UNION
|
||||||
SELECT 'PreInteressent' as rolle FROM public.tbl_preinteressent WHERE person_id='$row->person_id'";
|
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))
|
while($row_stati=$db->db_fetch_object($result_stati))
|
||||||
{
|
{
|
||||||
@@ -433,10 +442,10 @@ if($where!='')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$status = mb_substr($status, 0, mb_strlen($status)-2);
|
$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>";
|
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'";
|
$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))
|
while($row_adr=$db->db_fetch_object($result_adr))
|
||||||
echo "$row_adr->plz $row_adr->ort, $row_adr->strasse<br>";
|
echo "$row_adr->plz $row_adr->ort, $row_adr->strasse<br>";
|
||||||
echo "<td>$status</td>";
|
echo "<td>$status</td>";
|
||||||
@@ -447,8 +456,6 @@ if($where!='')
|
|||||||
echo '</table>';
|
echo '</table>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//else
|
|
||||||
// echo 'Zum Erstellen des Vorschlags bitte Geburtsdatum oder Vorname und Nachname eingeben';
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
@@ -456,4 +463,4 @@ if($where!='')
|
|||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user