From 4f4b2940ce5816cf3daa226507029e17280b9a9e Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Tue, 27 Dec 2016 13:48:25 +0000
Subject: [PATCH] Wechsel zwischen Benutzer-Anzeige und Benutzer-Formular sowie  Transaktion fuer das Loeschen von Benutzer-Rollen und Benutzer

---
 web/ui/ui.js |   79 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 74 insertions(+), 5 deletions(-)

diff --git a/web/ui/ui.js b/web/ui/ui.js
index 1a76637..eb0eb23 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -1,6 +1,9 @@
 
 function um_init() {
   $('#user-form').hide();
+  $('#nav').hide();
+  $('#role-form').hide();
+  $('#user-role-form').hide();
   $('.user-save-btn').click(um_user_save);
   $('#nutzerliste').click(um_user_list_click);
   $('#nutzerLoeschen').click(um_del_user);
@@ -9,6 +12,7 @@
   $('#nutzerRolleEntziehen').prop( "disabled", true );
   $('#rolleErteilen').prop( "disabled", true );
   $('#rolleErteilen').click(um_grant_role);
+  $('#nutzerRolleEntziehen').click(um_revoke_role);
   $('#neueRolle').click(um_new_role);
   $('#rollen').click(um_role_list_click);
   $('#nutzerrollen').click(um_user_role_list_click);
@@ -40,10 +44,6 @@
   }
 }
 
-function um_new_user() {
-  alert('show form to enter new user');
-}
-
 /* ----------- role functions ------------ */
 
 function um_new_role() {
@@ -72,13 +72,34 @@
   }
 }
 
+function um_revoke_role() {
+  var userId = um_get_first_selected_user_id();
+  var roleId = um_get_first_selected_userrole_id();
+  if(roleId !== 'none' && userId !== 'none') {
+    um_apicall_revoke_role(userId, roleId);
+  }
+}
+
 /* ----------- ui interaction ------------ */
 
 function um_user_list_click() {
+  $('#nav-back-btn').click(um_back_from_roles);
   $('#nutzerLoeschen').prop( "disabled", false );
   $('#rollen :selected').prop("selected", false);
   var userId = um_get_first_selected_user_id();
+  $('#userid').html(userId);
   um_apicall_get_user_roles(userId);
+  $('#user-list-form').hide();
+  $('#nav').show();
+  $('#role-form').show();
+  $('#user-role-form').show();
+}
+
+function um_new_user() {
+  $('#nav-back-btn').click(um_back_from_new_user);
+  $('#user-list-form').hide();
+  $('#user-form').show();
+  $('#nav').show();
 }
 
 function um_role_list_click() {
@@ -89,6 +110,19 @@
   $('#nutzerRolleEntziehen').prop( "disabled", false );
 }
 
+function um_back_from_roles() {
+  $('#user-list-form').show();
+  $('#nav').hide();
+  $('#role-form').hide();
+  $('#user-role-form').hide();
+}
+
+function um_back_from_new_user() {
+  $('#user-list-form').show();
+  $('#nav').hide();
+  $('#user-form').hide();
+  um_clear_user_form();
+}
 
 /* ------- ui i/o ------ */
 
@@ -139,6 +173,18 @@
   return roleId;
 }
 
+function um_get_first_selected_userrole_id() {
+  var roleId = 'none';
+  var roleIds = [];
+  $('#nutzerrollen :selected').each(function(i, selected){
+    roleIds[i] = $(selected).text();
+  });
+  if(roleIds.length > 0) {
+    roleId = roleIds[0];
+  }
+  return roleId;
+}
+
 // {"List":[{"List":[{"String":"ROLE_NAME"},{"String":"testrolle1"}]}]}
 function um_show_user_role_list(resp) {
   $("#nutzerrollen").empty();
@@ -176,7 +222,7 @@
     success: function( resp ) {
       //$('#fehler').html('Antwort: ' + resp);
       um_apicall_get_user_list();
-      um_clear_user_form();
+      um_back_from_new_user();
     },
     error: function( xhr, status, errorThrown ) {
       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
@@ -255,6 +301,29 @@
   });
 }
 
+function um_apicall_revoke_role(userId, roleName) {
+  var m = 'revokeRole';
+  var u = '../svc/' + m;
+  $.ajax({
+    url: u,
+    data: {
+      p1: userId,
+      p2: roleName
+    },
+    type: "POST",
+    dataType : "html",
+    success: function( resp ) {
+      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';

--
Gitblit v1.9.3