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