]> WPIA git - gigi.git/commitdiff
upd: display "none" when there are no groups to be displayed
authorFelix Dörre <felix@dogcraft.de>
Tue, 28 Feb 2017 09:43:04 +0000 (10:43 +0100)
committerFelix Dörre <felix@dogcraft.de>
Tue, 28 Feb 2017 09:43:18 +0000 (10:43 +0100)
Change-Id: I6e5f6bef4f23faa5acb6db66a3ea6f6b4bdc73a6

src/club/wpia/gigi/output/GroupIterator.java [deleted file]
src/club/wpia/gigi/output/GroupList.java [new file with mode: 0644]
src/club/wpia/gigi/pages/MainPage.java
src/club/wpia/gigi/pages/MainPage.templ
src/club/wpia/gigi/pages/account/MyDetailsForm.java
src/club/wpia/gigi/pages/account/MyDetailsRoles.templ
src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.java
src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.templ

diff --git a/src/club/wpia/gigi/output/GroupIterator.java b/src/club/wpia/gigi/output/GroupIterator.java
deleted file mode 100644 (file)
index d195c6c..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-package club.wpia.gigi.output;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import club.wpia.gigi.dbObjects.Group;
-import club.wpia.gigi.localisation.Language;
-import club.wpia.gigi.output.template.IterableDataset;
-
-public class GroupIterator implements IterableDataset {
-
-    private final boolean asSupport;
-
-    private final Iterator<Group> i;
-
-    public GroupIterator(Iterator<Group> i, boolean asSupport) {
-        this.asSupport = asSupport;
-        this.i = i;
-    }
-
-    private int j = 0;
-
-    @Override
-    public boolean next(Language l, Map<String, Object> vars) {
-        while (i.hasNext()) {
-            Group g = i.next();
-            if (g.isManagedBySupport() == asSupport) {
-                vars.put("group_concat", (j > 0 ? ", " : ""));
-                vars.put("group", g.getName());
-                j++;
-                return true;
-            }
-        }
-
-        return false;
-    }
-}
diff --git a/src/club/wpia/gigi/output/GroupList.java b/src/club/wpia/gigi/output/GroupList.java
new file mode 100644 (file)
index 0000000..c1dd4b7
--- /dev/null
@@ -0,0 +1,40 @@
+package club.wpia.gigi.output;
+
+import java.io.PrintWriter;
+import java.util.Map;
+
+import club.wpia.gigi.dbObjects.Group;
+import club.wpia.gigi.localisation.Language;
+import club.wpia.gigi.output.template.Outputable;
+
+public class GroupList implements Outputable {
+
+    private final Iterable<Group> groups;
+
+    private final boolean supportGroups;
+
+    public GroupList(Iterable<Group> groups, boolean supportGroups) {
+        this.groups = groups;
+        this.supportGroups = supportGroups;
+    }
+
+    @Override
+    public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+        boolean fst = true;
+        for (Group g : groups) {
+            if (g.isManagedBySupport() != supportGroups) {
+                continue;
+            }
+            if ( !fst) {
+                out.write(", ");
+            } else {
+                fst = false;
+            }
+            g.getName().output(out, l, vars);
+        }
+        if (fst) {
+            out.println(l.getTranslation("none"));
+        }
+    }
+
+}
index 882e3a1de07f52b049e25c684560f45a0de94cba..6d279109121f8694e6b5380837c99368182307d9 100644 (file)
@@ -16,7 +16,7 @@ import club.wpia.gigi.dbObjects.Group;
 import club.wpia.gigi.dbObjects.Organisation;
 import club.wpia.gigi.dbObjects.User;
 import club.wpia.gigi.localisation.Language;
-import club.wpia.gigi.output.GroupIterator;
+import club.wpia.gigi.output.GroupList;
 import club.wpia.gigi.output.template.IterableDataset;
 import club.wpia.gigi.output.template.Template;
 
