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..c5e2b54 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,9 @@ 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..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 @@ -7,9 +7,13 @@ 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 +22,7 @@ name = "ExpertReport", urlPatterns = {"/reports/expert"}) public class ExpertReport extends HttpServlet { + @EJB CategoryFacade categoryFacade; @EJB SystemFacade systemFacade; /** @@ -32,8 +37,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 +
    +
  • +
    + +
    +
    + +
    +
  • +
+
+
+ +
+
+

+
+ +