ulrich@undisclosed
2020-05-14 c995b7aefb982338ad4bd82b57ccf9295363aff9
web/ui2/js/app.js
@@ -21,6 +21,8 @@
      gewaehlterNutzer.classList.remove("nutzer-gewaehlt");
    }
    target.classList.add("nutzer-gewaehlt");
    var nutzerId = target.innerHTML;
    self.rollen_dialog_zeigen(nutzerId);
  };
  
  this.nutzer_speichern = function() {
@@ -75,13 +77,42 @@
    self.appMenu.toggle(); // menue oeffnen/schliessen
  };
  this.rollen_dialog_zeigen = function(nutzerId) {
    var m = 'getUserRoleNames';
    var u = '../svc/' + m + '?p=' + nutzerId;
    self.http_get(u, function (antwort) {
      self.vorlagen.html_erzeugen(
        'data/tpl/nutzer-rollen-dlg.tpl',
        JSON.parse(antwort),
        function (html) {
          document.querySelector("#nutzer").innerHTML = html;
          document.querySelector("#nutzer-id").textContent = nutzerId;
          var m = 'getRoleNamesGranted';
          var u = '../svc/' + m;
          self.http_get(u, function (antwort2) {
            self.vorlagen.html_erzeugen(
              'data/tpl/alle-rollen.tpl',
              JSON.parse(antwort2),
              function (html) {
                document.querySelector(".alle-rollen-behaelter").innerHTML = html;
              });
          });
        });
    });
  };
  this.info_dialog_zeigen = function () {
    self.dialog_laden_und_zeigen('data/tpl/dlg-info.tpl', '');
    self.dialog_zeigen('data/tpl/dlg-info.tpl', '');
    self.menue_umschalten();
  };
  this.nutzer_neu_dialog_zeigen = function () {
    self.dialog_laden_und_zeigen('data/tpl/dlg-nutzer-neu.tpl', '');
    self.dialog_zeigen('data/tpl/dlg-nutzer-neu.tpl', '', function(){
      var btn = document.getElementById('nutzer-speichern-btn');
      if(btn !== null) {
        btn.addEventListener('click', self.nutzer_speichern);
      }
    });
    self.menue_umschalten();
  };
@@ -94,7 +125,7 @@
      ostDiv.classList.add('ost-open');
      ostDiv.style.flexBasis = '6em';
    }
    self.menue_umschalten();
    //self.menue_umschalten();
  };
  this.fusszeile_umschalten = function () {
@@ -131,26 +162,18 @@
  /* Dialog-Funktionen */
  /*
   Einen Dialog aus Vorlagen erzeugen
   vurl - URL zur Dialogvorlage
   msgTpl - URL mit einer Vorlage eines Mitteilungstextes (optional)
   * Einen Dialog erzeugen
   *
   * Die Vorlage, auf die im Parameter vurl verwiesen wird, wird geladen,
   * wenn sie noch nicht benutzt wurde
   *
   * @param {String} vurl - der URL mit der Dialogvorlage
   * @param {JSON-Objekt} inhalt - was im Dialog an dynamischem Inhalt angezeigt werden soll
   * @param {function} renderCallback -
   *     Funktion, die aufgerufen wird nachdem der Dialog gerendert wurde
   * @returns {undefined}
   */
  this.dialog_laden_und_zeigen = function (vurl, msgTpl) {
    if (msgTpl !== '') {
      fetch(msgTpl)
              .then(data => {
                // Handle data
                self.dialog_zeigen(vurl, data);
              }).catch(error => {
        // Handle error
      });
    } else {
      self.dialog_zeigen(vurl, '');
    }
  };
  this.dialog_zeigen = function (vurl, inhalt) {
  this.dialog_zeigen = function (vurl, inhalt, renderCallback) {
    var dlg = document.querySelector(".dialog");
    self.vorlagen.html_erzeugen(
            vurl,
@@ -159,17 +182,18 @@
              dlg.style.flexBasis = '14em';
              setTimeout(function () {
                dlg.innerHTML = html;
                document.querySelector('.close-btn').addEventListener('click', self.dialog_schliessen);
                var btn = document.getElementById('nutzer-speichern-btn');
                if(btn !== null) {
                  btn.addEventListener('click', self.nutzer_speichern);
                }
                document.querySelector('.close-btn').addEventListener(
                        'click', self.dialog_schliessen);
                if(renderCallback !== undefined) {
                  renderCallback();
                }
              }, 300);
            });
  };
  this.dialog_schliessen = function () {
    document.querySelector('.close-btn').removeEventListener('click', self.dialog_schliessen);
    document.querySelector('.close-btn').removeEventListener(
            'click', self.dialog_schliessen);
    var dlg = document.querySelector('.dialog');
    dlg.innerHTML = '';
    dlg.style.flexBasis = '0em';
@@ -203,6 +227,8 @@
    var url = '../svc/createUser';
    self.http_post(url, u, function (antwort) {
      self.get_user_list();
      document.getElementById('nutzer-speichern-btn').removeEventListener(
        'click', self.nutzer_speichern);
      self.dialog_schliessen();
    });
  };