diff --git a/application/controllers/organisation/Gruppenadministration.php b/application/controllers/organisation/Gruppenadministration.php new file mode 100644 index 000000000..68d4b9771 --- /dev/null +++ b/application/controllers/organisation/Gruppenadministration.php @@ -0,0 +1,166 @@ + 'admin:r', + 'showBenutzergruppe' => 'admin:r', + 'saveBPK' => 'admin:rw', + ) + ); + + // Loads models + $this->load->model('organisation/benutzergruppe_model', 'BenutzergruppeModel'); + + $this->load->library('WidgetLib'); + $this->loadPhrases( + array( + 'global', + 'person', + 'lehre', + 'ui', + 'filter' + ) + ); + + $this->setControllerId(); // sets the controller id + $this->_setAuthUID(); // sets property uid + } + + // ----------------------------------------------------------------------------------------------------------------- + // Public methods + + /** + * Main page + */ + public function index() + { + //$this->_setNavigationMenuIndex(); // define the navigation menu for this page + + $this->load->view( + 'organisation/gruppenadministration/gruppenadministration.php', + array('uid' => $this->_uid) + ); + } + + /** + * Shows Benutzergruppe overview page. + */ + public function showBenutzergruppe() + { + $this->_setNavigationMenuShowDetails(); + $gruppe_kurzbz = $this->input->get('gruppe_kurzbz'); + + $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'); + $benutzer = $this->BenutzergruppeModel->loadWhere(array('gruppe_kurzbz' => $gruppe_kurzbz)); + + $this->load->view( + 'organisation/gruppenadministration/benutzergruppe.php', + array('gruppe_kurzbz' => $gruppe_kurzbz, 'benutzer' => $benutzer) + ); + } + + /** + * Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master + */ + // 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'); + // } + // } + + // ----------------------------------------------------------------------------------------------------------------- + // Private methods + + /** + * Define the navigation menu for the showDetails page + */ + private function _setNavigationMenuShowDetails() + { + $this->load->library('NavigationLib', array('navigation_page' => 'organisation/Gruppenadministration/showBenutzergruppe')); + + $link = site_url('organisation/Gruppenadministration'); + + $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 + ) + ) + ); + } + + /** + * Define the navigation menu for the showDetails page + */ + // private function _setNavigationMenuIndex() + // { + // $this->load->library('NavigationLib', array('navigation_page' => 'organisation/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(); + + if (!$this->_uid) show_error('User authentification failed'); + } +} diff --git a/application/models/organisation/Benutzergruppe_model.php b/application/models/organisation/Benutzergruppe_model.php new file mode 100644 index 000000000..b99ddc35e --- /dev/null +++ b/application/models/organisation/Benutzergruppe_model.php @@ -0,0 +1,14 @@ +dbTable = 'public.tbl_benutzergruppe'; + $this->pk = array('uid', 'gruppe_kurzbz'); + } +} diff --git a/application/views/organisation/gruppenadministration/benutzergruppe.php b/application/views/organisation/gruppenadministration/benutzergruppe.php new file mode 100644 index 000000000..db706e510 --- /dev/null +++ b/application/views/organisation/gruppenadministration/benutzergruppe.php @@ -0,0 +1,47 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'Benutzer in Gruppe', + 'jquery' => true, + 'jqueryui' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'sbadmintemplate' => true, + 'tablesorter' => true, + 'ajaxlib' => true, + 'filterwidget' => true, + 'navigationwidget' => true, + 'phrases' => array( + 'ui' => array('bitteEintragWaehlen') + ), + 'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css', + 'customJSs' => array('public/js/bootstrapper.js') + ) + ); +?> + + +
+ + widgetlib->widget('NavigationWidget'); ?> + +
+
+
+
+ +
+
+
+ +
+
+
+
+ + +load->view('templates/FHC-Footer'); ?> diff --git a/application/views/organisation/gruppenadministration/gruppenadministration.php b/application/views/organisation/gruppenadministration/gruppenadministration.php new file mode 100644 index 000000000..889894835 --- /dev/null +++ b/application/views/organisation/gruppenadministration/gruppenadministration.php @@ -0,0 +1,46 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'Gruppenadministration', + 'jquery' => true, + 'jqueryui' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'sbadmintemplate' => true, + 'tablesorter' => true, + 'ajaxlib' => true, + 'filterwidget' => true, + 'navigationwidget' => true, + 'phrases' => array( + 'ui' => array('bitteEintragWaehlen') + ), + 'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css', + 'customJSs' => array('public/js/bootstrapper.js') + ) + ); +?> + + +
+ + widgetlib->widget('NavigationWidget'); ?> + +
+
+
+
+ +
+
+
+ load->view('organisation/gruppenadministration/gruppenadministrationData.php'); ?> +
+
+
+
+ + +load->view('templates/FHC-Footer'); ?> diff --git a/application/views/organisation/gruppenadministration/gruppenadministrationData.php b/application/views/organisation/gruppenadministration/gruppenadministrationData.php new file mode 100644 index 000000000..7e9e467a5 --- /dev/null +++ b/application/views/organisation/gruppenadministration/gruppenadministrationData.php @@ -0,0 +1,57 @@ + ' + SELECT gruppe_kurzbz, grp.bezeichnung AS gruppe_bezeichnung, grp.beschreibung AS gruppe_beschreibung, + studiengang_kz, UPPER(stg.typ||stg.kurzbz) AS studiengang_kurzbz, semester + FROM public.tbl_gruppe grp + JOIN public.tbl_studiengang stg USING (studiengang_kz) + JOIN public.tbl_gruppe_manager grpmgr USING (gruppe_kurzbz) + WHERE grp.aktiv = TRUE + AND grpmgr.uid = \''.$uid.'\'', + 'requiredPermissions' => 'admin', + 'datasetRepresentation' => 'tablesorter', + 'additionalColumns' => array('Teilnehmer'), + 'columnsAliases' => array( + ucfirst($this->p->t('gruppenadministration', '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')) , + ), + 'formatRow' => function($datasetRaw) { + + /* NOTE: Dont use $this here for PHP Version compatibility */ + $datasetRaw->{'Teilnehmer'} = sprintf( + ''.$this->p->t('gruppenadministration', 'zuweisenlöschen').'', + site_url('organisation/Gruppenadministration/showBenutzergruppe'), + $datasetRaw->{'gruppe_kurzbz'}, + 'index', + (isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'') + ); + + if ($datasetRaw->{'gruppe_bezeichnung'} == null) + { + $datasetRaw->{'gruppe_bezeichnung'} = '-'; + } + if ($datasetRaw->{'gruppe_beschreibung'} == null) + { + $datasetRaw->{'gruppe_beschreibung'} = '-'; + } + if ($datasetRaw->{'semester'} == null) + { + $datasetRaw->{'semester'} = '-'; + } + //$datasetRaw->{'lehre'} = $datasetRaw->{'lehre'} == 'true' ? 'ja' : 'nein'; + + return $datasetRaw; + } + ); + + $filterWidgetArray['app'] = 'core'; + $filterWidgetArray['datasetName'] = 'gruppenadministration'; + $filterWidgetArray['filterKurzbz'] = 'gruppenadministration'; + $filterWidgetArray['filter_id'] = $this->input->get('filter_id'); + + echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray); +?> diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 05cfc0d38..746ff2adc 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -1082,7 +1082,28 @@ $filters = array( } ', 'oe_kurzbz' => null, - ) + ), + array( + 'app' => 'core', + 'dataset_name' => 'gruppenadministration', + 'filter_kurzbz' => 'Gruppenadministration', + 'description' => '{Meine Gruppen}', + 'sort' => 1, + 'default_filter' => true, + 'filter' => ' + { + "name": "Gruppenadministration", + "columns": [ + {"name": "gruppe_kurzbz"}, + {"name": "gruppe_bezeichnung"}, + {"name": "gruppe_beschreibung"}, + {"name": "studiengang_kurzbz"} + ], + "filters": [] + } + ', + 'oe_kurzbz' => null, + ), ); // Loop through the filters array