From c79c120dae38042f0f5d5c31d9b7413b0a8a3e7e Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Tue, 27 Dec 2016 12:21:53 +0000
Subject: [PATCH] Neue Rolle speichern und zeigen

---
 web/ui/ui.js |   72 +++++++++++++++++++++++++++++++----
 1 files changed, 63 insertions(+), 9 deletions(-)

diff --git a/web/ui/ui.js b/web/ui/ui.js
index ce2d447..4a7daf9 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -5,6 +5,7 @@
   $('#nutzerLoeschen').click(um_del_user);
   $('#nutzerNeu').click(um_new_user);
   $('#nutzerLoeschen').prop( "disabled", true );
+  $('#nutzerRolleEntziehen').prop( "disabled", true );
   $('#neueRolle').click(um_new_role);
   um_clear_user_form();
   um_apicall_get_user_list();
@@ -32,7 +33,7 @@
   //alert('delete user ' + users[0]);
   var userId = um_get_first_selected_user_id();
   if(userId !== 'none') {
-    var antwort = confirm("Wollen Sie den Nutzer " + usersId + " loeschen?"); 
+    var antwort = confirm("Wollen Sie den Nutzer " + userId + " loeschen?"); 
     if (antwort === true) {
       var user = new User(userId, '-', '-', '-', '-');
       um_apicall_del_user(self.serialisieren(user));
@@ -55,7 +56,8 @@
     if (answer === null) {
       alert("Es wurde Cancel betaetigt.");
     } else if(answer !== "") {
-      alert("Rolle fuer Benutzer " + userId + " anlegen: " + answer);
+      //alert("Rolle fuer Benutzer " + userId + " anlegen: " + answer);
+      um_apicall_grant_role(userId, answer);
     } else {
       alert("OK betaetigt, aber Keine Rolle angegeben.");
     }
@@ -66,13 +68,8 @@
 
 function um_user_list_click() {
   $('#nutzerLoeschen').prop( "disabled", false );
-  /*
-   var users = [];
-   $('#nutzerliste :selected').each(function(i, selected){
-     users[i] = $(selected).text();
-   });
-  */
-   //alert(users[0]);
+  var userId = um_get_first_selected_user_id();
+  um_apicall_get_user_roles(userId);
 }
 
 
@@ -114,6 +111,17 @@
     userId = userIds[0];
   }
   return userId;
+}
+
+// {"List":[{"List":[{"String":"ROLE_NAME"},{"String":"testrolle1"}]}]}
+function um_show_user_role_list(resp) {
+  $("#nutzerrollen").empty();
+  var rollen = resp.List[0];
+  for(var i = 1; i < rollen.List.length; i++) {
+    var rolle = rollen.List[i];
+    $("#nutzerrollen").append('<option value=' + rolle.String + '>' + rolle.String + '</option>');
+  }
+  $('#nutzerRolleEntziehen').prop( "disabled", true );
 }
 
 /* ---- api calls ----- */
@@ -183,6 +191,52 @@
   });      
 }
 
+// public UserRole grantRole(String userId, String roleName) 
+function um_apicall_grant_role(userId, roleName) {
+  var m = 'grantRole';
+  var u = '../svc/' + m;
+  $.ajax({
+    url: u,
+    data: {
+      p1: userId,
+      p2: roleName
+    },
+    type: "POST",
+    dataType : "html",
+    success: function( resp ) {
+      // Liste der Rollen des Benutzers neu anzeigen bzw. die neue Rolle dort hinzufuegen
+      um_apicall_get_user_roles(userId);
+    },
+    error: function( xhr, status, errorThrown ) {
+      $('#fehler').html("Error: " + errorThrown + " Status: " + status);
+    },
+    complete: function( xhr, status ) {
+      //alert( "The request is complete!" );
+    }
+  });
+}
+
+//public List getUserRoleNames(String userId)
+function um_apicall_get_user_roles(userId) {
+  var m = 'getUserRoleNames';
+  var u = '../svc/' + m + '?p=' + userId;
+  $.ajax({
+    url: u,
+    type: "GET",
+    dataType : "json",
+    success: function( resp ) {
+      // Antwort in Liste anzeigen
+      um_show_user_role_list(resp);
+    },
+    error: function( xhr, status, errorThrown ) {
+      $('#fehler').html("Error: " + errorThrown + " Status: " + status);
+    },
+    complete: function( xhr, status ) {
+      //alert( "The request is complete!" );
+    }
+  });      
+}
+
 /* ----- Hilfsfunktionen ----- */
 
 function serialisieren(obj) {

--
Gitblit v1.9.3