- Splitted Usersfilters_widget in:

- Aufnahmegruppe_widget
	- Reihungstest_widget
	- Studiengang_widget
	- Studiensemester_widget
	- Stufe_widget
- Renamed /system/Users controller to system/aufnahme/PrestudentMultiAssign
- Added method getPrestudentMultiAssign to Prestudent_model
- Changed WidgetLib to allow to set the name and the id html attributes
of a widget
This commit is contained in:
Paolo
2017-03-24 16:39:50 +01:00
parent 60ff6d145d
commit 1f65f7737c
18 changed files with 896 additions and 820 deletions
-222
View File
@@ -1,222 +0,0 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Users extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
// Loads helper message to manage returning messages
$this->load->helper('message');
// Load the library to use the widgets
$this->load->library('TemplateLib');
}
public function index()
{
$studiengang = $this->input->post('studiengang');
$studiensemester = $this->input->post('studiensemester');
$gruppe = $this->input->post('gruppe');
$reihungstest = $this->input->post('reihungstest');
$stufe = $this->input->post('stufe');
$returnUsers = null;
if ($studiengang != null || $studiensemester != null || $gruppe!= null
|| $reihungstest != null || $stufe != null)
{
$returnUsers = $this->_getUsers($studiengang, $studiensemester, $gruppe, $reihungstest, $stufe);
}
$users = null;
if (hasData($returnUsers))
{
$users = $returnUsers->retval;
}
// Gruppen
$this->load->model('organisation/Gruppe_model', 'GruppeModel');
$this->GruppeModel->addOrder('beschreibung');
$gruppen = $this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true));
if (hasData($gruppen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->gruppe_kurzbz = '-1';
$emptyElement->beschreibung = 'Select a group...';
array_unshift($gruppen->retval, $emptyElement);
}
else
{
show_error($gruppen->retval);
}
// Stufe
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
$this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe, stufe AS beschreibung');
$this->ReihungstestModel->addOrder('stufe');
$stufen = $this->ReihungstestModel->loadWhere('stufe IS NOT NULL');
if (hasData($stufen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->stufe = '-1';
$emptyElement->beschreibung = 'Select a stufe...';
array_unshift($stufen->retval, $emptyElement);
}
else
{
show_error($stufen->retval);
}
if ($returnUsers == null || isSuccess($returnUsers))
{
$viewData = array(
'studiengang' => $studiengang,
'studiensemester' => $studiensemester,
'gruppe' => $gruppe,
'reihungstest' => $reihungstest,
'stufe' => $stufe,
'users' => $users,
'gruppen' => $gruppen->retval,
'stufen' => $stufen->retval
);
$this->load->view('system/users', $viewData);
}
else if (isError($returnUsers))
{
show_error($returnUsers->retval);
}
}
public function linkToStufe()
{
$prestudentIdArray = $this->input->post('prestudent_id');
$stufe = $this->input->post('stufe');
// Load model PrestudentstatusModel
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
$result = error("No valid parameters");
if (isset($stufe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0)
{
$result = $this->PrestudentstatusModel->updateStufe($prestudentIdArray, $stufe);
}
$this->output->set_header('Content-Type: application/json; charset=utf-8');
if (isSuccess($result))
{
$href = str_replace("/system/Users/linkToStufe", "/system/Users", $_SERVER["REQUEST_URI"]);
echo '{"msg": "Data correctly saved"}';
}
else
{
echo '{"msg": "Error occurred while saving data, please contact the administrator"}';
}
}
public function linkToAufnahmegruppe()
{
$prestudentIdArray = $this->input->post('prestudent_id');
$aufnahmegruppe = $this->input->post('aufnahmegruppe');
// Load model PrestudentstatusModel
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$result = error("No valid parameters");
if (isset($aufnahmegruppe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0)
{
$result = $this->PrestudentModel->updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe);
}
if (isSuccess($result))
{
$href = str_replace("/system/Users/linkToAufnahmegruppe", "/system/Users", $_SERVER["REQUEST_URI"]);
echo '{"msg": "Data correctly saved"}';
}
else
{
echo '{"msg": "Error occurred while saving data, please contact the administrator"}';
}
}
private function _getUsers($studiengang, $studiensemester, $gruppe, $reihungstest, $stufe)
{
// Load model prestudentm_model
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$this->PrestudentModel->addSelect(
'DISTINCT ON(p.person_id, prestudent_id) p.person_id,
prestudent_id,
p.nachname,
p.vorname,
p.geschlecht,
p.gebdatum,
k.kontakt AS email,
sg.kurzbzlang,
sg.bezeichnung,
sg.orgform_kurzbz,
sgt.bezeichnung AS typ,
s.bezeichnung AS studienplan,
ps.rt_stufe,
aufnahmegruppe_kurzbz,
rtp.punkte'
);
$this->PrestudentModel->addJoin('public.tbl_rt_person rtp', 'person_id');
$this->PrestudentModel->addJoin('public.tbl_person p', 'person_id', 'LEFT');
$this->PrestudentModel->addJoin(
'(
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = \'email\'
ORDER BY kontakt_id DESC
) k',
'person_id',
'LEFT'
);
$this->PrestudentModel->addJoin('public.tbl_prestudentstatus ps', 'prestudent_id');
$this->PrestudentModel->addJoin('lehre.tbl_studienplan s', 's.studienplan_id = ps.studienplan_id');
$this->PrestudentModel->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
$this->PrestudentModel->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz');
$this->PrestudentModel->addJoin('public.tbl_studiengangstyp sgt', 'typ');
$this->PrestudentModel->addOrder('p.person_id', 'ASC');
$this->PrestudentModel->addOrder('prestudent_id', 'ASC');
$parametersArray = array('p.aktiv' => true, 'ps.status_kurzbz' => 'Interessent');
if ($studiengang != null && $studiengang != '-1')
{
$parametersArray['sg.studiengang_kz'] = $studiengang;
}
if ($studiensemester != null && $studiensemester != '-1')
{
$parametersArray['ps.studiensemester_kurzbz'] = $studiensemester;
}
if ($gruppe != null && $gruppe != '-1')
{
$parametersArray['aufnahmegruppe_kurzbz'] = $gruppe;
}
if ($reihungstest != null && $reihungstest != '-1')
{
$parametersArray['rtp.rt_id'] = $reihungstest;
}
if ($stufe != null && $stufe != '-1')
{
$parametersArray['ps.rt_stufe'] = $stufe;
}
return $this->PrestudentModel->loadWhere($parametersArray);
}
}
@@ -0,0 +1,157 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class PrestudentMultiAssign extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
// Loads helper message to manage returning messages
$this->load->helper('message');
// Loads the widget library
$this->load->library('WidgetLib');
}
public function index()
{
$studiengang = $this->input->post('studiengang');
$studiensemester = $this->input->post('studiensemester');
$aufnahmegruppe = $this->input->post('aufnahmegruppe');
$reihungstest = $this->input->post('reihungstest');
$stufe = $this->input->post('stufe');
$returnUsers = null;
if ($studiengang != null || $studiensemester != null || $aufnahmegruppe!= null
|| $reihungstest != null || $stufe != null)
{
$returnUsers = $this->_getPrestudents($studiengang, $studiensemester, $aufnahmegruppe, $reihungstest, $stufe);
}
$users = null;
if (hasData($returnUsers))
{
$users = $returnUsers->retval;
}
if ($returnUsers == null || isSuccess($returnUsers))
{
$viewData = array(
'studiengang' => $studiengang,
'studiensemester' => $studiensemester,
'aufnahmegruppe' => $aufnahmegruppe,
'reihungstest' => $reihungstest,
'stufe' => $stufe,
'users' => $users
);
$this->load->view('system/aufnahme/prestudentMultiAssign', $viewData);
}
else if (isError($returnUsers))
{
show_error($returnUsers->retval);
}
}
/**
* To assign a stufe to one or more prestudents
*/
public function linkToStufe()
{
$prestudentIdArray = $this->input->post('prestudent_id');
$stufe = $this->input->post('stufe');
// Load model PrestudentstatusModel
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
$result = error("No valid parameters");
if (isset($stufe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0)
{
$result = $this->PrestudentstatusModel->updateStufe($prestudentIdArray, $stufe);
}
$this->output->set_header('Content-Type: application/json; charset=utf-8');
if (isSuccess($result))
{
echo '{"msg": "Data correctly saved"}';
}
else
{
echo '{"msg": "Error occurred while saving data, please contact the administrator"}';
}
}
/**
* To assign one or more prestudents to a gruppe
*/
public function linkToAufnahmegruppe()
{
$prestudentIdArray = $this->input->post('prestudent_id');
$aufnahmegruppe = $this->input->post('aufnahmegruppe');
// Load model PrestudentstatusModel
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$result = error("No valid parameters");
if (isset($aufnahmegruppe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0)
{
$result = $this->PrestudentModel->updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe);
}
$this->output->set_header('Content-Type: application/json; charset=utf-8');
if (isSuccess($result))
{
echo '{"msg": "Data correctly saved"}';
}
else
{
echo '{"msg": "Error occurred while saving data, please contact the administrator"}';
}
}
/**
* Get the prestudents using search parameters
*/
private function _getPrestudents($studiengang, $studiensemester, $aufnahmegruppe, $reihungstest, $stufe)
{
// Load model prestudentm_model
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
if ($studiengang == '' || empty($studiengang))
{
$studiengang = null;
}
if ($studiensemester == '' || empty($studiensemester))
{
$studiensemester = null;
}
if ($aufnahmegruppe == '' || empty($aufnahmegruppe))
{
$aufnahmegruppe = null;
}
if ($reihungstest == '' || empty($reihungstest))
{
$reihungstest = null;
}
if ($stufe == '' || empty($stufe))
{
$stufe = null;
}
return $this->PrestudentModel->getPrestudentMultiAssign(
$studiengang,
$studiensemester,
$aufnahmegruppe,
$reihungstest,
$stufe
);
}
}
+41 -3
View File
@@ -181,7 +181,8 @@ class WidgetLib
* @param array $data
* @return Widget
*/
public function widget($name, $data = array()) {
public function widget($name, $data = array(), $htmlArgs = array())
{
$class = str_replace('.php', '', trim($name, '/'));
// determine path and widget class name
@@ -208,7 +209,7 @@ class WidgetLib
show_error("Widget '" . $class . "' was not found.");
}
return new $class($class, $data);
return new $class($class, $data, $htmlArgs);
}
/**
@@ -333,6 +334,7 @@ class WidgetLib
class Partial
{
const HTML_DEFAULT_VALUE = ''; // Default value of the html element
protected $_ci, $_content, $_name, $_cache_ttl = 0, $_cached = false, $_identifier, $_trigger;
protected $_args = array();
@@ -341,10 +343,17 @@ class Partial
* Construct with optional parameters
* @param array $args
*/
public function __construct($name, $args = array()) {
public function __construct($name, $args = array(), $htmlArgs = array())
{
$this->_ci = &get_instance();
$this->_args = $args;
$this->_name = $name;
// Initialising properties
$this->_setHtmlProperties($htmlArgs);
// Loads helper message to manage returning messages
$this->load->helper('message');
}
/**
@@ -598,6 +607,35 @@ class Partial
$this->_trigger = FALSE;
}
}
/**
* Initialising properties
*/
private function _setHtmlProperties($htmlArgs)
{
if (isset($htmlArgs) && is_array($htmlArgs))
{
$this->_args['html'] = array();
if (!isset($htmlArgs['id']) || (isset($htmlArgs['id']) && $htmlArgs['id'] == ''))
{
$this->_args['html']['id'] = '';
}
else
{
$this->_args['html']['id'] = $htmlArgs['id'];
}
if (!isset($htmlArgs['name']) || (isset($htmlArgs['name']) && $htmlArgs['name'] == ''))
{
$this->_args['html']['name'] = '';
}
else
{
$this->_args['html']['name'] = $htmlArgs['name'];
}
}
}
}
class Widget extends Partial
@@ -74,4 +74,87 @@ class Prestudent_model extends DB_Model
)
);
}
/**
* Returns a list of prestudent with additional information:
* - person_id
* - name, surname, gender and birthday
* - email
* - studiengang and orgform
* - studienplan
* - stufe and aufnahmegruppe
* - reihungstest score
*/
public function getPrestudentMultiAssign($studiengang = null, $studiensemester = null, $gruppe = null, $reihungstest = null, $stufe = null)
{
$this->addSelect(
'DISTINCT ON(p.person_id, prestudent_id) p.person_id,
prestudent_id,
p.nachname,
p.vorname,
p.geschlecht,
p.gebdatum,
k.kontakt AS email,
sg.kurzbzlang,
sg.bezeichnung,
sg.orgform_kurzbz,
sgt.bezeichnung AS typ,
s.bezeichnung AS studienplan,
ps.rt_stufe,
aufnahmegruppe_kurzbz,
rtp.punkte'
);
$this->addJoin('public.tbl_rt_person rtp', 'person_id');
$this->addJoin('public.tbl_person p', 'person_id', 'LEFT');
$this->addJoin(
'(
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = \'email\'
ORDER BY kontakt_id DESC
) k',
'person_id',
'LEFT'
);
$this->addJoin('public.tbl_prestudentstatus ps', 'prestudent_id');
$this->addJoin('lehre.tbl_studienplan s', 's.studienplan_id = ps.studienplan_id');
$this->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
$this->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz');
$this->addJoin('public.tbl_studiengangstyp sgt', 'typ');
$this->addOrder('p.person_id', 'ASC');
$this->addOrder('prestudent_id', 'ASC');
$parametersArray = array('p.aktiv' => true, 'ps.status_kurzbz' => 'Interessent');
if ($studiengang != null)
{
$parametersArray['sg.studiengang_kz'] = $studiengang;
}
if ($studiensemester != null)
{
$parametersArray['ps.studiensemester_kurzbz'] = $studiensemester;
}
if ($gruppe != null)
{
$parametersArray['aufnahmegruppe_kurzbz'] = $gruppe;
}
if ($reihungstest != null)
{
$parametersArray['rtp.rt_id'] = $reihungstest;
}
if ($stufe != null)
{
$parametersArray['ps.rt_stufe'] = $stufe;
}
return $this->loadWhere($parametersArray);
}
}
@@ -0,0 +1,333 @@
<?php $this->load->view("templates/header", array("title" => "Users manager", "jquery" => true, "tablesort" => true, "jquery_checkboxes" => true, "jquery_custom" => true)); ?>
<body>
<form id="usersFiltersForm" action="" method="post">
<table>
<tr>
<td>
<?php
echo $this->widgetlib->widget(
'Studiengang_widget',
array('studiengang' => $studiengang),
array('name' => 'studiengang', 'id' => 'studiengangFilter')
);
?>
</td>
<td>
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array('studiensemester' => $studiensemester),
array('name' => 'studiensemester', 'id' => 'studiensemesterFilter')
);
?>
</td>
<td>
<?php
echo $this->widgetlib->widget(
'Reihungstest_widget',
array('reihungstest' => $reihungstest, 'studiengang' => $studiengang, 'studiensemester' => $studiensemester),
array('name' => 'reihungstest', 'id' => 'reihungstestFilter')
);
?>
</td>
<td>
<?php
echo $this->widgetlib->widget(
'Aufnahmegruppe_widget',
array('aufnahmegruppe' => $aufnahmegruppe),
array('name' => 'aufnahmegruppe', 'id' => 'aufnahmegruppeFilter')
);
?>
</td>
<td>
<?php
echo $this->widgetlib->widget(
'Stufe_widget',
array('stufe' => $stufe),
array('name' => 'stufe', 'id' => 'stufeFilter')
);
?>
</td>
</tr>
</table>
</form>
<br>
<form id="linkUsersForm" action="" method="post">
<?php
if ($users != null)
{
?>
<table>
<tr>
<td colspan="2">
<strong>Assign to:</strong>
</td>
</tr>
<tr>
<td height="3px" colspan="2"></td>
</tr>
<tr>
<td>
<?php
echo $this->widgetlib->widget(
'Stufe_widget',
array('stufe' => $stufe),
array('name' => 'stufe', 'id' => 'stufeAssign')
);
?>
</td>
<td>&nbsp;</td>
<td>
<input type="button" id="linkToStufe" value="Assign this stufe">
</td>
</tr>
<tr>
<td>
<?php
echo $this->widgetlib->widget(
'Aufnahmegruppe_widget',
array('aufnahmegruppe' => $aufnahmegruppe),
array('name' => 'aufnahmegruppe', 'id' => 'aufnahmegruppeAssign')
);
?>
<td>&nbsp;</td>
<td>
<input type="button" id="linkToGruppe" value="Assign to this group">
</td>
</tr>
</table>
<?php
}
?>
<br>
<br>
<div>
<?php
if ($users != null)
{
?>
<table id="t0" class="tablesorter">
<thead>
<tr>
<th>&nbsp;</th>
<th class="clm_prestudent_id header">Prestudent ID</th>
<th class="clm_person_id header">Person ID</th>
<th class="header headerSortDown">Vorname</th>
<th>Nachname</th>
<th>Geschlecht</th>
<th>Studiengang</th>
<th>OrgForm</th>
<th>Studienplan</th>
<th>Geburtsdatum</th>
<th>Email</th>
<th>Stufe</th>
<th>Gruppe</th>
<th>Punkte</th>
</tr>
</thead>
<tbody>
<?php
for ($i = 0; $i < count($users); $i++)
{
$user = $users[$i];
echo "<tr>";
echo "<td>";
echo '<input type="checkbox" name="prestudent_id[]" value="' . $user->prestudent_id . '">';
echo "</td>";
echo "<td>";
echo $user->prestudent_id;
echo "</td>";
echo "<td>";
echo $user->person_id;
echo "</td>";
echo "<td>";
echo $user->vorname;
echo "</td>";
echo "<td>";
echo $user->nachname;
echo "</td>";
echo "<td>";
echo $user->geschlecht;
echo "</td>";
echo "<td>";
echo $user->kurzbzlang;
echo "</td>";
echo "<td>";
echo $user->orgform_kurzbz;
echo "</td>";
echo "<td>";
echo $user->studienplan;
echo "</td>";
echo "<td>";
echo $user->gebdatum;
echo "</td>";
echo "<td>";
echo $user->email;
echo "</td>";
echo "<td>";
echo $user->rt_stufe;
echo "</td>";
echo "<td>";
echo $user->aufnahmegruppe_kurzbz;
echo "</td>";
echo "<td>";
echo $user->punkte;
echo "</td>";
echo "</tr>";
}
?>
</tbody>
</table>
<?php
}
else
{
echo 'No users found.';
}
?>
</div>
</form>
<?php
$hrefLinkToStufe = str_replace("/system/aufnahme/PrestudentMultiAssign", "/system/aufnahme/PrestudentMultiAssign/linkToStufe", $_SERVER["REQUEST_URI"]);
$hrefLinkToAufnahmegruppe = str_replace("/system/aufnahme/PrestudentMultiAssign", "/system/aufnahme/PrestudentMultiAssign/linkToAufnahmegruppe", $_SERVER["REQUEST_URI"]);
?>
<script>
$(document).ready(function() {
if ($("#linkToStufe"))
{
$("#linkToStufe").click(function() {
$.ajax({
type: "POST",
dataType: "json",
url: "<?php echo $hrefLinkToStufe; ?>",
data: $("#linkUsersForm").serialize(),
success: function(data, textStatus, jqXHR) {
alert(data.msg);
$("#usersFiltersForm").submit();
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
});
});
}
if ($("#linkToGruppe"))
{
$("#linkToGruppe").click(function() {
$.ajax({
type: "POST",
dataType: "json",
url: "<?php echo $hrefLinkToAufnahmegruppe; ?>",
data: $("#linkUsersForm").serialize(),
success: function(data, textStatus, jqXHR) {
alert(data.msg);
$("#usersFiltersForm").submit();
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
});
});
}
if ($('#studiengangFilter'))
{
$('#studiengangFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
if ($('#studiensemesterFilter'))
{
$('#studiensemesterFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
if ($('#aufnahmegruppeFilter'))
{
$('#aufnahmegruppeFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
if ($('#stufeFilter'))
{
$('#stufeFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
if ($('#reihungstestFilter'))
{
$('#reihungstestFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
$(".tablesorter").each(function(i, v) {
$("#"+v.id).tablesorter(
{
widgets: ["zebra"],
sortList: [[3,0],[4,0]],
headers: {0: { sorter: false}}
});
$("#toggle_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('toggle');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
$("#uncheck_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('uncheck');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
$("#"+v.id).checkboxes('range', true);
});
$('.chkbox').change(function()
{
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
});
</script>
</body>
<?php $this->load->view("templates/footer"); ?>
-305
View File
@@ -1,305 +0,0 @@
<?php $this->load->view("templates/header", array("title" => "Users manager", "jquery" => true, "tablesort" => true, "jquery_checkboxes" => true, "jquery_custom" => true)); ?>
<body>
<div>
<form id="usersFiltersForm" action="" method="post">
<?php
echo $this->widgetlib->widget(
'Usersfilters_widget',
array(
'studiengang' => $studiengang,
'studiensemester' => $studiensemester,
'gruppe' => $gruppe,
'reihungstest' => $reihungstest,
'stufe' => $stufe
)
);
?>
</form>
</div>
<br>
<form id="linkUsersForm" action="" method="post">
<?php
if ($users != null)
{
?>
<table>
<tr>
<td colspan="2">
<strong>Assign to:</strong>
</td>
</tr>
<tr>
<td height="3px" colspan="2"></td>
</tr>
<tr>
<td>
<select name="stufe">
<?php foreach($stufen as $v): ?>
<?php
$selected = '';
if ($v->stufe == $selectedStufe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->stufe; ?>" <?php echo $selected; ?>>
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
<td>&nbsp;</td>
<td>
<input type="button" id="linkToStufe" value="Assign this stufe">
</td>
</tr>
<tr>
<td>
<select name="aufnahmegruppe">
<?php foreach($gruppen as $v): ?>
<?php
$selected = '';
if ($v->gruppe_kurzbz == $selectedGruppe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->gruppe_kurzbz; ?>" <?php echo $selected; ?>>
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
<td>&nbsp;</td>
<td>
<input type="button" id="linkToGruppe" value="Assign to this group">
</td>
</tr>
</table>
<?php
}
?>
<br>
<br>
<div>
<?php
if ($users != null)
{
?>
<table id="t0" class="tablesorter">
<thead>
<tr>
<th>&nbsp;</th>
<th class="clm_prestudent_id header">Prestudent ID</th>
<th class="clm_person_id header">Person ID</th>
<th class="header headerSortDown">Vorname</th>
<th>Nachname</th>
<th>Geschlecht</th>
<th>Studiengang</th>
<th>OrgForm</th>
<th>Studienplan</th>
<th>Geburtsdatum</th>
<th>Email</th>
<th>Stufe</th>
<th>Gruppe</th>
<th>Punkte</th>
</tr>
</thead>
<tbody>
<?php
for ($i = 0; $i < count($users); $i++)
{
$user = $users[$i];
echo "<tr>";
echo "<td>";
echo '<input type="checkbox" name="prestudent_id[]" value="' . $user->prestudent_id . '">';
echo "</td>";
echo "<td>";
echo $user->prestudent_id;
echo "</td>";
echo "<td>";
echo $user->person_id;
echo "</td>";
echo "<td>";
echo $user->vorname;
echo "</td>";
echo "<td>";
echo $user->nachname;
echo "</td>";
echo "<td>";
echo $user->geschlecht;
echo "</td>";
echo "<td>";
echo $user->kurzbzlang;
echo "</td>";
echo "<td>";
echo $user->orgform_kurzbz;
echo "</td>";
echo "<td>";
echo $user->studienplan;
echo "</td>";
echo "<td>";
echo $user->gebdatum;
echo "</td>";
echo "<td>";
echo $user->email;
echo "</td>";
echo "<td>";
echo $user->rt_stufe;
echo "</td>";
echo "<td>";
echo $user->aufnahmegruppe_kurzbz;
echo "</td>";
echo "<td>";
echo $user->punkte;
echo "</td>";
echo "</tr>";
}
?>
</tbody>
</table>
<?php
}
else
{
echo 'No users found.';
}
?>
</div>
</form>
<?php
$hrefLinkToStufe = str_replace("/system/Users", "/system/Users/linkToStufe", $_SERVER["REQUEST_URI"]);
$hrefLinkToAufnahmegruppe = str_replace("/system/Users", "/system/Users/linkToAufnahmegruppe", $_SERVER["REQUEST_URI"]);
?>
<script>
$(document).ready(function() {
if ($("#linkToStufe"))
{
$("#linkToStufe").click(function() {
$.ajax({
type: "POST",
dataType: "json",
url: "<?php echo $hrefLinkToStufe; ?>",
data: $("#linkUsersForm").serialize(),
success: function(data, textStatus, jqXHR) {
alert(data.msg);
$("#usersFiltersForm").submit();
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
});
});
}
if ($("#linkToGruppe"))
{
$("#linkToGruppe").click(function() {
$.ajax({
type: "POST",
dataType: "json",
url: "<?php echo $hrefLinkToAufnahmegruppe; ?>",
data: $("#linkUsersForm").serialize(),
success: function(data, textStatus, jqXHR) {
alert(data.msg);
$("#usersFiltersForm").submit();
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
});
});
}
$(".tablesorter").each(function(i, v) {
$("#"+v.id).tablesorter(
{
widgets: ["zebra"],
sortList: [[3,0],[4,0]],
headers: {0: { sorter: false}}
});
$("#toggle_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('toggle');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
$("#uncheck_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('uncheck');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
$("#"+v.id).checkboxes('range', true);
});
$('.chkbox').change(function()
{
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
});
function studiengangSelected(value)
{
submitUsersFiltersForm();
}
function studiensemesterSelected(value)
{
submitUsersFiltersForm();
}
function reihungstestSelected(value)
{
submitUsersFiltersForm();
}
function gruppeSelected(value)
{
submitUsersFiltersForm();
}
function stufeSelected(value)
{
submitUsersFiltersForm();
}
function submitUsersFiltersForm()
{
document.getElementById("usersFiltersForm").submit();
}
</script>
</body>
<?php $this->load->view("templates/footer"); ?>
@@ -0,0 +1,14 @@
<select id="<?php echo $html['id']; ?>" name="<?php echo $html['name']; ?>">
<?php foreach($aufnahmegruppen as $v): ?>
<?php
$selected = '';
if ($v->gruppe_kurzbz == $aufnahmegruppe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->gruppe_kurzbz; ?>" <?php echo $selected; ?>>
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
@@ -0,0 +1,14 @@
<select id="<?php echo $html['id']; ?>" name="<?php echo $html['name']; ?>">
<?php foreach($reihungstests as $v): ?>
<?php
$selected = '';
if ($v->reihungstest_id == $reihungstest)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->reihungstest_id; ?>" <?php echo $selected; ?>>
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
+23
View File
@@ -0,0 +1,23 @@
<select id="<?php echo $html['id']; ?>" name="<?php echo $html['name']; ?>">
<?php foreach($studiengaenge as $v): ?>
<?php
$selected = '';
if ($v->studiengang_kz == $studiengang)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->studiengang_kz; ?>" <?php echo $selected; ?>>
<?php
if ($v->studiengang_kz == '')
{
echo $v->kurzbzlang;
}
else
{
echo $v->kurzbzlang . ' (' . $v->bezeichnung . ')';
}
?>
</option>
<?php endforeach; ?>
</select>
@@ -0,0 +1,14 @@
<select id="<?php echo $html['id']; ?>" name="<?php echo $html['name']; ?>">
<?php foreach($studiensemesters as $v): ?>
<?php
$selected = '';
if ($v->studiensemester_kurzbz == $studiensemester)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->studiensemester_kurzbz; ?>" <?php echo $selected; ?>>
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
+14
View File
@@ -0,0 +1,14 @@
<select id="<?php echo $html['id']; ?>" name="<?php echo $html['name']; ?>">
<?php foreach($stufen as $v): ?>
<?php
$selected = '';
if ($v->stufe == $stufe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->stufe; ?>" <?php echo $selected; ?>>
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
-107
View File
@@ -1,107 +0,0 @@
<?php
if (isset($errors) && is_array($errors) && count($errors) > 0)
{
?>
<div class="errors">
<?php foreach($errors as $e): ?>
<?php echo $e->retval; ?><br>
<?php endforeach; ?>
</div>
<?php
}
?>
<table>
<tr>
<td>
<select id="studiengang" name="studiengang">
<?php foreach($studiengaenge as $v): ?>
<?php
$selected = '';
if ($v->studiengang_kz == $selectedStudiengang)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->studiengang_kz; ?>" <?php echo $selected; ?> onClick="studiengangSelected(this.value)">
<?php
if ($v->studiengang_kz == '-1')
{
echo $v->kurzbzlang;
}
else
{
echo $v->kurzbzlang . ' (' . $v->bezeichnung . ')';
}
?>
</option>
<?php endforeach; ?>
</select>
</td>
<td>
<select id="studiensemester" name="studiensemester">
<?php foreach($studiensemester as $v): ?>
<?php
$selected = '';
if ($v->studiensemester_kurzbz == $selectedStudiensemester)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->studiensemester_kurzbz; ?>" <?php echo $selected; ?> onClick="studiensemesterSelected(this.value)">
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
<td>
<select id="reihungstest" name="reihungstest">
<?php foreach($reihungstest as $v): ?>
<?php
$selected = '';
if ($v->reihungstest_id == $selectedReihungstest)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->reihungstest_id; ?>" <?php echo $selected; ?> onClick="reihungstestSelected(this.value)">
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td>
<select id="gruppe" name="gruppe">
<?php foreach($gruppen as $v): ?>
<?php
$selected = '';
if ($v->gruppe_kurzbz == $selectedGruppe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->gruppe_kurzbz; ?>" <?php echo $selected; ?> onClick="gruppeSelected(this.value)">
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
<td colspan="2">
<select id="stufe" name="stufe">
<?php foreach($stufen as $v): ?>
<?php
$selected = '';
if ($v->stufe == $selectedStufe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->stufe; ?>" <?php echo $selected; ?> onClick="stufeSelected(this.value)">
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
</tr>
</table>
@@ -0,0 +1,36 @@
<?php
class Aufnahmegruppe_widget extends Widget
{
public function __construct($name, $args, $htmlArgs = array())
{
// Calling daddy
parent::__construct($name, $args, $htmlArgs);
}
public function display($widgetData)
{
// Gruppen
$this->load->model('organisation/Gruppe_model', 'GruppeModel');
$this->GruppeModel->addOrder('beschreibung');
$gruppen = $this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true));
if (hasData($gruppen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->gruppe_kurzbz = Partial::HTML_DEFAULT_VALUE;
$emptyElement->beschreibung = 'Select a group...';
array_unshift($gruppen->retval, $emptyElement);
}
else
{
show_error($gruppen);
}
// Data to be used in the widget view
$widgetData['aufnahmegruppen'] = $gruppen->retval;
// Loads widget view
$this->view('widgets/aufnahmegruppe', $widgetData);
}
}
@@ -0,0 +1,56 @@
<?php
class Reihungstest_widget extends Widget
{
public function __construct($name, $args, $htmlArgs = array())
{
// Calling daddy
parent::__construct($name, $args, $htmlArgs);
}
public function display($widgetData)
{
// Reihungstest
$reihungstest = success(array()); // default value empty array
// If the parameters studiengang or studiensemester are given and are not empty
if (isset($widgetData) && is_array($widgetData)
&& ((isset($widgetData['studiengang']) && !empty($widgetData['studiengang']))
|| (isset($widgetData['studiensemester']) && !empty($widgetData['studiensemester']))))
{
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
$this->ReihungstestModel->addSelect('reihungstest_id, concat(datum, \' \', uhrzeit, \' \', anmerkung) AS beschreibung');
$this->ReihungstestModel->addOrder('datum', 'DESC');
$parametersArray = array();
if ($widgetData['studiengang'] != null)
{
$parametersArray['studiengang_kz'] = $widgetData['studiengang'];
}
if ($widgetData['studiensemester'] != null)
{
$parametersArray['studiensemester_kurzbz'] = $widgetData['studiensemester'];
}
$reihungstest = $this->ReihungstestModel->loadWhere($parametersArray);
if (isError($reihungstest))
{
show_error($reihungstest);
}
}
if (!isError($reihungstest))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->reihungstest_id = Partial::HTML_DEFAULT_VALUE;
$emptyElement->beschreibung = 'Select a reihungstest...';
array_unshift($reihungstest->retval, $emptyElement);
}
// Data to be used in the widget view
$widgetData['reihungstests'] = $reihungstest->retval;
// Loads widget view
$this->view('widgets/reihungstest', $widgetData);
}
}
@@ -0,0 +1,37 @@
<?php
class Studiengang_widget extends Widget
{
public function __construct($name, $args, $htmlArgs = array())
{
// Calling daddy
parent::__construct($name, $args, $htmlArgs);
}
public function display($widgetData)
{
// Studiengaenge
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$this->StudiengangModel->addOrder('kurzbzlang');
$studiengaenge = $this->StudiengangModel->loadWhere(array('aktiv' => true));
if (hasData($studiengaenge))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->studiengang_kz = Partial::HTML_DEFAULT_VALUE;
$emptyElement->kurzbzlang = 'Select a studiengang...';
$emptyElement->bezeichnung = '';
array_unshift($studiengaenge->retval, $emptyElement);
}
else
{
show_error($studiengaenge);
}
// Data to be used in the widget view
$widgetData['studiengaenge'] = $studiengaenge->retval;
// Loads widget view
$this->view('widgets/studiengang', $widgetData);
}
}
@@ -0,0 +1,37 @@
<?php
class Studiensemester_widget extends Widget
{
public function __construct($name, $args, $htmlArgs = array())
{
// Calling daddy
parent::__construct($name, $args, $htmlArgs);
}
public function display($widgetData)
{
// Studiensemester
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$this->StudiengangModel->addSelect('studiensemester_kurzbz, studiensemester_kurzbz AS beschreibung');
$this->StudiengangModel->addOrder('studiensemester_kurzbz', 'DESC');
$studiensemester = $this->StudiensemesterModel->load();
if (hasData($studiensemester))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->studiensemester_kurzbz = Partial::HTML_DEFAULT_VALUE;
$emptyElement->beschreibung = 'Select a studiensemester...';
array_unshift($studiensemester->retval, $emptyElement);
}
else
{
show_error($studiensemester);
}
// Data to be used in the widget view
$widgetData['studiensemesters'] = $studiensemester->retval;
// Loads widget view
$this->view('widgets/studiensemester', $widgetData);
}
}
+37
View File
@@ -0,0 +1,37 @@
<?php
class Stufe_widget extends Widget
{
public function __construct($name, $args, $htmlArgs = array())
{
// Calling daddy
parent::__construct($name, $args, $htmlArgs);
}
public function display($widgetData)
{
// Stufe
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
$this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe, stufe AS beschreibung');
$this->ReihungstestModel->addOrder('stufe');
$stufen = $this->ReihungstestModel->loadWhere('stufe IS NOT NULL');
if (hasData($stufen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->stufe = Partial::HTML_DEFAULT_VALUE;
$emptyElement->beschreibung = 'Select a stufe...';
array_unshift($stufen->retval, $emptyElement);
}
else
{
show_error($stufen);
}
// Data to be used in the widget view
$widgetData['stufen'] = $stufen->retval;
// Loads widget view
$this->view('widgets/stufe', $widgetData);
}
}
-183
View File
@@ -1,183 +0,0 @@
<?php
class Usersfilters_widget extends Widget
{
// Properties containing parameters given by the view
private $studiengang;
private $studiensemester;
private $gruppe;
private $reihungstest;
private $stufe;
public function __construct($name, $args)
{
// Calling daddy
parent::__construct($name, $args);
// Loads helper message to manage returning messages
$this->load->helper('message');
// Initialising properties
$this->_setProperties($args);
}
public function display($widgetData)
{
$errors = array(); // Array containing possible errors
// Studiengaenge
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$this->StudiengangModel->addOrder('kurzbzlang');
$studiengaenge = $this->StudiengangModel->loadWhere(array('aktiv' => true));
if (hasData($studiengaenge))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->studiengang_kz = '-1';
$emptyElement->kurzbzlang = 'Select a studiengang...';
$emptyElement->bezeichnung = '';
array_unshift($studiengaenge->retval, $emptyElement);
}
else
{
$errors[] = $studiengaenge; // Adding the error to the array of errors
}
// Studiensemester
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$this->StudiengangModel->addSelect('studiensemester_kurzbz, studiensemester_kurzbz AS beschreibung');
$this->StudiengangModel->addOrder('studiensemester_kurzbz', 'DESC');
$studiensemester = $this->StudiensemesterModel->load();
if (hasData($studiensemester))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->studiensemester_kurzbz = '-1';
$emptyElement->beschreibung = 'Select a studiensemester...';
array_unshift($studiensemester->retval, $emptyElement);
}
else
{
$errors[] = $studiensemester; // Adding the error to the array of errors
}
// Gruppen
$this->load->model('organisation/Gruppe_model', 'GruppeModel');
$this->GruppeModel->addOrder('beschreibung');
$gruppen = $this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true));
if (hasData($gruppen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->gruppe_kurzbz = '-1';
$emptyElement->beschreibung = 'Select a group...';
array_unshift($gruppen->retval, $emptyElement);
}
else
{
$errors[] = $gruppen; // Adding the error to the array of errors
}
// Stufe
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
$this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe, stufe AS beschreibung');
$this->ReihungstestModel->addOrder('stufe');
$stufen = $this->ReihungstestModel->loadWhere('stufe IS NOT NULL');
if (hasData($stufen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->stufe = '-1';
$emptyElement->beschreibung = 'Select a stufe...';
array_unshift($stufen->retval, $emptyElement);
}
else
{
$errors[] = $stufen; // Adding the error to the array of errors
}
// Reihungstest
$reihungstest = success(array()); // default value empty array
// If the parameters studiengang or studiensemester are given and are not empty
if (($this->studiengang != null && !empty($this->studiengang))
|| ($this->studiensemester != null && !empty($this->studiensemester)))
{
$this->ReihungstestModel->resetQuery(); // cleans any previous setting
$this->ReihungstestModel->addSelect('reihungstest_id, concat(datum, \' \', uhrzeit, \' \', anmerkung) AS beschreibung');
$this->ReihungstestModel->addOrder('datum', 'DESC');
$parametersArray = array();
if ($this->studiengang != null)
{
$parametersArray['studiengang_kz'] = $this->studiengang;
}
if ($this->studiensemester != null)
{
$parametersArray['studiensemester_kurzbz'] = $this->studiensemester;
}
$reihungstest = $this->ReihungstestModel->loadWhere($parametersArray);
if (isError($reihungstest))
{
$errors[] = $reihungstest; // Adding the error to the array of errors
}
}
if (!isError($reihungstest))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->reihungstest_id = '-1';
$emptyElement->beschreibung = 'Select a reihungstest...';
array_unshift($reihungstest->retval, $emptyElement);
}
// Data to be used in the widget view
$viewData = array(
'studiengaenge' => $studiengaenge->retval,
'studiensemester' => $studiensemester->retval,
'gruppen' => $gruppen->retval,
'stufen' => $stufen->retval,
'reihungstest' => $reihungstest->retval,
'errors' => $errors,
'selectedStudiengang' => $this->studiengang,
'selectedStudiensemester' => $this->studiensemester,
'selectedGruppe' => $this->gruppe,
'selectedReihungstest' => $this->reihungstest,
'selectedStufe' => $this->stufe
);
// Loads widget view
$this->view('widgets/usersfilters', $viewData);
}
/**
* Initialising properties
*/
private function _setProperties($args)
{
if (isset($args) && is_array($args))
{
if (isset($args['studiengang']) && $args['studiengang'] != '-1')
{
$this->studiengang = $args['studiengang'];
}
if (isset($args['studiensemester']) && $args['studiensemester'] != '-1')
{
$this->studiensemester = $args['studiensemester'];
}
if (isset($args['gruppe']) && $args['gruppe'] != '-1')
{
$this->gruppe = $args['gruppe'];
}
if (isset($args['reihungstest']) && $args['reihungstest'] != '-1')
{
$this->reihungstest = $args['reihungstest'];
}
if (isset($args['stufe']) && $args['stufe'] != '-1')
{
$this->stufe = $args['stufe'];
}
}
}
}