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/gruppenadministration.php b/application/views/person/gruppenmanagement/gruppenmanagement.php similarity index 79% rename from application/views/person/gruppenadministration/gruppenadministration.php rename to application/views/person/gruppenmanagement/gruppenmanagement.php index 86442af1d..47ea5a2dc 100644 --- a/application/views/person/gruppenadministration/gruppenadministration.php +++ b/application/views/person/gruppenmanagement/gruppenmanagement.php @@ -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 @@
- load->view('person/gruppenadministration/gruppenadministrationData.php'); ?> + load->view('person/gruppenmanagement/gruppenmanagementData.php'); ?>
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"},