diff --git a/application/controllers/person/Gruppenadministration.php b/application/controllers/person/Gruppenmanagement.php
similarity index 74%
rename from application/controllers/person/Gruppenadministration.php
rename to application/controllers/person/Gruppenmanagement.php
index c88c3565f..25f277e83 100644
--- a/application/controllers/person/Gruppenadministration.php
+++ b/application/controllers/person/Gruppenmanagement.php
@@ -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();
diff --git a/application/views/person/gruppenadministration/benutzergruppe.php b/application/views/person/gruppenmanagement/benutzergruppe.php
similarity index 87%
rename from application/views/person/gruppenadministration/benutzergruppe.php
rename to application/views/person/gruppenmanagement/benutzergruppe.php
index f0b63aba8..f3864c11b 100644
--- a/application/views/person/gruppenadministration/benutzergruppe.php
+++ b/application/views/person/gruppenmanagement/benutzergruppe.php
@@ -32,7 +32,7 @@
@@ -40,13 +40,12 @@
diff --git a/application/views/person/gruppenadministration/gruppenadministrationData.php b/application/views/person/gruppenmanagement/gruppenmanagementData.php
similarity index 61%
rename from application/views/person/gruppenadministration/gruppenadministrationData.php
rename to application/views/person/gruppenmanagement/gruppenmanagementData.php
index 2a9193cb9..4832cdd69 100644
--- a/application/views/person/gruppenadministration/gruppenadministrationData.php
+++ b/application/views/person/gruppenmanagement/gruppenmanagementData.php
@@ -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(
- '
'.$this->p->t('gruppenadministration', 'zuweisenlöschen').'',
- site_url('person/Gruppenadministration/showBenutzergruppe'),
+ '
'.$this->p->t('gruppenmanagement', 'zuweisenlöschen').'',
+ 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);
diff --git a/public/js/person/benutzergruppe.js b/public/js/person/benutzergruppe.js
index 126c9a19e..353cb6ea3 100644
--- a/public/js/person/benutzergruppe.js
+++ b/public/js/person/benutzergruppe.js
@@ -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(
"
"+
"| "+benutzer.uid+" | "+
@@ -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('');
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index 12a8cccba..2424eda44 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -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"},