@@ -35,8 +35,8 @@ public class MainPage extends Page {
             User u = LoginPage.getUser(req);
             vars.put("username", u.getPreferredName());
             final Set<Group> gr = u.getGroups();
-            vars.put("support-groups", new GroupIterator(gr.iterator(), true));
-            vars.put("groups", new GroupIterator(gr.iterator(), false));
+            vars.put("support-groups", new GroupList(gr, true));
+            vars.put("groups", new GroupList(gr, false));
             vars.put("ra-agent", u.canVerify());
             vars.put("vp", u.getVerificationPoints());
             vars.put("xp", u.getExperiencePoints());
index 607f0fe690f005b6eac697208732c037ea08e189..04b8085126ac1a69b895bea0eb20f954594cda1b 100644 (file)
@@ -2,8 +2,8 @@
 <h4><?=_Subscriber information?></h4>
 <div class="well">
 <? if($ra-agent) { ?><p><?=_You are an RA Agent.?></p><? } ?>
-<p><?=_Assigned support permissions?>: <? foreach($support-groups) { ?><?=$group_concat?><?=$group?><? } ?></p>
-<p><?=_Assigned user-managed permissions?>: <? foreach($groups) { ?><?=$group_concat?><?=$group?><? } ?> (<?=_!'<a href="/account/details">'more!'</a>'?>)</p>
+<p><?=_Assigned support permissions?>: <?=$support-groups?></p>
+<p><?=_Assigned user-managed permissions?>: <?=$groups?> (<?=_!'<a href="/account/details">'more!'</a>'?>)</p>
 <p><?=_${vp} Verification Points and ${xp} Experience Points.?> (<?=_!'<a href="/wot/points">'more!'</a>'?>)</p>
 </div>
 
index e4834a150016d4a309af154efd28ee6a08a575ac..13d038808fb5c050b32539cf076ce15cc63750ba 100644 (file)
@@ -14,7 +14,7 @@ import club.wpia.gigi.localisation.Language;
 import club.wpia.gigi.output.ArrayIterable;
 import club.wpia.gigi.output.CountrySelector;
 import club.wpia.gigi.output.DateSelector;
-import club.wpia.gigi.output.GroupIterator;
+import club.wpia.gigi.output.GroupList;
 import club.wpia.gigi.output.GroupSelector;
 import club.wpia.gigi.output.NameInput;
 import club.wpia.gigi.output.template.Form;
@@ -157,8 +157,8 @@ public class MyDetailsForm extends Form {
         }
 
         final Set<Group> gr = target.getGroups();
-        vars.put("support-groups", new GroupIterator(gr.iterator(), true));
-        vars.put("groups", new GroupIterator(gr.iterator(), false));
+        vars.put("support-groups", new GroupList(gr, true));
+        vars.put("groups", new GroupList(gr, false));
         vars.put("groupSelector", selectedGroup);
         roles.output(out, l, vars);
     }
index d4d7c2f9ae51e30ec574985d488d43144ed568db..b25d11d7e8b6c969c63ca9545007ad0138329b24 100644 (file)
@@ -2,9 +2,9 @@
   <div class="panel-heading"><?=_Permissions / Group Assignments?></div>
   <div class="panel-body">
   <h4><?=_Support Managed Permissions?>:</h4>
-  <? foreach($support-groups) { ?><?=$group_concat?><?=$group?><? } ?>
+  <?=$support-groups?>
   <h4><?=_User Managed Permissions?>:</h4>
-  <? foreach($groups) { ?><?=$group_concat?><?=$group?><? } ?>
+  <?=$groups?>
   <h4><?=_Set User Managed Permissions?>:</h4>
   <?=$groupSelector?> <button class="btn btn-info" name="action" value="addGroup"><?=_Add Group?></button> <button class="btn btn-info" name="action" value="removeGroup"><?=_Remove Group?></button>
   </div>
index a7b1be77b4fbe9332cc834eab9b12ab8ba449d56..fe2ecb2ba80928f4efc3aedadd21804b6ca7c422 100644 (file)
@@ -14,7 +14,7 @@ import club.wpia.gigi.dbObjects.User;
 import club.wpia.gigi.localisation.Language;
 import club.wpia.gigi.output.ArrayIterable;
 import club.wpia.gigi.output.DateSelector;
-import club.wpia.gigi.output.GroupIterator;
+import club.wpia.gigi.output.GroupList;
 import club.wpia.gigi.output.GroupSelector;
 import club.wpia.gigi.output.template.Form;
 import club.wpia.gigi.output.template.Template;
@@ -93,8 +93,8 @@ public class SupportUserDetailsForm extends Form {
         vars.put("verificationPoints", user.getVerificationPoints());
         vars.put("exppoints", user.getExperiencePoints());
         final Set<Group> gr = user.getGroups();
-        vars.put("support-groups", new GroupIterator(gr.iterator(), true));
-        vars.put("groups", new GroupIterator(gr.iterator(), false));
+        vars.put("support-groups", new GroupList(gr, true));
+        vars.put("groups", new GroupList(gr, false));
         vars.put("groupSelector", value);
         t.output(out, l, vars);
     }
index 1a75afd7d3c9ddffb86b18da843d2d4a1c319201..2206f3e50ae13b53889bce4df740d15945777009 100644 (file)
 
         <tr>
             <td><?=_Support Managed Groups?>:</td>
-            <td><p><? foreach($support-groups) { ?><?=$group_concat?><?=$group?><? } ?></p>
+            <td><p><?=$support-groups?></p>
             <p><?=$groupSelector?><input class="btn btn-info" type='submit' value='<?=_Add Group?>' name='addGroup'> <input class="btn btn-info" type='submit' value='<?=_Remove Group?>' name='removeGroup'></p>
             </td>
         </tr>
 
         <tr>
             <td><?=_User Managed Groups?>:</td>
-            <td><p><? foreach($groups) { ?><?=$group_concat?><?=$group?><? } ?></p>
+            <td><p><?=$groups?></p>
             </td>
         </tr>