Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r00d5413cf23d20dae624c2bfbe17b3c914963945 -r94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030 Binary files differ Index: lams_central/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -re60597c15c579c615cc2e9969a7ed6547132cd91 -r94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030 --- lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision e60597c15c579c615cc2e9969a7ed6547132cd91) +++ lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030) @@ -124,7 +124,6 @@ title.profile.window =LAMS :: My Profile title.edit.profile.window =LAMS :: Edit My Profile title.profile.edit.screen =Edit My Profile -title.archived.groups =Archived Groups label.name =Name label.title =Title label.first_name =First Name Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java =================================================================== diff -u -ra30899464b2771ef1da14014266d0e733626b0ae -r94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030 --- lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision a30899464b2771ef1da14014266d0e733626b0ae) +++ lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision 94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030) @@ -115,15 +115,12 @@ return mapping.findForward("password"); } } - + User user = getUserManagementService().getUserByLogin(userDTO.getLogin()); request.setAttribute("portraitUuid", user.getPortraitUuid()); - + String tab = WebUtil.readStrParam(request, "tab", true); if (StringUtils.equals(tab, "profile")) { - List orgDTOs = getUserManagementService().getArchivedCourseIdsByUser(loggedInUser.getUserId(), - request.isUserInRole(Role.SYSADMIN)); - request.setAttribute("orgDTOs", orgDTOs); return mapping.findForward("profile"); } else if (StringUtils.equals(tab, "editprofile")) { return mapping.findForward("editprofile"); @@ -198,8 +195,8 @@ private IUserManagementService getUserManagementService() { if (IndexAction.userManagementService == null) { - WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet() - .getServletContext()); + WebApplicationContext ctx = WebApplicationContextUtils + .getRequiredWebApplicationContext(getServlet().getServletContext()); IndexAction.userManagementService = (IUserManagementService) ctx.getBean("userManagementService"); } return IndexAction.userManagementService; Index: lams_central/web/profile.jsp =================================================================== diff -u -rdc7b67e7677c8cd2289130c67094a62b39177d05 -r94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030 --- lams_central/web/profile.jsp (.../profile.jsp) (revision dc7b67e7677c8cd2289130c67094a62b39177d05) +++ lams_central/web/profile.jsp (.../profile.jsp) (revision 94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030) @@ -74,16 +74,4 @@ - - - -

- -

- -
-
- - - -

\ No newline at end of file + \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/IOrganisationDAO.java =================================================================== diff -u -r4ef740155321a3d46583770e5ea58e56719597b2 -r94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/IOrganisationDAO.java (.../IOrganisationDAO.java) (revision 4ef740155321a3d46583770e5ea58e56719597b2) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/IOrganisationDAO.java (.../IOrganisationDAO.java) (revision 94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030) @@ -40,40 +40,33 @@ * @param isSysadmin * @return list of orgIds */ - List getActiveCourseIdsByUser(Integer userId, boolean isSysadmin); + List getActiveCourseIdsByUser(Integer userId, boolean isSysadmin); /** - * Get list of orgIds of archived groups. + * Returns courses with specified type, state and parent course. * - * @param userId - * @param isSysadmin - * @return list of orgIds - */ - List getArchivedCourseIdsByUser(Integer userId, boolean isSysadmin); - - /** - * Returns courses with specified type, state and parent course. - * * @param parentOrgId * @param typeId * @param stateId * @param page * @param size * @param sortBy * @param sortOrder - * @param searchString filters results by course name. It can be null and then doesn't affect results + * @param searchString + * filters results by course name. It can be null and then doesn't affect results * @return */ - List getPagedCourses(final Integer parentOrgId, final Integer typeId, final Integer stateId, - int page, int size, String sortBy, String sortOrder, String searchString); + List getPagedCourses(final Integer parentOrgId, final Integer typeId, final Integer stateId, int page, + int size, String sortBy, String sortOrder, String searchString); /** * Counts courses with specified type, state and parent course. * * @param parentOrgId * @param typeId * @param stateId - * @param searchString filters results by course name. It can be null and then doesn't affect results + * @param searchString + * filters results by course name. It can be null and then doesn't affect results * @return */ int getCountCoursesByParentCourseAndTypeAndState(final Integer parentOrgId, final Integer typeId, Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/OrganisationDAO.java =================================================================== diff -u -rbe7f31cd52ecf80be8d0f78aeb815b5517ab940f -r94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/OrganisationDAO.java (.../OrganisationDAO.java) (revision be7f31cd52ecf80be8d0f78aeb815b5517ab940f) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/OrganisationDAO.java (.../OrganisationDAO.java) (revision 94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030) @@ -44,74 +44,50 @@ + " and o.organisationState.organisationStateId = " + OrganisationState.ACTIVE + " order by name"; private static final String GET_ACTIVE_COURSE_IDS_BY_USER = "select uo.organisation.organisationId, uoc.collapsed" - + " from Organisation o, UserOrganisation uo left join uo.userOrganisationCollapsed uoc" - + " where uo.organisation.organisationId = o.organisationId" - + " and o.organisationType.organisationTypeId = " + OrganisationType.COURSE_TYPE - + " and o.organisationState.organisationStateId = " + OrganisationState.ACTIVE - + " and uo.user.userId = :userId" + " order by name"; + + " from UserOrganisation uo left join uo.userOrganisationCollapsed uoc" + + " where uo.organisation.organisationType.organisationTypeId = " + OrganisationType.COURSE_TYPE + + " and uo.organisation.organisationState.organisationStateId = " + OrganisationState.ACTIVE + + " and uo.user.userId = :userId order by name"; - private static final String GET_ALL_ARCHIVED_COURSE_IDS = "select distinct o1.organisationId" - + " from Organisation o1, Organisation o2 " + " where (o1.organisationType.organisationTypeId = " - + OrganisationType.COURSE_TYPE + " and o1.organisationState.organisationStateId = " - + OrganisationState.ACTIVE + " and o2.organisationType.organisationTypeId = " + OrganisationType.CLASS_TYPE - + " and o2.organisationState.organisationStateId = " + OrganisationState.ARCHIVED - + " and o1.organisationId = o2.parentOrganisation.organisationId)" - + " or (o1.organisationType.organisationTypeId = " + OrganisationType.COURSE_TYPE - + " and o1.organisationState.organisationStateId = " + OrganisationState.ARCHIVED + ")" - + " order by o1.name"; + private static final String GET_PAGED_COURSES = "SELECT o FROM Organisation o WHERE o.organisationType.organisationTypeId =:typeId " + + "AND o.organisationState.organisationStateId =:stateId AND o.parentOrganisation.organisationId =:parentOrgId " + + "AND (o.name LIKE CONCAT('%', :searchString, '%')) ORDER BY "; - private static final String GET_ARCHIVED_COURSE_IDS_BY_USER = "select distinct o1.organisationId, uoc.collapsed" - + " from UserOrganisation uo1, Organisation o1, Organisation o2 left join uo1.userOrganisationCollapsed uoc" - + " where (uo1.user.userId = :userId" + " and uo1.organisation.organisationId = o1.organisationId" - + " and o1.organisationType.organisationTypeId = " + OrganisationType.COURSE_TYPE - + " and o1.organisationState.organisationStateId = " + OrganisationState.ACTIVE - + " and o2.organisationType.organisationTypeId = " + OrganisationType.CLASS_TYPE - + " and o2.organisationState.organisationStateId = " + OrganisationState.ARCHIVED - + " and o1.organisationId = o2.parentOrganisation.organisationId)" - + " or (uo1.organisation.organisationId = o1.organisationId" - + " and o1.organisationType.organisationTypeId = " + OrganisationType.COURSE_TYPE - + " and o1.organisationState.organisationStateId = " + OrganisationState.ARCHIVED - + " and uo1.user.userId = :userId)" + " order by o1.name"; + private static final String GET_COUNT_COURSES_BY_PARENT_TYPE_STATE = "SELECT count(*) FROM Organisation o " + + " WHERE o.parentOrganisation.organisationId =:parentOrgId " + + " AND o.organisationType.organisationTypeId =:typeId " + + " AND o.organisationState.organisationStateId =:stateId " + + " AND (o.name LIKE CONCAT('%', :searchString, '%')) "; - public List getActiveCourseIdsByUser(final Integer userId, final boolean isSysadmin) { - - return (List) (isSysadmin ? getSession().createQuery(GET_ALL_ACTIVE_COURSE_IDS).list() : getSession() - .createQuery(GET_ACTIVE_COURSE_IDS_BY_USER).setInteger("userId", userId).list()); + @SuppressWarnings("unchecked") + @Override + public List getActiveCourseIdsByUser(Integer userId, boolean isSysadmin) { + return isSysadmin ? getSession().createQuery(OrganisationDAO.GET_ALL_ACTIVE_COURSE_IDS).list() + : getSession().createQuery(OrganisationDAO.GET_ACTIVE_COURSE_IDS_BY_USER).setInteger("userId", userId) + .list(); } - public List getArchivedCourseIdsByUser(final Integer userId, final boolean isSysadmin) { - - return (List) (isSysadmin ? getSession().createQuery(GET_ALL_ARCHIVED_COURSE_IDS).list() : getSession() - .createQuery(GET_ARCHIVED_COURSE_IDS_BY_USER).setInteger("userId", userId).list()); - } + @SuppressWarnings("unchecked") @Override - public List getPagedCourses(final Integer parentOrgId, final Integer typeId, final Integer stateId, - int page, int size, String sortBy, String sortOrder, String searchString) { - String GET_ORGS = "SELECT o FROM " + Organisation.class.getName() + " o " - + " WHERE o.organisationType.organisationTypeId =:typeId " - + " AND o.organisationState.organisationStateId =:stateId " - + " AND o.parentOrganisation.organisationId =:parentOrgId" - + " AND (o.name LIKE CONCAT('%', :searchString, '%')) " - + " ORDER BY "; - + public List getPagedCourses(Integer parentOrgId, Integer typeId, Integer stateId, int page, int size, + String sortBy, String sortOrder, String searchString) { String sortByParam = "o.name"; - if (sortBy == null) { - sortByParam = "o.name"; - - } else if (sortBy.equals("id")) { + switch (sortBy) { + case "id": sortByParam = "o.organisationId"; - - } else if (sortBy.equals("name")) { + break; + case "name": sortByParam = "o.name"; - - } else if (sortBy.equals("code")) { + break; + case "code": sortByParam = "o.code"; - - } else if (sortBy.equals("description")) { + break; + case "description": sortByParam = "o.description"; + break; } - - Query query = getSession().createQuery(GET_ORGS + sortByParam + " " +sortOrder); + + Query query = getSession().createQuery(OrganisationDAO.GET_PAGED_COURSES + sortByParam + " " + sortOrder); query.setInteger("typeId", typeId); query.setInteger("stateId", stateId); query.setInteger("parentOrgId", parentOrgId); @@ -122,30 +98,18 @@ query.setMaxResults(size); return query.list(); } - - @Override - public int getCountCoursesByParentCourseAndTypeAndState(final Integer parentOrgId, final Integer typeId, - final Integer stateId, String searchString) { - final String GET_ORGS = "SELECT count(*) FROM Organisation o " - + " WHERE o.parentOrganisation.organisationId =:parentOrgId " - + " AND o.organisationType.organisationTypeId =:typeId " - + " AND o.organisationState.organisationStateId =:stateId " - + " AND (o.name LIKE CONCAT('%', :searchString, '%')) "; - Query query = getSession().createQuery(GET_ORGS); + @Override + public int getCountCoursesByParentCourseAndTypeAndState(Integer parentOrgId, Integer typeId, Integer stateId, + String searchString) { + Query query = getSession().createQuery(OrganisationDAO.GET_COUNT_COURSES_BY_PARENT_TYPE_STATE); query.setInteger("parentOrgId", parentOrgId); query.setInteger("typeId", typeId); query.setInteger("stateId", stateId); // support for custom search from a toolbar searchString = searchString == null ? "" : searchString; query.setString("searchString", searchString); - - List list = query.list(); - if (list == null || list.size() == 0) { - return 0; - } else { - return ((Number) list.get(0)).intValue(); - } - } -} + return ((Number) query.uniqueResult()).intValue(); + } +} \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== diff -u -ra627849a2ed5e825df33ae4bd8372d8c9deed13b -r94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision a627849a2ed5e825df33ae4bd8372d8c9deed13b) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030) @@ -489,8 +489,6 @@ List getActiveCourseIdsByUser(Integer userId, boolean isSysadmin); - List getArchivedCourseIdsByUser(Integer userId, boolean isSysadmin); - /** * Search users across login, first name, last name and email fields using the search term. Filters out disabled * users. Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== diff -u -ra627849a2ed5e825df33ae4bd8372d8c9deed13b -r94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision a627849a2ed5e825df33ae4bd8372d8c9deed13b) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 94a4ee377b6f565f4b5228bdfe4fcc4c1c4e5030) @@ -1129,12 +1129,6 @@ return populateCollapsedOrgDTOs(list, isSysadmin); } - @Override - public List getArchivedCourseIdsByUser(Integer userId, boolean isSysadmin) { - List list = organisationDAO.getArchivedCourseIdsByUser(userId, isSysadmin); - return populateCollapsedOrgDTOs(list, isSysadmin); - } - private List populateCollapsedOrgDTOs(List list, boolean isSysadmin) { ArrayList dtoList = new ArrayList(); for (Object obj : list) {