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