From: Felix Dörre Date: Tue, 28 Feb 2017 09:43:04 +0000 (+0100) Subject: upd: display "none" when there are no groups to be displayed X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=ba572abc3bbaff989a4039869b1138b790442dd0;ds=sidebyside upd: display "none" when there are no groups to be displayed Change-Id: I6e5f6bef4f23faa5acb6db66a3ea6f6b4bdc73a6 --- diff --git a/src/club/wpia/gigi/output/GroupIterator.java b/src/club/wpia/gigi/output/GroupIterator.java deleted file mode 100644 index d195c6ca..00000000 --- a/src/club/wpia/gigi/output/GroupIterator.java +++ /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 i; - - public GroupIterator(Iterator i, boolean asSupport) { - this.asSupport = asSupport; - this.i = i; - } - - private int j = 0; - - @Override - public boolean next(Language l, Map 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 index 00000000..c1dd4b79 --- /dev/null +++ b/src/club/wpia/gigi/output/GroupList.java @@ -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 groups; + + private final boolean supportGroups; + + public GroupList(Iterable groups, boolean supportGroups) { + this.groups = groups; + this.supportGroups = supportGroups; + } + + @Override + public void output(PrintWriter out, Language l, Map 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")); + } + } + +} diff --git a/src/club/wpia/gigi/pages/MainPage.java b/src/club/wpia/gigi/pages/MainPage.java index 882e3a1d..6d279109 100644 --- a/src/club/wpia/gigi/pages/MainPage.java +++ b/src/club/wpia/gigi/pages/MainPage.java @@ -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 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()); diff --git a/src/club/wpia/gigi/pages/MainPage.templ b/src/club/wpia/gigi/pages/MainPage.templ index 607f0fe6..04b80851 100644 --- a/src/club/wpia/gigi/pages/MainPage.templ +++ b/src/club/wpia/gigi/pages/MainPage.templ @@ -2,8 +2,8 @@

-

:

-

: ('more!''?>)

+

:

+

: ('more!''?>)

('more!''?>)

diff --git a/src/club/wpia/gigi/pages/account/MyDetailsForm.java b/src/club/wpia/gigi/pages/account/MyDetailsForm.java index e4834a15..13d03880 100644 --- a/src/club/wpia/gigi/pages/account/MyDetailsForm.java +++ b/src/club/wpia/gigi/pages/account/MyDetailsForm.java @@ -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 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); } diff --git a/src/club/wpia/gigi/pages/account/MyDetailsRoles.templ b/src/club/wpia/gigi/pages/account/MyDetailsRoles.templ index d4d7c2f9..b25d11d7 100644 --- a/src/club/wpia/gigi/pages/account/MyDetailsRoles.templ +++ b/src/club/wpia/gigi/pages/account/MyDetailsRoles.templ @@ -2,9 +2,9 @@

:

- +

:

- +

:

diff --git a/src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.java b/src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.java index a7b1be77..fe2ecb2b 100644 --- a/src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.java +++ b/src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.java @@ -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 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); } diff --git a/src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.templ b/src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.templ index 1a75afd7..2206f3e5 100644 --- a/src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.templ +++ b/src/club/wpia/gigi/pages/admin/support/SupportUserDetailsForm.templ @@ -43,14 +43,14 @@ : -

+

: -

+