mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
Manager Gruppenadministration:
first version of adding Benutzer to Gruppe
This commit is contained in:
@@ -18,12 +18,14 @@ class Gruppenadministration extends Auth_Controller
|
||||
array(
|
||||
'index' => 'admin:r',
|
||||
'showBenutzergruppe' => 'admin:r',
|
||||
'saveBPK' => 'admin:rw',
|
||||
'getAllBenutzer' => 'admin:r',
|
||||
'addBenutzer' => 'admin:rw',
|
||||
)
|
||||
);
|
||||
|
||||
// Loads models
|
||||
$this->load->model('organisation/benutzergruppe_model', 'BenutzergruppeModel');
|
||||
$this->load->model('person/benutzer_model', 'BenutzerModel');
|
||||
$this->load->model('person/benutzergruppe_model', 'BenutzergruppeModel');
|
||||
|
||||
$this->load->library('WidgetLib');
|
||||
$this->loadPhrases(
|
||||
@@ -69,7 +71,12 @@ class Gruppenadministration extends Auth_Controller
|
||||
$this->BenutzergruppeModel->addSelect('uid, vorname, nachname');
|
||||
$this->BenutzergruppeModel->addJoin('public.tbl_benutzer', 'uid');
|
||||
$this->BenutzergruppeModel->addJoin('public.tbl_person', 'person_id');
|
||||
$benutzer = $this->BenutzergruppeModel->loadWhere(array('gruppe_kurzbz' => $gruppe_kurzbz));
|
||||
$benutzerRes = $this->BenutzergruppeModel->loadWhere(array('gruppe_kurzbz' => $gruppe_kurzbz));
|
||||
|
||||
if (isError($benutzerRes))
|
||||
show_error(getError($benutzerRes));
|
||||
|
||||
$benutzer = hasData($benutzerRes) ? getData($benutzerRes) : array();
|
||||
|
||||
$this->load->view(
|
||||
'organisation/gruppenadministration/benutzergruppe.php',
|
||||
@@ -78,27 +85,41 @@ class Gruppenadministration extends Auth_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master
|
||||
* Gets all Benutzer for assignment to Gruppe
|
||||
*/
|
||||
public function getAllBenutzer()
|
||||
{
|
||||
$this->BenutzerModel->addSelect('uid, vorname, nachname');
|
||||
$this->BenutzerModel->addJoin('public.tbl_person', 'person_id');
|
||||
$benutzerRes = $this->BenutzerModel->loadWhere(
|
||||
array('tbl_benutzer.aktiv' => true)
|
||||
);
|
||||
$this->outputJson($benutzerRes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a Benutzer to Gruppe
|
||||
*/
|
||||
// public function saveBPK()
|
||||
// {
|
||||
// $person_id = $this->input->post('person_id');
|
||||
// $bpk = $this->input->post('bpk');
|
||||
//
|
||||
// if (isEmptyString($person_id))
|
||||
// $result = error('PersonID missing');
|
||||
// else
|
||||
// {
|
||||
// $result = $this->PersonModel->update(
|
||||
// $person_id,
|
||||
// array(
|
||||
// 'bpk' => $bpk,
|
||||
// 'updateamum' => date('Y-m-d H:i:s')
|
||||
// )
|
||||
// );
|
||||
// redirect('person/BPKWartung/index');
|
||||
// }
|
||||
// }
|
||||
public function addBenutzer()
|
||||
{
|
||||
$uid = $this->input->post('uid');
|
||||
$gruppe_kurzbz = $this->input->post('gruppe_kurzbz');
|
||||
|
||||
if (isEmptyString($uid))
|
||||
$result = error('Uid missing');
|
||||
else
|
||||
{
|
||||
$result = $this->BenutzergruppeModel->insert(
|
||||
array(
|
||||
'uid' => $uid,
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz,
|
||||
'insertamum' => date('Y-m-d H:i:s')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<?php
|
||||
class Benutzergruppe_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_benutzergruppe';
|
||||
$this->pk = array('uid', 'gruppe_kurzbz');
|
||||
}
|
||||
}
|
||||
@@ -10,13 +10,14 @@
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customJSs' => array('public/js/bootstrapper.js')
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/tablesort/tablesort.js', 'public/js/organisation/benutzergruppe.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
@@ -31,13 +32,52 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo ucfirst($this->p->t('gruppenadministration', 'benutzergruppe')); ?>
|
||||
<?php echo ucfirst($this->p->t('gruppenadministration', 'benutzergruppe')).' '.$gruppe_kurzbz ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<!-- <table>
|
||||
</table> -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="form-inline">
|
||||
<div class="input-group" id="absgstatusgrselect_137998">
|
||||
<!-- <label for="mitarbeiterSelect"><php echo $this->p->t('benutzergruppe', 'zustaendigerMitarbeiter') ></label> -->
|
||||
<input type="text" class="form-control" name="teilnehmerSelect" id="teilnehmerSelect">
|
||||
<input type="hidden" name="teilnehmer_uid" id="teilnehmer_uid">
|
||||
<input type="hidden" name="gruppe_kurzbz" id="gruppe_kurzbz" value="<?php echo $gruppe_kurzbz ?>">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default" id="teilnehmerHinzufuegen">
|
||||
<?php echo $this->p->t('ui', 'hinzufuegen') ?>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<table class="table table-bordered table-condensed table-responsive" id="benutzer-table">
|
||||
<thead>
|
||||
<th>Uid</th>
|
||||
<th><?php echo ucfirst($this->p->t('global', 'vorname')); ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('global', 'nachname')); ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('ui', 'loeschen')); ?></th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?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')); ?>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
/**
|
||||
* Javascript file for benutzergruppe management page
|
||||
*/
|
||||
|
||||
var Benutzergruppe = {
|
||||
getAllBenutzer: function()
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'organisation/Gruppenadministration/getAllBenutzer',
|
||||
null,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
benutzerArr = [];
|
||||
|
||||
// save loaded data
|
||||
let benutzerData = FHC_AjaxClient.getData(data);
|
||||
|
||||
for (let i = 0; i < benutzerData.length; i++)
|
||||
{
|
||||
let ben = benutzerData[i];
|
||||
|
||||
benutzerArr.push(
|
||||
{
|
||||
vorname: ben.vorname,
|
||||
nachname: ben.nachname,
|
||||
uid: ben.uid,
|
||||
label: ben.nachname + " " + ben.vorname + " (" + ben.uid + ")",
|
||||
id: ben.uid
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// callback for searching source mitarbeiter array correctly
|
||||
let sourceCallback = function(request, response)
|
||||
{
|
||||
// case insensitive matcher
|
||||
let matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
|
||||
|
||||
// match vorname nachname OR nachname vorname OR uid
|
||||
response($.grep(benutzerArr, function (value) {
|
||||
return matcher.test(value.nachname + ' '+value.vorname + ' ' + value.nachname)
|
||||
|| matcher.test(value.uid);
|
||||
}));
|
||||
}
|
||||
|
||||
// fill autocomplete field with benutzer data
|
||||
Benutzergruppe._fillAutocomplete(
|
||||
'teilnehmerSelect',
|
||||
'teilnehmer_uid',
|
||||
sourceCallback
|
||||
);
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
addBenutzer: function(uid, gruppe_kurzbz)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
'organisation/Gruppenadministration/addBenutzer',
|
||||
{
|
||||
uid: uid,
|
||||
gruppe_kurzbz: gruppe_kurzbz
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
let addBenutzerRes = FHC_AjaxClient.getData(data);
|
||||
console.log(addBenutzerRes);
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
_fillAutocomplete: function(autocompleteId, idFieldId, source)
|
||||
{
|
||||
// jQuery ui autocomplete for benutzer
|
||||
$("#"+autocompleteId).autocomplete(
|
||||
{
|
||||
// custom matcher
|
||||
source: source,
|
||||
autoFocus: true,
|
||||
select: function(event, ui)
|
||||
{
|
||||
// when autocmplete entry selected, display label text in autocomplete, fill hidden value field
|
||||
$("#"+autocompleteId).val(ui.item.label);
|
||||
$("#"+idFieldId).val(ui.item.id);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* When JQuery is up
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
|
||||
Benutzergruppe.getAllBenutzer();
|
||||
Tablesort.addTablesorter(
|
||||
"benutzer-table", [[0,0], [2,0]], ['filter'], 2
|
||||
)
|
||||
|
||||
$("#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