ulrich
2020-05-17 1d0223f074e395b3fd1fc92fac2ebc139014f770
web/ui/ui.js
@@ -17,9 +17,12 @@
  $('#neueRolle').click(um_new_role);
  $('#rollen').click(um_role_list_click);
  $('#nutzerrollen').click(um_user_role_list_click);
  $('#userMenu').text('?');
  $('#logout').click(um_apicall_logout);
  um_clear_user_form();
  um_apicall_get_user_list();
  um_apicall_get_granted_roles();
  um_apicall_get_login();
}
/* ----- user functions ------ */
@@ -130,18 +133,32 @@
function um_user_form_lesen() {
  var userId = $('#anmeldename').val();
  var kw = $('#kennwort').val();
  var user = new User(userId, kw, '-', '-', '-');
  var firstName = $('#vorname').val();
  var lastName = $('#nachname').val();
  var user = new User(userId, kw, firstName, lastName, '-');
  return user;
}
/*
 * BaseLink liefert fuer einfache selects wie die der Nutzerverwaltung
 * eine simple Listenfunktion, die auf der JSON-Seite wie folgt
 * herauskommt.
 *
 * {"List":[{"List":[{"String":"USER_NAME"},{"String":"admin"},{"String":"test"}]}]}
 *
 * Fuer Mustache sieht ein Template dann z.B so aus:
 *
 *    {{#List}}
 *    {{#List}}
 *      <option value="{{ String }}">{{ String }}</option>'
 *    {{/List}}
 *    {{/List}}
 */
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 );
  var template = $('#tpl-list').html();
  Mustache.parse(template);   // optional, speeds up future uses
  $("#nutzerliste").append( Mustache.render(template, resp) );
}
function um_clear_user_form() {
@@ -188,22 +205,22 @@
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>');
  }
  var template = $('#tpl-list').html();
  Mustache.parse(template);   // optional, speeds up future uses
  $("#nutzerrollen").append( Mustache.render(template, resp) );
  $('#nutzerRolleEntziehen').prop( "disabled", true );
  $('#rolleErteilen').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>');
  }
  var template = $('#tpl-list').html();
  Mustache.parse(template);   // optional, speeds up future uses
  $("#rollen").append( Mustache.render(template, resp) );
  $('#rolleErteilen').prop( "disabled", true );
}
@@ -361,6 +378,46 @@
  });      
}
function um_apicall_get_login() {
  var m = '?c=de.uhilger.um.pub.SessionManager&m=getSessionUser';
  var u = '../pub' + m;
  $.ajax({
    url: u,
    type: "GET",
    dataType : "json",
    success: function( resp ) {
      $('#userMenu').text(resp.UserData.firstName);
    },
    error: function( xhr, status, errorThrown ) {
      $('#fehler').html("Error: " + errorThrown + " Status: " + status);
    },
    complete: function( xhr, status ) {
      //alert( "The request is complete!" );
    }
  });
}
function um_apicall_logout() {
  var m = '?c=de.uhilger.um.pub.SessionManager&m=expireSession';
  var u = '../pub' + m;
  $.ajax({
    url: u,
    type: "GET",
    dataType : "text",
    success: function( resp ) {
      $('#userMenu').text('nicht angemeldet');
      window.location.href = '../logout.html';
    },
    error: function( xhr, status, errorThrown ) {
      $('#fehler').html("Error: " + errorThrown + " Status: " + status);
    },
    complete: function( xhr, status ) {
      //alert( "The request is complete!" );
    }
  });
}
/* ----- Hilfsfunktionen ----- */
function serialisieren(obj) {