mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-21 22:19:27 +00:00
Gruppenadministration: - added delete functionality - Benutzer per group are retrieved via javascript and refreshed when group added/delted - moved gruppenadministration files to person folder from organisation - handle error when benutzer was already assigned to a group
This commit is contained in:
+62
-5
@@ -18,8 +18,10 @@ class Gruppenadministration extends Auth_Controller
|
||||
array(
|
||||
'index' => 'admin:r',
|
||||
'showBenutzergruppe' => 'admin:r',
|
||||
'getBenutzer' => 'admin:r',
|
||||
'getAllBenutzer' => 'admin:r',
|
||||
'addBenutzer' => 'admin:rw',
|
||||
'removeBenutzer' => 'admin:rw'
|
||||
)
|
||||
);
|
||||
|
||||
@@ -53,7 +55,7 @@ class Gruppenadministration extends Auth_Controller
|
||||
//$this->_setNavigationMenuIndex(); // define the navigation menu for this page
|
||||
|
||||
$this->load->view(
|
||||
'organisation/gruppenadministration/gruppenadministration.php',
|
||||
'person/gruppenadministration/gruppenadministration.php',
|
||||
array('uid' => $this->_uid)
|
||||
);
|
||||
}
|
||||
@@ -79,11 +81,27 @@ class Gruppenadministration extends Auth_Controller
|
||||
$benutzer = hasData($benutzerRes) ? getData($benutzerRes) : array();
|
||||
|
||||
$this->load->view(
|
||||
'organisation/gruppenadministration/benutzergruppe.php',
|
||||
'person/gruppenadministration/benutzergruppe.php',
|
||||
array('gruppe_kurzbz' => $gruppe_kurzbz, 'benutzer' => $benutzer)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Benutzer assigned to a Gruppe
|
||||
*/
|
||||
public function getBenutzer()
|
||||
{
|
||||
$gruppe_kurzbz = $this->input->get('gruppe_kurzbz');
|
||||
|
||||
$this->BenutzergruppeModel->addSelect('uid, vorname, nachname');
|
||||
$this->BenutzergruppeModel->addJoin('public.tbl_benutzer', 'uid');
|
||||
$this->BenutzergruppeModel->addJoin('public.tbl_person', 'person_id');
|
||||
$benutzerRes = $this->BenutzergruppeModel->loadWhere(array('gruppe_kurzbz' => $gruppe_kurzbz));
|
||||
|
||||
$this->outputJson($benutzerRes);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets all Benutzer for assignment to Gruppe
|
||||
*/
|
||||
@@ -109,6 +127,25 @@ class Gruppenadministration extends Auth_Controller
|
||||
$result = error('Uid missing');
|
||||
else
|
||||
{
|
||||
$benutzerExistsRes = $this->BenutzergruppeModel->loadWhere(
|
||||
array(
|
||||
'uid' => $uid,
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz
|
||||
)
|
||||
);
|
||||
|
||||
if (isError($benutzerExistsRes))
|
||||
{
|
||||
$this->outputJsonError(getError($benutzerExistsRes));
|
||||
return;
|
||||
}
|
||||
|
||||
if (hasData($benutzerExistsRes))
|
||||
{
|
||||
$this->outputJsonError(getError($this->p->t('gruppenadministration', 'benutzerZugewiesen')));
|
||||
return;
|
||||
}
|
||||
|
||||
$result = $this->BenutzergruppeModel->insert(
|
||||
array(
|
||||
'uid' => $uid,
|
||||
@@ -121,6 +158,26 @@ class Gruppenadministration extends Auth_Controller
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
public function removeBenutzer()
|
||||
{
|
||||
$uid = $this->input->post('uid');
|
||||
$gruppe_kurzbz = $this->input->post('gruppe_kurzbz');
|
||||
|
||||
if (isEmptyString($uid))
|
||||
$result = error('Uid missing');
|
||||
else
|
||||
{
|
||||
$result = $this->BenutzergruppeModel->delete(
|
||||
array(
|
||||
'uid' => $uid,
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
@@ -129,9 +186,9 @@ class Gruppenadministration extends Auth_Controller
|
||||
*/
|
||||
private function _setNavigationMenuShowDetails()
|
||||
{
|
||||
$this->load->library('NavigationLib', array('navigation_page' => 'organisation/Gruppenadministration/showBenutzergruppe'));
|
||||
$this->load->library('NavigationLib', array('navigation_page' => 'person/Gruppenadministration/showBenutzergruppe'));
|
||||
|
||||
$link = site_url('organisation/Gruppenadministration');
|
||||
$link = site_url('person/Gruppenadministration');
|
||||
|
||||
$this->navigationlib->setSessionMenu(
|
||||
array(
|
||||
@@ -156,7 +213,7 @@ class Gruppenadministration extends Auth_Controller
|
||||
*/
|
||||
// private function _setNavigationMenuIndex()
|
||||
// {
|
||||
// $this->load->library('NavigationLib', array('navigation_page' => 'organisation/Gruppenadministration/index'));
|
||||
// $this->load->library('NavigationLib', array('navigation_page' => 'person/gruppenadministration/index'));
|
||||
//
|
||||
// $link = site_url();
|
||||
//
|
||||
+6
-5
@@ -14,10 +14,10 @@
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
'ui'
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/tablesort/tablesort.js', 'public/js/organisation/benutzergruppe.js')
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/tablesort/tablesort.js', 'public/js/person/benutzergruppe.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
@@ -46,6 +46,7 @@
|
||||
<input type="hidden" name="gruppe_kurzbz" id="gruppe_kurzbz" value="<?php echo $gruppe_kurzbz ?>">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default" id="teilnehmerHinzufuegen">
|
||||
<?php echo $this->p->t('gruppenadministration', 'benutzer') ?>
|
||||
<?php echo $this->p->t('ui', 'hinzufuegen') ?>
|
||||
</button>
|
||||
</span>
|
||||
@@ -63,18 +64,18 @@
|
||||
<th><?php echo ucfirst($this->p->t('ui', 'loeschen')); ?></th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($benutzer as $ben): ?>
|
||||
<!-- <php foreach ($benutzer as $ben): ?>
|
||||
<tr>
|
||||
<td><?php echo $ben->uid; ?></td>
|
||||
<td><?php echo $ben->vorname; ?></td>
|
||||
<td><?php echo $ben->nachname; ?></td>
|
||||
<td>
|
||||
<button class="btn btn-default benutzerLoeschen" id="benutzerLoeschen">
|
||||
<?php echo ucfirst($this->p->t('ui', 'loeschen')); ?>
|
||||
<php echo ucfirst($this->p->t('ui', 'loeschen')); >
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<php endforeach; ?> -->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
+1
-1
@@ -36,7 +36,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('organisation/gruppenadministration/gruppenadministrationData.php'); ?>
|
||||
<?php $this->load->view('person/gruppenadministration/gruppenadministrationData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
/* NOTE: Dont use $this here for PHP Version compatibility */
|
||||
$datasetRaw->{'Teilnehmer'} = sprintf(
|
||||
'<a href="%s?gruppe_kurzbz=%s&origin_page=%s&fhc_controller_id=%s">'.$this->p->t('gruppenadministration', 'zuweisenlöschen').'</a>',
|
||||
site_url('organisation/Gruppenadministration/showBenutzergruppe'),
|
||||
site_url('person/Gruppenadministration/showBenutzergruppe'),
|
||||
$datasetRaw->{'gruppe_kurzbz'},
|
||||
'index',
|
||||
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
|
||||
@@ -3,10 +3,66 @@
|
||||
*/
|
||||
|
||||
var Benutzergruppe = {
|
||||
getBenutzer: function(gruppe_kurzbz)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'person/gruppenadministration/getBenutzer',
|
||||
{
|
||||
gruppe_kurzbz: gruppe_kurzbz
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
// save loaded data
|
||||
let benutzerData = FHC_AjaxClient.getData(data);
|
||||
|
||||
console.log(benutzerData);
|
||||
|
||||
let benutzerTable = $("#benutzer-table tbody");
|
||||
|
||||
benutzerTable.empty();
|
||||
|
||||
// fill table with Benutzer of Gruppe
|
||||
for (let i = 0; i < benutzerData.length; i++)
|
||||
{
|
||||
let benutzer = benutzerData[i];
|
||||
benutzerTable.append(
|
||||
"<tr>"+
|
||||
"<td>"+benutzer.uid+"</td>"+
|
||||
"<td>"+benutzer.vorname+"</td>"+
|
||||
"<td>"+benutzer.nachname+"</td>"+
|
||||
"<td>"+
|
||||
"<button class='btn btn-default benutzerLoeschen' id='"+benutzer.uid+"_benutzerLoeschen'>"+
|
||||
FHC_PhrasesLib.t('ui', 'loeschen')+
|
||||
"</button>"+
|
||||
"</td>"+
|
||||
"</tr>"
|
||||
);
|
||||
|
||||
// add delete event to button
|
||||
$("#"+benutzer.uid+"_benutzerLoeschen").click(
|
||||
function() {
|
||||
Benutzergruppe.removeBenutzer(benutzer.uid, gruppe_kurzbz);
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
Tablesort.addTablesorter(
|
||||
"benutzer-table", [[0,0], [2,0]], ["filter"], 2
|
||||
)
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
getAllBenutzer: function()
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'organisation/Gruppenadministration/getAllBenutzer',
|
||||
'person/gruppenadministration/getAllBenutzer',
|
||||
null,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
@@ -62,7 +118,7 @@ var Benutzergruppe = {
|
||||
addBenutzer: function(uid, gruppe_kurzbz)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
'organisation/Gruppenadministration/addBenutzer',
|
||||
'person/gruppenadministration/addBenutzer',
|
||||
{
|
||||
uid: uid,
|
||||
gruppe_kurzbz: gruppe_kurzbz
|
||||
@@ -72,7 +128,31 @@ var Benutzergruppe = {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
let addBenutzerRes = FHC_AjaxClient.getData(data);
|
||||
console.log(addBenutzerRes);
|
||||
|
||||
Benutzergruppe.getBenutzer(gruppe_kurzbz);
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
removeBenutzer: function(uid, gruppe_kurzbz)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
'person/gruppenadministration/removeBenutzer',
|
||||
{
|
||||
uid: uid,
|
||||
gruppe_kurzbz: gruppe_kurzbz
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
let addBenutzerRes = FHC_AjaxClient.getData(data);
|
||||
|
||||
Benutzergruppe.getBenutzer(gruppe_kurzbz);
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
@@ -105,16 +185,13 @@ var Benutzergruppe = {
|
||||
* When JQuery is up
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
|
||||
let gruppe_kurzbz = $("#gruppe_kurzbz").val();
|
||||
Benutzergruppe.getAllBenutzer();
|
||||
Tablesort.addTablesorter(
|
||||
"benutzer-table", [[0,0], [2,0]], ['filter'], 2
|
||||
)
|
||||
Benutzergruppe.getBenutzer(gruppe_kurzbz);
|
||||
|
||||
$("#teilnehmerHinzufuegen").click(
|
||||
function(){
|
||||
let uid = $("#teilnehmer_uid").val();
|
||||
let gruppe_kurzbz = $("#gruppe_kurzbz").val();
|
||||
Benutzergruppe.addBenutzer(uid, gruppe_kurzbz);
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user