From 2d5f0fc2a19360096cd82f97afb26ccfba5eaa4c Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sun, 29 Nov 2020 12:05:24 +0100 Subject: [PATCH] Admin Dashboard --- .../org/libreccm/ui/admin/AdminPageModel.java | 36 ++++++++++++--- .../libreccm/ui/admin/AdminPagesModel.java | 1 + .../org/libreccm/ui/admin/dashboard.xhtml | 44 ++++++++++++++++--- 3 files changed, 67 insertions(+), 14 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPageModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPageModel.java index f8d6ac2b6..40eaf8b96 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPageModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPageModel.java @@ -18,14 +18,16 @@ */ package org.libreccm.ui.admin; +import java.util.Comparator; + /** * Model for the data of an admin page. - * + * * @see AdminPage - * + * * @author Jens Pelzetter */ -public class AdminPageModel { +public class AdminPageModel implements Comparable { private String uriIdentifier; @@ -35,11 +37,13 @@ public class AdminPageModel { private String icon; + private long position; + public String getUriIdentifier() { return uriIdentifier; } - public void setUriIdentifier(final String uriIdentifier) { + protected void setUriIdentifier(final String uriIdentifier) { this.uriIdentifier = uriIdentifier; } @@ -47,7 +51,7 @@ public class AdminPageModel { return label; } - public void setLabel(final String label) { + protected void setLabel(final String label) { this.label = label; } @@ -55,7 +59,7 @@ public class AdminPageModel { return description; } - public void setDescription(final String description) { + protected void setDescription(final String description) { this.description = description; } @@ -63,8 +67,26 @@ public class AdminPageModel { return icon; } - public void setIcon(final String icon) { + protected void setIcon(final String icon) { this.icon = icon; } + public long getPosition() { + return position; + } + + protected void setPosition(final long position) { + this.position = position; + } + + @Override + public int compareTo(final AdminPageModel other) { + return Comparator + .nullsFirst( + Comparator + .comparing(AdminPageModel::getPosition) + .thenComparing(AdminPageModel::getLabel) + ).compare(this, other); + } + } diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPagesModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPagesModel.java index 75eca2dea..d459d5a44 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPagesModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/AdminPagesModel.java @@ -89,6 +89,7 @@ public class AdminPagesModel { ) ); model.setIcon(fromAdminPage.getIcon()); + model.setPosition(fromAdminPage.getPosition()); return model; } diff --git a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/dashboard.xhtml b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/dashboard.xhtml index a77b8a7b7..3412d81c1 100644 --- a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/dashboard.xhtml +++ b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/dashboard.xhtml @@ -1,22 +1,52 @@ + xmlns:ui="http://xmlns.jcp.org/jsf/facelets" + xmlns:xlink="http://www.w3.org/1999/xlink"> - + - + - + -
+

#{AdminMessages['dashboard.label']}

-

Placeholder

+
+ +
+
+ +
+

+ + #{page.label} + +

+

+ #{page.description} +

+
+
+
+
+
- +