From dd6b8be145daef023344acc70af0dd18146b73a9 Mon Sep 17 00:00:00 2001 From: ulrich <not disclosed> Date: Tue, 27 Dec 2016 12:45:27 +0000 Subject: [PATCH] user.jsp durch user.html ersetzt --- web/ui/ui.js | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 211 insertions(+), 13 deletions(-) diff --git a/web/ui/ui.js b/web/ui/ui.js index 10a90dd..c6e9098 100644 --- a/web/ui/ui.js +++ b/web/ui/ui.js @@ -5,7 +5,14 @@ $('#nutzerLoeschen').click(um_del_user); $('#nutzerNeu').click(um_new_user); $('#nutzerLoeschen').prop( "disabled", true ); - + $('#nutzerRolleEntziehen').prop( "disabled", true ); + $('#rolleErteilen').prop( "disabled", true ); + $('#neueRolle').click(um_new_role); + $('#rollen').click(um_role_list_click); + $('#nutzerrollen').click(um_user_role_list_click); + um_clear_user_form(); + um_apicall_get_user_list(); + um_apicall_get_granted_roles(); } /* ----- user functions ------ */ @@ -16,24 +23,58 @@ if(user.pw != kww) { alert('Kennworte stimmen nicht ueberein.'); } else { - alert('user-save ' + user.id); - um_apicall(self.serialisieren(user)); + um_apicall_create_user(self.serialisieren(user)); } } -function um_del_user(user_name) { - alert('delete user ' + user_name); +function um_del_user() { + var userId = um_get_first_selected_user_id(); + if(userId !== 'none') { + var antwort = confirm("Wollen Sie den Nutzer " + userId + " loeschen?"); + if (antwort === true) { + var user = new User(userId, '-', '-', '-', '-'); + um_apicall_del_user(self.serialisieren(user)); + } + } } function um_new_user() { alert('show form to enter new user'); } +/* ----------- role functions ------------ */ + +function um_new_role() { + var roleIsNew = true; + var userId = um_get_first_selected_user_id(); + if(userId === 'none') { + alert('Es wurde kein Benutzer ausgewaehlt.'); + } else { + var answer = prompt("Name der Rolle", ""); + if (answer === null) { + alert("Es wurde Cancel betaetigt."); + } else if(answer !== "") { + um_apicall_grant_role(userId, answer, roleIsNew); + } else { + alert("OK betaetigt, aber Keine Rolle angegeben."); + } + } +} + /* ----------- ui interaction ------------ */ function um_user_list_click() { - var user_name = 'noch aus liste ermitteln..'; - alert('user list click, user: ' + user_name); + $('#nutzerLoeschen').prop( "disabled", false ); + var userId = um_get_first_selected_user_id(); + um_apicall_get_user_roles(userId); +} + +function um_role_list_click() { + $('#rolleErteilen').prop( "disabled", false ); +} + +function um_user_role_list_click() { + $('#nutzerRolleEntziehen').prop( "disabled", false ); } @@ -46,24 +87,181 @@ return user; } +function um_show_user_list(resp) { + $("#nutzerliste").empty(); + var users = resp.List[0]; + for(var i = 1; i < users.List.length; i++) { + var user = users.List[i]; + $("#nutzerliste").append('<option value=' + user.String + '>' + user.String + '</option>'); + } + $('#nutzerLoeschen').prop( "disabled", true ); +} +function um_clear_user_form() { + $('#anmeldename').val(''); + $('#kennwort').val(''); + $('#kennwortw').val(''); +} +function um_get_first_selected_user_id() { + var userId = 'none'; + var userIds = []; + $('#nutzerliste :selected').each(function(i, selected){ + userIds[i] = $(selected).text(); + }); + if(userIds.length > 0) { + 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 ); +} + +function um_show_role_list(resp) { + $("#rollen").empty(); + var rollen = resp.List[0]; + for(var i = 1; i < rollen.List.length; i++) { + var rolle = rollen.List[i]; + $("#rollen").append('<option value=' + rolle.String + '>' + rolle.String + '</option>'); + } + //$('#neueRolle').prop( "disabled", true ); + $('#rolleErteilen').prop( "disabled", true ); +} /* ---- api calls ----- */ -function um_apicall(obj) { - var c = 'de.uhilger.um.api.UserMgr'; +function um_apicall_create_user(user) { var m = 'createUser'; - var u = '../api?c=' + c + '&m=' + m; + var u = '../svc/' + m; $.ajax({ url: u, data: { - p: obj + p: user }, type: "POST", dataType : "html", - //success: function( resp ) { + success: function( resp ) { //$('#fehler').html('Antwort: ' + resp); - //}, + um_apicall_get_user_list(); + um_clear_user_form(); + }, + error: function( xhr, status, errorThrown ) { + $('#fehler').html("Error: " + errorThrown + " Status: " + status); + }, + complete: function( xhr, status ) { + //alert( "The request is complete!" ); + } + }); +} + +function um_apicall_del_user(user) { + var m = 'deleteUser'; + var u = '../svc/' + m; + $.ajax({ + url: u, + data: { + p: user + }, + type: "POST", + dataType : "html", + success: function( resp ) { + um_apicall_get_user_list(); + }, + error: function( xhr, status, errorThrown ) { + $('#fehler').html("Error: " + errorThrown + " Status: " + status); + }, + complete: function( xhr, status ) { + //alert( "The request is complete!" ); + } + }); +} + +function um_apicall_get_user_list() { + var m = 'getUserNameList'; + var u = '../svc/' + m; + $.ajax({ + url: u, + type: "GET", + dataType : "json", + success: function( resp ) { + um_show_user_list(resp); + }, + error: function( xhr, status, errorThrown ) { + $('#fehler').html("Error: " + errorThrown + " Status: " + status); + }, + complete: function( xhr, status ) { + //alert( "The request is complete!" ); + } + }); +} + +// public UserRole grantRole(String userId, String roleName) +function um_apicall_grant_role(userId, roleName, isNewRole) { + var m = 'grantRole'; + 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); + if(isNewRole) { + um_apicall_get_granted_roles(); + } + }, + 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!" ); + } + }); +} + +function um_apicall_get_granted_roles() { + var m = 'getRoleNamesGranted'; + var u = '../svc/' + m; + $.ajax({ + url: u, + type: "GET", + dataType : "json", + success: function( resp ) { + // Antwort in Liste anzeigen + um_show_role_list(resp); + }, error: function( xhr, status, errorThrown ) { $('#fehler').html("Error: " + errorThrown + " Status: " + status); }, -- Gitblit v1.9.3