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.description}
+
+
+
+
+
+
-
+