mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Gruppenmanagement:
- renamed gruppenadministration to gruppenmanagement - added additional columns to gruppenmanagement filterwidget - improved comments - write public.tbl_log every time user is added or deleted from a group
This commit is contained in:
+35
-41
@@ -5,7 +5,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
/**
|
||||
* Page for managing groups of which user is the manager
|
||||
*/
|
||||
class Gruppenadministration extends Auth_Controller
|
||||
class Gruppenmanagement extends Auth_Controller
|
||||
{
|
||||
private $_uid; // contains the UID of the logged user
|
||||
|
||||
@@ -28,6 +28,7 @@ class Gruppenadministration extends Auth_Controller
|
||||
// Loads models
|
||||
$this->load->model('person/benutzer_model', 'BenutzerModel');
|
||||
$this->load->model('person/benutzergruppe_model', 'BenutzergruppeModel');
|
||||
$this->load->model('system/Log_model', 'LogModel');
|
||||
|
||||
$this->load->library('WidgetLib');
|
||||
$this->loadPhrases(
|
||||
@@ -55,7 +56,7 @@ class Gruppenadministration extends Auth_Controller
|
||||
//$this->_setNavigationMenuIndex(); // define the navigation menu for this page
|
||||
|
||||
$this->load->view(
|
||||
'person/gruppenadministration/gruppenadministration.php',
|
||||
'person/gruppenmanagement/gruppenmanagement.php',
|
||||
array('uid' => $this->_uid)
|
||||
);
|
||||
}
|
||||
@@ -70,18 +71,8 @@ class Gruppenadministration extends Auth_Controller
|
||||
|
||||
$data[self::FHC_CONTROLLER_ID] = $this->getControllerId();
|
||||
|
||||
// $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));
|
||||
//
|
||||
// if (isError($benutzerRes))
|
||||
// show_error(getError($benutzerRes));
|
||||
//
|
||||
// $benutzer = hasData($benutzerRes) ? getData($benutzerRes) : array();
|
||||
|
||||
$this->load->view(
|
||||
'person/gruppenadministration/benutzergruppe.php',
|
||||
'person/gruppenmanagement/benutzergruppe.php',
|
||||
array('gruppe_kurzbz' => $gruppe_kurzbz)
|
||||
);
|
||||
}
|
||||
@@ -142,7 +133,7 @@ class Gruppenadministration extends Auth_Controller
|
||||
|
||||
if (hasData($benutzerExistsRes))
|
||||
{
|
||||
$this->outputJsonError($this->p->t('gruppenadministration', 'benutzerSchonZugewiesen'));
|
||||
$this->outputJsonError($this->p->t('gruppenmanagement', 'benutzerSchonZugewiesen'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -153,11 +144,26 @@ class Gruppenadministration extends Auth_Controller
|
||||
'insertamum' => date('Y-m-d H:i:s')
|
||||
)
|
||||
);
|
||||
|
||||
// log the group add
|
||||
$lastQry = $this->db->last_query();
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$this->LogModel->insert(array(
|
||||
'mitarbeiter_uid' => $this->_uid,
|
||||
'beschreibung' => 'Gruppenmanagement: Nutzer zu Gruppe hinzugefügt',
|
||||
'sql' => $lastQry
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes Benutzer from Gruppe
|
||||
*/
|
||||
public function removeBenutzer()
|
||||
{
|
||||
$uid = $this->input->post('uid');
|
||||
@@ -175,6 +181,18 @@ class Gruppenadministration extends Auth_Controller
|
||||
);
|
||||
}
|
||||
|
||||
// log the group remove
|
||||
$lastQry = $this->db->last_query();
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$this->LogModel->insert(array(
|
||||
'mitarbeiter_uid' => $this->_uid,
|
||||
'beschreibung' => 'Gruppenmanagement: Nutzer aus Gruppe entfernt',
|
||||
'sql' => $lastQry
|
||||
));
|
||||
}
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
@@ -186,9 +204,9 @@ class Gruppenadministration extends Auth_Controller
|
||||
*/
|
||||
private function _setNavigationMenuShowDetails()
|
||||
{
|
||||
$this->load->library('NavigationLib', array('navigation_page' => 'person/Gruppenadministration/showBenutzergruppe'));
|
||||
$this->load->library('NavigationLib', array('navigation_page' => 'person/Gruppenmanagement/showBenutzergruppe'));
|
||||
|
||||
$link = site_url('person/Gruppenadministration');
|
||||
$link = site_url('person/Gruppenmanagement');
|
||||
|
||||
$this->navigationlib->setSessionMenu(
|
||||
array(
|
||||
@@ -209,32 +227,8 @@ class Gruppenadministration extends Auth_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the navigation menu for the showDetails page
|
||||
* Set uid of authentificated user
|
||||
*/
|
||||
// private function _setNavigationMenuIndex()
|
||||
// {
|
||||
// $this->load->library('NavigationLib', array('navigation_page' => 'person/gruppenadministration/index'));
|
||||
//
|
||||
// $link = site_url();
|
||||
//
|
||||
// $this->navigationlib->setSessionMenu(
|
||||
// array(
|
||||
// 'back' => $this->navigationlib->oneLevel(
|
||||
// 'Zurück', // description
|
||||
// $link, // link
|
||||
// array(), // children
|
||||
// 'angle-left', // icon
|
||||
// true, // expand
|
||||
// null, // subscriptDescription
|
||||
// null, // subscriptLinkClass
|
||||
// null, // subscriptLinkValue
|
||||
// '', // target
|
||||
// 1 // sort
|
||||
// )
|
||||
// )
|
||||
// );
|
||||
// }
|
||||
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
+2
-3
@@ -32,7 +32,7 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo ucfirst($this->p->t('gruppenadministration', 'benutzergruppe')).' '.$gruppe_kurzbz ?>
|
||||
<?php echo ucfirst($this->p->t('gruppenmanagement', 'benutzergruppe')).' '.$gruppe_kurzbz ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
@@ -40,13 +40,12 @@
|
||||
<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('gruppenadministration', 'benutzer') ?>
|
||||
<?php echo $this->p->t('gruppenmanagement', 'benutzer') ?>
|
||||
<?php echo $this->p->t('ui', 'hinzufuegen') ?>
|
||||
</button>
|
||||
</span>
|
||||
+3
-3
@@ -2,7 +2,7 @@
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Gruppenadministration',
|
||||
'title' => 'Gruppenmanagement',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
@@ -31,12 +31,12 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo ucfirst($this->p->t('gruppenadministration', 'gruppenadministration')); ?>
|
||||
<?php echo ucfirst($this->p->t('gruppenmanagement', 'gruppenmanagement')); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('person/gruppenadministration/gruppenadministrationData.php'); ?>
|
||||
<?php $this->load->view('person/gruppenmanagement/gruppenmanagementData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+16
-7
@@ -2,7 +2,7 @@
|
||||
$filterWidgetArray = array(
|
||||
'query' => '
|
||||
SELECT gruppe_kurzbz, grp.bezeichnung AS gruppe_bezeichnung, grp.beschreibung AS gruppe_beschreibung,
|
||||
studiengang_kz, UPPER(stg.typ||stg.kurzbz) AS studiengang_kurzbz, semester
|
||||
studiengang_kz, UPPER(stg.typ||stg.kurzbz) AS studiengang_kurzbz, semester, sichtbar, lehre, grp.aktiv, mailgrp, generiert
|
||||
FROM public.tbl_gruppe grp
|
||||
JOIN public.tbl_studiengang stg USING (studiengang_kz)
|
||||
JOIN public.tbl_gruppe_manager grpmgr USING (gruppe_kurzbz)
|
||||
@@ -12,19 +12,24 @@
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'additionalColumns' => array('Teilnehmer'),
|
||||
'columnsAliases' => array(
|
||||
ucfirst($this->p->t('gruppenadministration', 'kurzbezeichnung')) ,
|
||||
ucfirst($this->p->t('gruppenmanagement', 'kurzbezeichnung')) ,
|
||||
ucfirst($this->p->t('global', 'bezeichnung')) ,
|
||||
ucfirst($this->p->t('global', 'beschreibung')) ,
|
||||
ucfirst($this->p->t('lehre', 'studiengangskennzahl')) ,
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('lehre', 'semester')) ,
|
||||
ucfirst($this->p->t('gruppenmanagement', 'sichtbar')) ,
|
||||
ucfirst($this->p->t('gruppenmanagement', 'lehre')) ,
|
||||
ucfirst($this->p->t('gruppenmanagement', 'aktiv')) ,
|
||||
ucfirst($this->p->t('gruppenmanagement', 'mailgrp')) ,
|
||||
ucfirst($this->p->t('gruppenmanagement', 'generiert'))
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
/* 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('person/Gruppenadministration/showBenutzergruppe'),
|
||||
'<a href="%s?gruppe_kurzbz=%s&origin_page=%s&fhc_controller_id=%s">'.$this->p->t('gruppenmanagement', 'zuweisenlöschen').'</a>',
|
||||
site_url('person/Gruppenmanagement/showBenutzergruppe'),
|
||||
$datasetRaw->{'gruppe_kurzbz'},
|
||||
'index',
|
||||
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
|
||||
@@ -42,15 +47,19 @@
|
||||
{
|
||||
$datasetRaw->{'semester'} = '-';
|
||||
}
|
||||
//$datasetRaw->{'lehre'} = $datasetRaw->{'lehre'} == 'true' ? 'ja' : 'nein';
|
||||
$datasetRaw->{'sichtbar'} = $datasetRaw->{'sichtbar'} == 'true' ? 'ja' : 'nein';
|
||||
$datasetRaw->{'lehre'} = $datasetRaw->{'lehre'} == 'true' ? 'ja' : 'nein';
|
||||
$datasetRaw->{'aktiv'} = $datasetRaw->{'aktiv'} == 'true' ? 'ja' : 'nein';
|
||||
$datasetRaw->{'mailgrp'} = $datasetRaw->{'mailgrp'} == 'true' ? 'ja' : 'nein';
|
||||
$datasetRaw->{'generiert'} = $datasetRaw->{'generiert'} == 'true' ? 'ja' : 'nein';
|
||||
|
||||
return $datasetRaw;
|
||||
}
|
||||
);
|
||||
|
||||
$filterWidgetArray['app'] = 'core';
|
||||
$filterWidgetArray['datasetName'] = 'gruppenadministration';
|
||||
$filterWidgetArray['filterKurzbz'] = 'gruppenadministration';
|
||||
$filterWidgetArray['datasetName'] = 'gruppenmanagement';
|
||||
$filterWidgetArray['filterKurzbz'] = 'gruppenmanagement';
|
||||
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
@@ -3,30 +3,32 @@
|
||||
*/
|
||||
|
||||
var Benutzergruppe = {
|
||||
getBenutzer: function(gruppe_kurzbz)
|
||||
{
|
||||
getBenutzer: function(gruppe_kurzbz) {
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'person/gruppenadministration/getBenutzer',
|
||||
'person/gruppenmanagement/getBenutzer',
|
||||
{
|
||||
gruppe_kurzbz: gruppe_kurzbz
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data)) FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
return;
|
||||
}
|
||||
|
||||
let benutzerTable = $("#benutzer-table tbody");
|
||||
benutzerTable.empty();
|
||||
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
// save loaded data
|
||||
let benutzerData = FHC_AjaxClient.getData(data);
|
||||
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];
|
||||
console.log(benutzer.aktiv);
|
||||
benutzerTable.append(
|
||||
"<tr>"+
|
||||
"<td>"+benutzer.uid+"</td>"+
|
||||
@@ -48,11 +50,10 @@ var Benutzergruppe = {
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
Tablesort.addTablesorter(
|
||||
"benutzer-table", [[0,0], [2,0]], ["filter", "zebra"], 2, {headers: {4: {filter: false}}}
|
||||
)
|
||||
}
|
||||
|
||||
// add tablesorter to benutzergruppe table
|
||||
Benutzergruppe._setTablesorter();
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
@@ -60,14 +61,17 @@ var Benutzergruppe = {
|
||||
}
|
||||
);
|
||||
},
|
||||
getAllBenutzer: function()
|
||||
{
|
||||
getAllBenutzer: function() {
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'person/gruppenadministration/getAllBenutzer',
|
||||
'person/gruppenmanagement/getAllBenutzer',
|
||||
null,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data)) FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
return;
|
||||
}
|
||||
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
@@ -118,22 +122,24 @@ var Benutzergruppe = {
|
||||
}
|
||||
);
|
||||
},
|
||||
addBenutzer: function(uid, gruppe_kurzbz)
|
||||
{
|
||||
addBenutzer: function(uid, gruppe_kurzbz) {
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
'person/gruppenadministration/addBenutzer',
|
||||
'person/gruppenmanagement/addBenutzer',
|
||||
{
|
||||
uid: uid,
|
||||
gruppe_kurzbz: gruppe_kurzbz
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data)) FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
return;
|
||||
}
|
||||
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
let addBenutzerRes = FHC_AjaxClient.getData(data);
|
||||
|
||||
// load Benutzer after add to show change
|
||||
Benutzergruppe.getBenutzer(gruppe_kurzbz);
|
||||
}
|
||||
},
|
||||
@@ -143,22 +149,24 @@ var Benutzergruppe = {
|
||||
}
|
||||
);
|
||||
},
|
||||
removeBenutzer: function(uid, gruppe_kurzbz)
|
||||
{
|
||||
removeBenutzer: function(uid, gruppe_kurzbz) {
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
'person/gruppenadministration/removeBenutzer',
|
||||
'person/gruppenmanagement/removeBenutzer',
|
||||
{
|
||||
uid: uid,
|
||||
gruppe_kurzbz: gruppe_kurzbz
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data)) FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
return;
|
||||
}
|
||||
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
let addBenutzerRes = FHC_AjaxClient.getData(data);
|
||||
|
||||
// load Benutzer after remove to show change
|
||||
Benutzergruppe.getBenutzer(gruppe_kurzbz);
|
||||
}
|
||||
},
|
||||
@@ -168,8 +176,7 @@ var Benutzergruppe = {
|
||||
}
|
||||
);
|
||||
},
|
||||
_fillAutocomplete: function(autocompleteId, idFieldId, source)
|
||||
{
|
||||
_fillAutocomplete: function(autocompleteId, idFieldId, source) {
|
||||
// jQuery ui autocomplete for benutzer
|
||||
$("#"+autocompleteId).autocomplete(
|
||||
{
|
||||
@@ -185,6 +192,12 @@ var Benutzergruppe = {
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
_setTablesorter: function() {
|
||||
Tablesort.addTablesorter(
|
||||
// sort by first and third column asc, show filters beggining with 2 Benutzer, exclude fifth column from filter
|
||||
"benutzer-table", [[0,0], [2,0]], ["filter", "zebra"], 2, {headers: {4: {filter: false}}}
|
||||
)
|
||||
}
|
||||
};
|
||||
|
||||
@@ -192,12 +205,16 @@ var Benutzergruppe = {
|
||||
* When JQuery is up
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
// get the group name
|
||||
let gruppe_kurzbz = $("#gruppe_kurzbz").val();
|
||||
|
||||
// load Benutzer for autocomplete selection
|
||||
Benutzergruppe.getAllBenutzer();
|
||||
// load Benutzer for table
|
||||
Benutzergruppe.getBenutzer(gruppe_kurzbz);
|
||||
|
||||
$("#teilnehmerHinzufuegen").click(
|
||||
function(){
|
||||
// add click event to "add Benutzer" button
|
||||
$("#teilnehmerHinzufuegen").click(function(){
|
||||
let uid = $("#teilnehmer_uid").val();
|
||||
Benutzergruppe.addBenutzer(uid, gruppe_kurzbz);
|
||||
$("#teilnehmerSelect").val('');
|
||||
|
||||
@@ -1112,14 +1112,14 @@ $filters = array(
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'dataset_name' => 'gruppenadministration',
|
||||
'filter_kurzbz' => 'Gruppenadministration',
|
||||
'dataset_name' => 'gruppenmanagement',
|
||||
'filter_kurzbz' => 'gruppenmanagement',
|
||||
'description' => '{Meine Gruppen}',
|
||||
'sort' => 1,
|
||||
'default_filter' => true,
|
||||
'filter' => '
|
||||
{
|
||||
"name": "Gruppenadministration",
|
||||
"name": "gruppenmanagement",
|
||||
"columns": [
|
||||
{"name": "gruppe_kurzbz"},
|
||||
{"name": "gruppe_bezeichnung"},
|
||||
|
||||
Reference in New Issue
Block a user