From 1345f04c927a319d1f541d420250e94bb949fbdd Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Sat, 11 Feb 2017 13:30:21 +0000
Subject: [PATCH] An-/Abmelden eingebaut

---
 web/ui/ui.js |   96 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 79 insertions(+), 17 deletions(-)

diff --git a/web/ui/ui.js b/web/ui/ui.js
index b0ccf4e..db78d60 100644
--- a/web/ui/ui.js
+++ b/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(logout);
   um_clear_user_form();
   um_apicall_get_user_list();
   um_apicall_get_granted_roles();
+  um_apicall_get_login();
 }
 
 /* ----- user functions ------ */
@@ -43,6 +46,10 @@
       um_apicall_del_user(self.serialisieren(user));
     }  
   }
+}
+
+function logout() {
+  um_apicall_logout();
 }
 
 /* ----------- role functions ------------ */
@@ -130,18 +137,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');
+  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,21 +209,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 );
 }
 
@@ -360,6 +382,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) {

--
Gitblit v1.9.3