Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java =================================================================== diff -u -r4a2728da7ea82a98b92d3a8b08feb6efa4023b7d -reaa3076ae7e2216e6ec724be5f8678ce7cb43a3d --- lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision 4a2728da7ea82a98b92d3a8b08feb6efa4023b7d) +++ lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision eaa3076ae7e2216e6ec724be5f8678ce7cb43a3d) @@ -117,25 +117,47 @@ List orgBeans = new ArrayList(); if (request.isUserInRole(Role.SYSADMIN)) { List organisations = getService().getOrganisationsByTypeAndStatus(OrganisationType.COURSE_TYPE,state); - log.debug("we got "+organisations.size()+" organisations whose type is "+OrganisationType.COURSE_DESCRIPTION+" and whose state is "+state); + // when listing archived orgs, make sure we get subgroups that are archived under still-active groups + if (state.equals(OrganisationState.ARCHIVED)) { + organisations.addAll(getService().getOrganisationsByTypeAndStatus(OrganisationType.COURSE_TYPE,OrganisationState.ACTIVE)); + } for (Organisation org:organisations) { + log.debug("archived date: "+org.getArchivedDate()); List roles = new ArrayList(); roles.add(Role.ROLE_SYSADMIN); List userOrganisationRoles = getService().getUserOrganisationRoles(org.getOrganisationId(),request.getRemoteUser()); for(UserOrganisationRole userOrganisationRole:userOrganisationRoles){ roles.add(userOrganisationRole.getRole().getRoleId()); } - orgBeans.add(createOrgBean(org, roles, request.getRemoteUser(),true)); + // don't set the orgbean to display if subgroups are not archived + IndexOrgBean iob = createOrgBean(org, roles, request.getRemoteUser(),true); + if (state.equals(OrganisationState.ARCHIVED) + && org.getOrganisationState().getOrganisationStateId().equals(OrganisationState.ACTIVE) + && iob.getChildIndexOrgBeans().isEmpty()) { + continue; + } + orgBeans.add(iob); } } else { List userOrganisations = getService().getUserOrganisationsForUserByTypeAndStatus(request.getRemoteUser(),OrganisationType.COURSE_TYPE,state); - log.debug("we got "+userOrganisations.size()+" organisations whose type is "+OrganisationType.COURSE_DESCRIPTION+" and whose state is "+state); + // when listing archived orgs, make sure we get subgroups that are archived under still-active groups + if (state.equals(OrganisationState.ARCHIVED)) { + userOrganisations.addAll(getService().getUserOrganisationsForUserByTypeAndStatus(request.getRemoteUser(),OrganisationType.COURSE_TYPE,OrganisationState.ACTIVE)); + } for (UserOrganisation userOrganisation: userOrganisations) { + log.debug("archived date: "+userOrganisation.getOrganisation().getArchivedDate()); List roles = new ArrayList(); for(Object userOrganisationRole:userOrganisation.getUserOrganisationRoles()){ roles.add(((UserOrganisationRole)userOrganisationRole).getRole().getRoleId()); } - orgBeans.add(createOrgBean(userOrganisation.getOrganisation(),roles,request.getRemoteUser(),false)); + // don't set the orgbean to display if subgroups are not archived + IndexOrgBean iob = createOrgBean(userOrganisation.getOrganisation(),roles,request.getRemoteUser(),false); + if (state.equals(OrganisationState.ARCHIVED) + && userOrganisation.getOrganisation().getOrganisationState().getOrganisationStateId().equals(OrganisationState.ACTIVE) + && iob.getChildIndexOrgBeans().isEmpty()) { + continue; + } + orgBeans.add(iob); } } request.setAttribute("orgBeans",orgBeans); @@ -195,8 +217,11 @@ links.add(new IndexLinkBean("index.addlesson","javascript:openAddLesson("+org.getParentOrganisation().getOrganisationId()+","+org.getOrganisationId()+")", "add-lesson-button")); } } - orgBean.setLinks(links); + + if (state.equals(OrganisationState.ARCHIVED) && org.getOrganisationState().getOrganisationStateId().equals(OrganisationState.ARCHIVED)) { + orgBean.setArchivedDate(org.getArchivedDate()); + } List lessonBeans = new ArrayList(); Set lessons = org.getLessons(); Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexOrgBean.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -reaa3076ae7e2216e6ec724be5f8678ce7cb43a3d --- lams_central/src/java/org/lamsfoundation/lams/web/IndexOrgBean.java (.../IndexOrgBean.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_central/src/java/org/lamsfoundation/lams/web/IndexOrgBean.java (.../IndexOrgBean.java) (revision eaa3076ae7e2216e6ec724be5f8678ce7cb43a3d) @@ -23,6 +23,7 @@ package org.lamsfoundation.lams.web; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -39,6 +40,7 @@ public class IndexOrgBean { private String name; + private Date archivedDate; private Integer type; private List links; private List lessons; @@ -112,5 +114,17 @@ public void setType(Integer type) { this.type = type; } + /** + * @return Returns the archived date. + */ + public Date getArchivedDate() { + return archivedDate; + } + /** + * @param type The archived date to set. + */ + public void setArchivedDate(Date archivedDate) { + this.archivedDate = archivedDate; + } } Index: lams_central/web/indexCommon.jsp =================================================================== diff -u -rd27cd72b762714343a0e306975d450967101b3b9 -reaa3076ae7e2216e6ec724be5f8678ce7cb43a3d --- lams_central/web/indexCommon.jsp (.../indexCommon.jsp) (revision d27cd72b762714343a0e306975d450967101b3b9) +++ lams_central/web/indexCommon.jsp (.../indexCommon.jsp) (revision eaa3076ae7e2216e6ec724be5f8678ce7cb43a3d) @@ -2,12 +2,15 @@ <%@ taglib uri="tags-fmt" prefix="fmt"%> <%@ taglib uri="tags-core" prefix="c"%> <%@ taglib uri="tags-logic" prefix="logic"%> +<%@ taglib uri="tags-lams" prefix="lams"%>
-

+

+ ( ) +

@@ -41,13 +44,17 @@

+ + ( ) + add lesson

+