From ff2dffd34f557edeeee4ff93028717e79f45441a Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Wed, 01 Feb 2017 17:28:13 +0000
Subject: [PATCH] Alle HTML-Synthetisierungen im Code durch Mustache-Templates ersetzt

---
 web/ui/index.html                       |   24 ++++++++++--
 web/WEB-INF/sql.properties              |    2 
 src/java/de/uhilger/um/api/UserMgr.java |   17 +++++---
 web/ui/ui.js                            |   34 +++++++++++++---
 4 files changed, 59 insertions(+), 18 deletions(-)

diff --git a/src/java/de/uhilger/um/api/UserMgr.java b/src/java/de/uhilger/um/api/UserMgr.java
index ca563fc..1399575 100644
--- a/src/java/de/uhilger/um/api/UserMgr.java
+++ b/src/java/de/uhilger/um/api/UserMgr.java
@@ -26,7 +26,6 @@
 import de.uhilger.um.daten.User;
 import de.uhilger.um.daten.UserData;
 import de.uhilger.um.daten.UserRole;
-import de.uhilger.um.web.Initialiser;
 import java.sql.Connection;
 import java.util.List;
 import java.util.Properties;
@@ -91,7 +90,7 @@
   /** Mapper-Objekt fuer Benutzer */
   private static final Record UserMapper = new GenericRecord(User.class);
   /** Mapper-Objekt fuer Benutzerdaten */
-  private static final Record UserDataMapper = new GenericRecord(UserData.class);
+  //private static final Record UserDataMapper = new GenericRecord(UserData.class);
   /** Mapper-Objekt fuer Benutzerrollen */
   private static final Record UserRoleMapper = new GenericRecord(UserRole.class);
   
@@ -112,8 +111,7 @@
   }
   
   public List getUserNameList() {
-    String sql = getSql(SQL_GET_USER_NAME_LIST);
-    return getDb().select(sql, UserDataMapper);
+    return removeHeadline(getDb().select(getSql(SQL_GET_USER_NAME_LIST), WITHOUT_BLOBS));
   }
   
   public User deleteUser(User user) {
@@ -139,15 +137,22 @@
   }
   
   public List getRoleNamesGranted() {
-    return getDb().select(getSql(SQL_GET_ROLE_LIST), WITHOUT_BLOBS);
+    return removeHeadline(getDb().select(getSql(SQL_GET_ROLE_LIST), WITHOUT_BLOBS));
   }
   
   public List getUserRoleNames(String userId) {
-    return getDb().select(getSql(SQL_GET_USER_ROLES), WITHOUT_BLOBS, userId);
+    return removeHeadline(getDb().select(getSql(SQL_GET_USER_ROLES), WITHOUT_BLOBS, userId));
   }
   
   /* ----------- Helfer ---- */
   
+  private List removeHeadline(List list) {
+    if(list != null && list.size() > 0) {
+      list.remove(0);
+    }
+    return list;
+  }
+  
   /**
    * Ein benanntes SQL-Kommando ermitteln 
    * @param id Name des gewuenschten SQL-Kommandos
diff --git a/web/WEB-INF/sql.properties b/web/WEB-INF/sql.properties
index 9dac09e..8de6b17 100644
--- a/web/WEB-INF/sql.properties
+++ b/web/WEB-INF/sql.properties
@@ -24,7 +24,7 @@
     where key_name = ?
   </entry>
   <entry key="getUserNameList">
-    select user_name,user_first,user_last,user_email from app.users
+    select user_name from app.users
   </entry>
   <entry key="getUserList">
     select * from app.users
diff --git a/web/ui/index.html b/web/ui/index.html
index 498839c..ada5958 100644
--- a/web/ui/index.html
+++ b/web/ui/index.html
@@ -6,13 +6,29 @@
     <title>Benutzer</title>
     <link rel="stylesheet" type="text/css" href="/jslib/bootstrap/css/bootstrap.min.css">
     <link rel="stylesheet" type="text/css" href="stile.css">
-    <script id="tpl-user-list" type="x-tmpl-mustache">
+    <script id="tpl-list" type="x-tmpl-mustache">
       {{#List}}
-      {{#UserData}}
-        <option value="{{ id }}">{{ id }}</option>'
-      {{/UserData}}
+      {{#List}}
+        <option value="{{ String }}">{{ String }}</option>'
+      {{/List}}
       {{/List}}
     </script>
+    <!--
+    <script id="tpl-role-list" type="x-tmpl-mustache">
+      {{#List}}
+      {{#List}}
+        <option value="{{ String }}">{{ String }}</option>'
+      {{/List}}
+      {{/List}}
+    </script>
+    <script id="tpl-user-role-list" type="x-tmpl-mustache">
+      {{#List}}
+      {{#List}}
+        <option value="{{ String }}">{{ String }}</option>'
+      {{/List}}
+      {{/List}}
+    </script>
+    -->
   </head>
   <body>
     <div id="inhalt">
diff --git a/web/ui/ui.js b/web/ui/ui.js
index 9b362fb..8365c9b 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -135,11 +135,23 @@
 }
 
 /*
- * {"List":[{"List":[{"String":"USER_NAME"},{"String":"admin"},{"String":"ulli"}]}]}
+ * 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 template = $('#tpl-user-list').html();
+  var template = $('#tpl-list').html();
   Mustache.parse(template);   // optional, speeds up future uses
   $("#nutzerliste").append( Mustache.render(template, resp) );
 }
@@ -188,22 +200,30 @@
 
 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 template = $('#tpl-list').html();
+  Mustache.parse(template);   // optional, speeds up future uses
+  $("#rollen").append( Mustache.render(template, resp) );
+  
+  /*
   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>');
   }
+  */
+  
   $('#rolleErteilen').prop( "disabled", true );
 }
 

--
Gitblit v1.9.3