diff --git a/application/controllers/organisation/Gruppenadministration.php b/application/controllers/person/Gruppenadministration.php
similarity index 72%
rename from application/controllers/organisation/Gruppenadministration.php
rename to application/controllers/person/Gruppenadministration.php
index 342e93a67..f614a4b02 100644
--- a/application/controllers/organisation/Gruppenadministration.php
+++ b/application/controllers/person/Gruppenadministration.php
@@ -18,8 +18,10 @@ class Gruppenadministration extends Auth_Controller
array(
'index' => 'admin:r',
'showBenutzergruppe' => 'admin:r',
+ 'getBenutzer' => 'admin:r',
'getAllBenutzer' => 'admin:r',
'addBenutzer' => 'admin:rw',
+ 'removeBenutzer' => 'admin:rw'
)
);
@@ -53,7 +55,7 @@ class Gruppenadministration extends Auth_Controller
//$this->_setNavigationMenuIndex(); // define the navigation menu for this page
$this->load->view(
- 'organisation/gruppenadministration/gruppenadministration.php',
+ 'person/gruppenadministration/gruppenadministration.php',
array('uid' => $this->_uid)
);
}
@@ -79,11 +81,27 @@ class Gruppenadministration extends Auth_Controller
$benutzer = hasData($benutzerRes) ? getData($benutzerRes) : array();
$this->load->view(
- 'organisation/gruppenadministration/benutzergruppe.php',
+ 'person/gruppenadministration/benutzergruppe.php',
array('gruppe_kurzbz' => $gruppe_kurzbz, 'benutzer' => $benutzer)
);
}
+ /**
+ * Gets Benutzer assigned to a Gruppe
+ */
+ public function getBenutzer()
+ {
+ $gruppe_kurzbz = $this->input->get('gruppe_kurzbz');
+
+ $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));
+
+ $this->outputJson($benutzerRes);
+ }
+
+
/**
* Gets all Benutzer for assignment to Gruppe
*/
@@ -109,6 +127,25 @@ class Gruppenadministration extends Auth_Controller
$result = error('Uid missing');
else
{
+ $benutzerExistsRes = $this->BenutzergruppeModel->loadWhere(
+ array(
+ 'uid' => $uid,
+ 'gruppe_kurzbz' => $gruppe_kurzbz
+ )
+ );
+
+ if (isError($benutzerExistsRes))
+ {
+ $this->outputJsonError(getError($benutzerExistsRes));
+ return;
+ }
+
+ if (hasData($benutzerExistsRes))
+ {
+ $this->outputJsonError(getError($this->p->t('gruppenadministration', 'benutzerZugewiesen')));
+ return;
+ }
+
$result = $this->BenutzergruppeModel->insert(
array(
'uid' => $uid,
@@ -121,6 +158,26 @@ class Gruppenadministration extends Auth_Controller
$this->outputJson($result);
}
+ public function removeBenutzer()
+ {
+ $uid = $this->input->post('uid');
+ $gruppe_kurzbz = $this->input->post('gruppe_kurzbz');
+
+ if (isEmptyString($uid))
+ $result = error('Uid missing');
+ else
+ {
+ $result = $this->BenutzergruppeModel->delete(
+ array(
+ 'uid' => $uid,
+ 'gruppe_kurzbz' => $gruppe_kurzbz
+ )
+ );
+ }
+
+ $this->outputJson($result);
+ }
+
// -----------------------------------------------------------------------------------------------------------------
// Private methods
@@ -129,9 +186,9 @@ class Gruppenadministration extends Auth_Controller
*/
private function _setNavigationMenuShowDetails()
{
- $this->load->library('NavigationLib', array('navigation_page' => 'organisation/Gruppenadministration/showBenutzergruppe'));
+ $this->load->library('NavigationLib', array('navigation_page' => 'person/Gruppenadministration/showBenutzergruppe'));
- $link = site_url('organisation/Gruppenadministration');
+ $link = site_url('person/Gruppenadministration');
$this->navigationlib->setSessionMenu(
array(
@@ -156,7 +213,7 @@ class Gruppenadministration extends Auth_Controller
*/
// private function _setNavigationMenuIndex()
// {
- // $this->load->library('NavigationLib', array('navigation_page' => 'organisation/Gruppenadministration/index'));
+ // $this->load->library('NavigationLib', array('navigation_page' => 'person/gruppenadministration/index'));
//
// $link = site_url();
//
diff --git a/application/views/organisation/gruppenadministration/benutzergruppe.php b/application/views/person/gruppenadministration/benutzergruppe.php
similarity index 89%
rename from application/views/organisation/gruppenadministration/benutzergruppe.php
rename to application/views/person/gruppenadministration/benutzergruppe.php
index be7e02fc6..e5eb9c84d 100644
--- a/application/views/organisation/gruppenadministration/benutzergruppe.php
+++ b/application/views/person/gruppenadministration/benutzergruppe.php
@@ -14,10 +14,10 @@
'filterwidget' => true,
'navigationwidget' => true,
'phrases' => array(
- 'ui' => array('bitteEintragWaehlen')
+ 'ui'
),
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
- 'customJSs' => array('public/js/bootstrapper.js', 'public/js/tablesort/tablesort.js', 'public/js/organisation/benutzergruppe.js')
+ 'customJSs' => array('public/js/bootstrapper.js', 'public/js/tablesort/tablesort.js', 'public/js/person/benutzergruppe.js')
)
);
?>
@@ -46,6 +46,7 @@
@@ -63,18 +64,18 @@
p->t('ui', 'loeschen')); ?> |
-
+
diff --git a/application/views/organisation/gruppenadministration/gruppenadministration.php b/application/views/person/gruppenadministration/gruppenadministration.php
similarity index 90%
rename from application/views/organisation/gruppenadministration/gruppenadministration.php
rename to application/views/person/gruppenadministration/gruppenadministration.php
index 889894835..86442af1d 100644
--- a/application/views/organisation/gruppenadministration/gruppenadministration.php
+++ b/application/views/person/gruppenadministration/gruppenadministration.php
@@ -36,7 +36,7 @@
- load->view('organisation/gruppenadministration/gruppenadministrationData.php'); ?>
+ load->view('person/gruppenadministration/gruppenadministrationData.php'); ?>
diff --git a/application/views/organisation/gruppenadministration/gruppenadministrationData.php b/application/views/person/gruppenadministration/gruppenadministrationData.php
similarity index 96%
rename from application/views/organisation/gruppenadministration/gruppenadministrationData.php
rename to application/views/person/gruppenadministration/gruppenadministrationData.php
index 7e9e467a5..2a9193cb9 100644
--- a/application/views/organisation/gruppenadministration/gruppenadministrationData.php
+++ b/application/views/person/gruppenadministration/gruppenadministrationData.php
@@ -24,7 +24,7 @@
/* NOTE: Dont use $this here for PHP Version compatibility */
$datasetRaw->{'Teilnehmer'} = sprintf(
''.$this->p->t('gruppenadministration', 'zuweisenlöschen').'',
- site_url('organisation/Gruppenadministration/showBenutzergruppe'),
+ site_url('person/Gruppenadministration/showBenutzergruppe'),
$datasetRaw->{'gruppe_kurzbz'},
'index',
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
diff --git a/public/js/organisation/benutzergruppe.js b/public/js/person/benutzergruppe.js
similarity index 54%
rename from public/js/organisation/benutzergruppe.js
rename to public/js/person/benutzergruppe.js
index c7bdd3580..1dd01131a 100644
--- a/public/js/organisation/benutzergruppe.js
+++ b/public/js/person/benutzergruppe.js
@@ -3,10 +3,66 @@
*/
var Benutzergruppe = {
+ getBenutzer: function(gruppe_kurzbz)
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ 'person/gruppenadministration/getBenutzer',
+ {
+ gruppe_kurzbz: gruppe_kurzbz
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ // save loaded data
+ let benutzerData = FHC_AjaxClient.getData(data);
+
+ console.log(benutzerData);
+
+ 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];
+ benutzerTable.append(
+ ""+
+ "| "+benutzer.uid+" | "+
+ ""+benutzer.vorname+" | "+
+ ""+benutzer.nachname+" | "+
+ ""+
+ ""+
+ " | "+
+ "
"
+ );
+
+ // add delete event to button
+ $("#"+benutzer.uid+"_benutzerLoeschen").click(
+ function() {
+ Benutzergruppe.removeBenutzer(benutzer.uid, gruppe_kurzbz);
+ }
+ )
+ }
+
+ Tablesort.addTablesorter(
+ "benutzer-table", [[0,0], [2,0]], ["filter"], 2
+ )
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
getAllBenutzer: function()
{
FHC_AjaxClient.ajaxCallGet(
- 'organisation/Gruppenadministration/getAllBenutzer',
+ 'person/gruppenadministration/getAllBenutzer',
null,
{
successCallback: function(data, textStatus, jqXHR) {
@@ -62,7 +118,7 @@ var Benutzergruppe = {
addBenutzer: function(uid, gruppe_kurzbz)
{
FHC_AjaxClient.ajaxCallPost(
- 'organisation/Gruppenadministration/addBenutzer',
+ 'person/gruppenadministration/addBenutzer',
{
uid: uid,
gruppe_kurzbz: gruppe_kurzbz
@@ -72,7 +128,31 @@ var Benutzergruppe = {
if (FHC_AjaxClient.hasData(data))
{
let addBenutzerRes = FHC_AjaxClient.getData(data);
- console.log(addBenutzerRes);
+
+ Benutzergruppe.getBenutzer(gruppe_kurzbz);
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ removeBenutzer: function(uid, gruppe_kurzbz)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ 'person/gruppenadministration/removeBenutzer',
+ {
+ uid: uid,
+ gruppe_kurzbz: gruppe_kurzbz
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ let addBenutzerRes = FHC_AjaxClient.getData(data);
+
+ Benutzergruppe.getBenutzer(gruppe_kurzbz);
}
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
@@ -105,16 +185,13 @@ var Benutzergruppe = {
* When JQuery is up
*/
$(document).ready(function() {
-
+ let gruppe_kurzbz = $("#gruppe_kurzbz").val();
Benutzergruppe.getAllBenutzer();
- Tablesort.addTablesorter(
- "benutzer-table", [[0,0], [2,0]], ['filter'], 2
- )
+ Benutzergruppe.getBenutzer(gruppe_kurzbz);
$("#teilnehmerHinzufuegen").click(
function(){
let uid = $("#teilnehmer_uid").val();
- let gruppe_kurzbz = $("#gruppe_kurzbz").val();
Benutzergruppe.addBenutzer(uid, gruppe_kurzbz);
}
);