function um_init() { $('.user-save-btn').click(um_user_save); $('#nutzerliste').click(um_user_list_click); $('#nutzerLoeschen').click(um_del_user); $('#nutzerNeu').click(um_new_user); $('#nutzerLoeschen').prop( "disabled", true ); $('#neueRolle').click(um_new_role); um_clear_user_form(); um_apicall_get_user_list(); } /* ----- user functions ------ */ function um_user_save() { var user = um_user_form_lesen(); var kww = $('#kennwortw').val(); if(user.pw != kww) { alert('Kennworte stimmen nicht ueberein.'); } else { //alert('user-save ' + user.id); um_apicall_create_user(self.serialisieren(user)); } } function um_del_user() { /*var users = []; $('#nutzerliste :selected').each(function(i, selected){ users[i] = $(selected).text(); });*/ //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?"); 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 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 !== "") { alert("Rolle fuer Benutzer " + userId + " anlegen: " + answer); } else { alert("OK betaetigt, aber Keine Rolle angegeben."); } } } /* ----------- ui interaction ------------ */ function um_user_list_click() { $('#nutzerLoeschen').prop( "disabled", false ); /* var users = []; $('#nutzerliste :selected').each(function(i, selected){ users[i] = $(selected).text(); }); */ //alert(users[0]); } /* ------- ui i/o ------ */ function um_user_form_lesen() { var userId = $('#anmeldename').val(); var kw = $('#kennwort').val(); var user = new User(userId, kw, '-', '-', '-'); 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(''); } $('#nutzerLoeschen').prop( "disabled", true ); //var user1 = users.List[1]; //var username = user1.String; //alert(username); } 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; } /* ---- api calls ----- */ function um_apicall_create_user(user) { var m = 'createUser'; var u = '../svc/' + m; $.ajax({ url: u, data: { p: user }, type: "POST", dataType : "html", 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!" ); } }); } /* ----- Hilfsfunktionen ----- */ function serialisieren(obj) { return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}'; }; /* ----- Objekte ----- */ function User(i, p, fn, ln, em) { this.id = i; this.pw = p; this.firstName = fn; this.lastName = ln; this.email = em; }