ulrich
2016-12-27 51edf4cdf3d517ff79150d26d35d819d96f0cbd1
commit | author | age
5bf001 1
U 2 function um_init() {
3   $('.user-save-btn').click(um_user_save);
4df887 4   $('#nutzerliste').click(um_user_list_click);
U 5   $('#nutzerLoeschen').click(um_del_user);
6   $('#nutzerNeu').click(um_new_user);
7   $('#nutzerLoeschen').prop( "disabled", true );
c79c12 8   $('#nutzerRolleEntziehen').prop( "disabled", true );
51edf4 9   $('#rolleErteilen').prop( "disabled", true );
95f415 10   $('#neueRolle').click(um_new_role);
51edf4 11   $('#rollen').click(um_role_list_click);
U 12   $('#nutzerrollen').click(um_user_role_list_click);
72c5c3 13   um_clear_user_form();
U 14   um_apicall_get_user_list();
51edf4 15   um_apicall_get_granted_roles();
5bf001 16 }
4df887 17
U 18 /* ----- user functions ------ */
5bf001 19
U 20 function um_user_save() {
f8b605 21   var user = um_user_form_lesen();
U 22   var kww = $('#kennwortw').val();
23   if(user.pw != kww) {
24     alert('Kennworte stimmen nicht ueberein.');
25   } else {
72c5c3 26     um_apicall_create_user(self.serialisieren(user));
f8b605 27   }
U 28 }
4df887 29
72c5c3 30 function um_del_user() {
95f415 31   var userId = um_get_first_selected_user_id();
U 32   if(userId !== 'none') {
c79c12 33     var antwort = confirm("Wollen Sie den Nutzer " + userId + " loeschen?"); 
95f415 34     if (antwort === true) {
U 35       var user = new User(userId, '-', '-', '-', '-');
36       um_apicall_del_user(self.serialisieren(user));
37     }  
38   }
4df887 39 }
U 40
41 function um_new_user() {
42   alert('show form to enter new user');
95f415 43 }
U 44
45 /* ----------- role functions ------------ */
46
47 function um_new_role() {
51edf4 48   var roleIsNew = true;
95f415 49   var userId = um_get_first_selected_user_id();
U 50   if(userId === 'none') {
51     alert('Es wurde kein Benutzer ausgewaehlt.');
52   } else {
53     var answer = prompt("Name der Rolle", "");
54     if (answer === null) {
55       alert("Es wurde Cancel betaetigt.");
56     } else if(answer !== "") {
51edf4 57       um_apicall_grant_role(userId, answer, roleIsNew);
95f415 58     } else {
U 59       alert("OK betaetigt, aber Keine Rolle angegeben.");
60     }
61   }
4df887 62 }
U 63
64 /* ----------- ui interaction ------------ */
65
66 function um_user_list_click() {
72c5c3 67   $('#nutzerLoeschen').prop( "disabled", false );
c79c12 68   var userId = um_get_first_selected_user_id();
U 69   um_apicall_get_user_roles(userId);
51edf4 70 }
U 71
72 function um_role_list_click() {
73   $('#rolleErteilen').prop( "disabled", false );
74 }
75
76 function um_user_role_list_click() {
77   $('#nutzerRolleEntziehen').prop( "disabled", false );
4df887 78 }
U 79
80
81 /* ------- ui i/o ------ */
82
83 function um_user_form_lesen() {
84   var userId = $('#anmeldename').val();
85   var kw = $('#kennwort').val();
86   var user = new User(userId, kw, '-', '-', '-');
87   return user;
88 }
89
546fbc 90 function um_show_user_list(resp) {
72c5c3 91   $("#nutzerliste").empty();
546fbc 92   var users = resp.List[0];
72c5c3 93   for(var i = 1; i < users.List.length; i++) {
546fbc 94     var user = users.List[i];
U 95     $("#nutzerliste").append('<option value=' + user.String + '>' + user.String + '</option>');
96   }
72c5c3 97   $('#nutzerLoeschen').prop( "disabled", true );
U 98 }
99
100 function um_clear_user_form() {
101   $('#anmeldename').val('');
102   $('#kennwort').val('');
103   $('#kennwortw').val('');
546fbc 104 }
4df887 105
95f415 106 function um_get_first_selected_user_id() {
U 107   var userId = 'none';
108   var userIds = [];
109   $('#nutzerliste :selected').each(function(i, selected){
110     userIds[i] = $(selected).text();
111   });
112   if(userIds.length > 0) {
113     userId = userIds[0];
114   }
115   return userId;
c79c12 116 }
U 117
118 // {"List":[{"List":[{"String":"ROLE_NAME"},{"String":"testrolle1"}]}]}
119 function um_show_user_role_list(resp) {
120   $("#nutzerrollen").empty();
121   var rollen = resp.List[0];
122   for(var i = 1; i < rollen.List.length; i++) {
123     var rolle = rollen.List[i];
124     $("#nutzerrollen").append('<option value=' + rolle.String + '>' + rolle.String + '</option>');
125   }
126   $('#nutzerRolleEntziehen').prop( "disabled", true );
95f415 127 }
U 128
51edf4 129 function um_show_role_list(resp) {
U 130   $("#rollen").empty();
131   var rollen = resp.List[0];
132   for(var i = 1; i < rollen.List.length; i++) {
133     var rolle = rollen.List[i];
134     $("#rollen").append('<option value=' + rolle.String + '>' + rolle.String + '</option>');
135   }
136   //$('#neueRolle').prop( "disabled", true );
137   $('#rolleErteilen').prop( "disabled", true );
138 }
4df887 139 /* ---- api calls ----- */
f8b605 140
72c5c3 141 function um_apicall_create_user(user) {
f8b605 142   var m = 'createUser';
72c5c3 143   var u = '../svc/' + m;
f8b605 144   $.ajax({
U 145     url: u,
146     data: {
72c5c3 147       p: user
f8b605 148     },
U 149     type: "POST",
150     dataType : "html",
72c5c3 151     success: function( resp ) {
f8b605 152       //$('#fehler').html('Antwort: ' + resp);
72c5c3 153       um_apicall_get_user_list();
U 154       um_clear_user_form();
155     },
f8b605 156     error: function( xhr, status, errorThrown ) {
U 157       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
158     },
159     complete: function( xhr, status ) {
160       //alert( "The request is complete!" );
161     }
162   });      
163 }
164
72c5c3 165 function um_apicall_del_user(user) {
U 166   var m = 'deleteUser';
167   var u = '../svc/' + m;
168   $.ajax({
169     url: u,
170     data: {
171       p: user
172     },
173     type: "POST",
174     dataType : "html",
175     success: function( resp ) {
176       um_apicall_get_user_list();
177     },
178     error: function( xhr, status, errorThrown ) {
179       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
180     },
181     complete: function( xhr, status ) {
182       //alert( "The request is complete!" );
183     }
184   });      
185 }
186
187 function um_apicall_get_user_list() {
546fbc 188   var m = 'getUserNameList';
U 189   var u = '../svc/' + m;
190   $.ajax({
191     url: u,
192     type: "GET",
193     dataType : "json",
194     success: function( resp ) {
195       um_show_user_list(resp);
196     },
197     error: function( xhr, status, errorThrown ) {
198       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
199     },
200     complete: function( xhr, status ) {
201       //alert( "The request is complete!" );
202     }
203   });      
204 }
205
c79c12 206 // public UserRole grantRole(String userId, String roleName) 
51edf4 207 function um_apicall_grant_role(userId, roleName, isNewRole) {
c79c12 208   var m = 'grantRole';
U 209   var u = '../svc/' + m;
210   $.ajax({
211     url: u,
212     data: {
213       p1: userId,
214       p2: roleName
215     },
216     type: "POST",
217     dataType : "html",
218     success: function( resp ) {
219       um_apicall_get_user_roles(userId);
51edf4 220       if(isNewRole) {
U 221         um_apicall_get_granted_roles();
222       }
c79c12 223     },
U 224     error: function( xhr, status, errorThrown ) {
225       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
226     },
227     complete: function( xhr, status ) {
228       //alert( "The request is complete!" );
229     }
230   });
231 }
232
233 //public List getUserRoleNames(String userId)
234 function um_apicall_get_user_roles(userId) {
235   var m = 'getUserRoleNames';
236   var u = '../svc/' + m + '?p=' + userId;
237   $.ajax({
238     url: u,
239     type: "GET",
240     dataType : "json",
241     success: function( resp ) {
242       // Antwort in Liste anzeigen
243       um_show_user_role_list(resp);
244     },
245     error: function( xhr, status, errorThrown ) {
246       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
247     },
248     complete: function( xhr, status ) {
249       //alert( "The request is complete!" );
250     }
251   });      
252 }
253
51edf4 254 function um_apicall_get_granted_roles() {
U 255   var m = 'getRoleNamesGranted';
256   var u = '../svc/' + m;
257   $.ajax({
258     url: u,
259     type: "GET",
260     dataType : "json",
261     success: function( resp ) {
262       // Antwort in Liste anzeigen
263       um_show_role_list(resp);
264     },
265     error: function( xhr, status, errorThrown ) {
266       $('#fehler').html("Error: " + errorThrown + " Status: " + status);
267     },
268     complete: function( xhr, status ) {
269       //alert( "The request is complete!" );
270     }
271   });      
272 }
273
4df887 274 /* ----- Hilfsfunktionen ----- */
f8b605 275
U 276 function serialisieren(obj) {
277   return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}';
278 };
279
4df887 280 /* ----- Objekte ----- */
U 281
f8b605 282 function User(i, p, fn, ln, em) {
U 283   this.id = i;
284   this.pw = p;
285   this.firstName = fn;
286   this.lastName = ln;
287   this.email = em;
5bf001 288 }