From e1fdbe072f3c6cd615f856d94444c3f0b091e9b8 Mon Sep 17 00:00:00 2001 From: ryans Date: Mon, 27 Jul 2026 08:33:00 -0400 Subject: [PATCH 1/2] Filter Experts by Category Fixes #85 --- .../dtm/business/session/SystemFacade.java | 4 +-- .../controller/reports/ExpertReport.java | 26 +++++++++++++++- .../webapp/WEB-INF/views/reports/expert.jsp | 30 ++++++++++++++++++- 3 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jlab/dtm/business/session/SystemFacade.java b/src/main/java/org/jlab/dtm/business/session/SystemFacade.java index 214a496..54ba870 100644 --- a/src/main/java/org/jlab/dtm/business/session/SystemFacade.java +++ b/src/main/java/org/jlab/dtm/business/session/SystemFacade.java @@ -192,8 +192,8 @@ public SystemEntity findWithExpertList(BigInteger systemId) { } @PermitAll - public List findAllWithExpertList() { - List systemList = this.findByComponentCategoryAndSystem(null, null, null, null); + public List findAllWithExpertList(BigInteger categoryId) { + List systemList = this.findByComponentCategoryAndSystem(null, categoryId, null, null); for (SystemEntity s : systemList) { JPAUtil.initialize(s.getSystemExpertList()); diff --git a/src/main/java/org/jlab/dtm/presentation/controller/reports/ExpertReport.java b/src/main/java/org/jlab/dtm/presentation/controller/reports/ExpertReport.java index 0ced926..ddd8bee 100644 --- a/src/main/java/org/jlab/dtm/presentation/controller/reports/ExpertReport.java +++ b/src/main/java/org/jlab/dtm/presentation/controller/reports/ExpertReport.java @@ -7,9 +7,14 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.BigInteger; import java.util.List; + +import org.jlab.dtm.business.session.CategoryFacade; import org.jlab.dtm.business.session.SystemFacade; +import org.jlab.dtm.persistence.entity.Category; import org.jlab.dtm.persistence.entity.SystemEntity; +import org.jlab.smoothness.presentation.util.ParamConverter; /** * @author ryans @@ -18,6 +23,8 @@ name = "ExpertReport", urlPatterns = {"/reports/expert"}) public class ExpertReport extends HttpServlet { + @EJB + CategoryFacade categoryFacade; @EJB SystemFacade systemFacade; /** @@ -32,8 +39,25 @@ public class ExpertReport extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - List systemList = systemFacade.findAllWithExpertList(); + Category selectedCategory = null; + + BigInteger categoryId = ParamConverter.convertBigInteger(request, "category"); + + if (categoryId != null) { + selectedCategory = categoryFacade.find(categoryId); + } + + List categoryList = categoryFacade.findAlphaCategoryList(); + List systemList = systemFacade.findAllWithExpertList(categoryId); + + String selectionMessage = "All Experts"; + + if(selectedCategory != null) { + selectionMessage = "Category \"" + selectedCategory.getName() + "\""; + } + request.setAttribute("selectionMessage", selectionMessage); + request.setAttribute("categoryList", categoryList); request.setAttribute("systemList", systemList); getServletConfig() diff --git a/src/main/webapp/WEB-INF/views/reports/expert.jsp b/src/main/webapp/WEB-INF/views/reports/expert.jsp index e993037..1b967d5 100644 --- a/src/main/webapp/WEB-INF/views/reports/expert.jsp +++ b/src/main/webapp/WEB-INF/views/reports/expert.jsp @@ -12,7 +12,35 @@
-

+ +
+
+
+ Taxonomy +
    +
  • +
    + +
    +
    + +
    +
  • +
+
+
+ +
+
+

+
+ +

From 53530d4dc4dc48c995307b8fa628c46234c8fc8e Mon Sep 17 00:00:00 2001 From: ryans Date: Mon, 27 Jul 2026 08:34:52 -0400 Subject: [PATCH 2/2] format --- .../java/org/jlab/dtm/business/session/SystemFacade.java | 3 ++- .../dtm/presentation/controller/reports/ExpertReport.java | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/jlab/dtm/business/session/SystemFacade.java b/src/main/java/org/jlab/dtm/business/session/SystemFacade.java index 54ba870..c5e2b54 100644 --- a/src/main/java/org/jlab/dtm/business/session/SystemFacade.java +++ b/src/main/java/org/jlab/dtm/business/session/SystemFacade.java @@ -193,7 +193,8 @@ public SystemEntity findWithExpertList(BigInteger systemId) { @PermitAll public List findAllWithExpertList(BigInteger categoryId) { - List systemList = this.findByComponentCategoryAndSystem(null, categoryId, null, null); + List systemList = + this.findByComponentCategoryAndSystem(null, categoryId, null, null); for (SystemEntity s : systemList) { JPAUtil.initialize(s.getSystemExpertList()); diff --git a/src/main/java/org/jlab/dtm/presentation/controller/reports/ExpertReport.java b/src/main/java/org/jlab/dtm/presentation/controller/reports/ExpertReport.java index ddd8bee..91d28ce 100644 --- a/src/main/java/org/jlab/dtm/presentation/controller/reports/ExpertReport.java +++ b/src/main/java/org/jlab/dtm/presentation/controller/reports/ExpertReport.java @@ -9,7 +9,6 @@ import java.io.IOException; import java.math.BigInteger; import java.util.List; - import org.jlab.dtm.business.session.CategoryFacade; import org.jlab.dtm.business.session.SystemFacade; import org.jlab.dtm.persistence.entity.Category; @@ -23,8 +22,7 @@ name = "ExpertReport", urlPatterns = {"/reports/expert"}) public class ExpertReport extends HttpServlet { - @EJB - CategoryFacade categoryFacade; + @EJB CategoryFacade categoryFacade; @EJB SystemFacade systemFacade; /** @@ -52,7 +50,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) String selectionMessage = "All Experts"; - if(selectedCategory != null) { + if (selectedCategory != null) { selectionMessage = "Category \"" + selectedCategory.getName() + "\""; }