Index: lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupAction.java =================================================================== diff -u -r4ce511c4d6fb96b1ad07ef0853168c28cc23ebc7 -r15a0a16d66153b4f57df055b38b2c3143445b5fa --- lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupAction.java (.../DisplayGroupAction.java) (revision 4ce511c4d6fb96b1ad07ef0853168c28cc23ebc7) +++ lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupAction.java (.../DisplayGroupAction.java) (revision 15a0a16d66153b4f57df055b38b2c3143445b5fa) @@ -89,23 +89,17 @@ return null; } - boolean allowSorting = false; List roles = new ArrayList(); List userOrganisationRoles = getService().getUserOrganisationRoles(orgId, request.getRemoteUser()); for (UserOrganisationRole userOrganisationRole : userOrganisationRoles) { Integer roleId = userOrganisationRole.getRole().getRoleId(); roles.add(roleId); - if (roleId.equals(Role.ROLE_GROUP_MANAGER) || roleId.equals(Role.ROLE_MONITOR)) { - allowSorting = true; - } } IndexOrgBean iob = createOrgBean(org, roles, request.getRemoteUser(), request.isUserInRole(Role.SYSADMIN)); request.setAttribute("orgBean", iob); - request.setAttribute("allowSorting", allowSorting); - iob.setAllowSorting(allowSorting && iob.getAllowSorting()); if (org.getEnableSingleActivityLessons() && (roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(Role.ROLE_MONITOR))) { // if single activity lessons are enabled, put sorted list of tools @@ -126,6 +120,9 @@ IndexOrgBean orgBean = new IndexOrgBean(org.getOrganisationId(), org.getName(), org.getOrganisationType().getOrganisationTypeId()); + // populate group contents + orgBean = populateContentsOrgBean(orgBean, org, roles, username, isSysAdmin); + // First, populate header part List links = new ArrayList(); List moreLinks = new ArrayList(); @@ -173,7 +170,22 @@ "javascript:showNotificationsDialog(" + org.getOrganisationId() + ",null)", "fa fa-fw fa-bullhorn", "index.emailnotifications.tooltip")); } + + // Adding lesson sorting link + if (roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(Role.ROLE_MONITOR)) { + // make sure the group or any of its subgroups has at least one lesson + boolean hasLesson = !orgBean.getLessons().isEmpty(); + for (IndexOrgBean childOrgBean : orgBean.getChildIndexOrgBeans()) { + hasLesson |= (childOrgBean.getLessons() != null) && !childOrgBean.getLessons().isEmpty(); + } + + if (hasLesson) { + moreLinks.add(new IndexLinkBean("label.enable.lesson.sorting", "javascript:makeOrgSortable()", + "fa fa-fw fa-sort sorting tour-sorting", "label.enable.lesson.sorting")); + } + } + // Adding gradebook course monitor links if enabled if (org.getEnableGradebookForMonitors() && (roles.contains(Role.ROLE_GROUP_MANAGER) || roles.contains(Role.ROLE_GROUP_ADMIN))) { @@ -201,9 +213,6 @@ orgBean.setLinks(links); orgBean.setMoreLinks(moreLinks); - // now populate group contents - orgBean = populateContentsOrgBean(orgBean, org, roles, username, isSysAdmin); - return orgBean; } @@ -214,11 +223,7 @@ Map map = populateLessonBeans(getUser(username).getUserId(), org.getOrganisationId(), roles); List lessonBeans = IndexUtils.sortLessonBeans(org.getOrderedLessonIds(), map); - orgBean.setLessons(lessonBeans); - if (!lessonBeans.isEmpty()) { - orgBean.setAllowSorting(true); - } // create subgroup beans if (orgBean.getType().equals(OrganisationType.COURSE_TYPE)) { @@ -244,9 +249,6 @@ } IndexOrgBean childOrgBean = createOrgBean(organisation, classRoles, username, isSysAdmin); childOrgBeans.add(childOrgBean); - if ((childOrgBean.getLessons() != null) && !childOrgBean.getLessons().isEmpty()) { - orgBean.setAllowSorting(true); - } } } Collections.sort(childOrgBeans); Index: lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r15a0a16d66153b4f57df055b38b2c3143445b5fa --- lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java (.../LessonOrderServlet.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java (.../LessonOrderServlet.java) (revision 15a0a16d66153b4f57df055b38b2c3143445b5fa) @@ -50,9 +50,6 @@ * single comma separated string in lams_organisation. * * @author jliew - * - * - * */ public class LessonOrderServlet extends HttpServlet { @@ -75,12 +72,10 @@ if (org != null) { // make sure user has permission to sort org lessons boolean allowSorting = false; - List roles = new ArrayList(); List userOrganisationRoles = service.getUserOrganisationRoles(orgId, request.getRemoteUser()); for (UserOrganisationRole userOrganisationRole : userOrganisationRoles) { Integer roleId = userOrganisationRole.getRole().getRoleId(); - roles.add(roleId); if (roleId.equals(Role.ROLE_GROUP_MANAGER) || roleId.equals(Role.ROLE_MONITOR)) { allowSorting = true; break; Index: lams_central/web/group.jsp =================================================================== diff -u -rb38bb0fbf5c0a3ae9bb5ad5e811903333826a68a -r15a0a16d66153b4f57df055b38b2c3143445b5fa --- lams_central/web/group.jsp (.../group.jsp) (revision b38bb0fbf5c0a3ae9bb5ad5e811903333826a68a) +++ lams_central/web/group.jsp (.../group.jsp) (revision 15a0a16d66153b4f57df055b38b2c3143445b5fa) @@ -52,12 +52,3 @@ - - -
- "> - - -
-
- Index: lams_central/web/images/sorting_disabled.gif =================================================================== diff -u -r7d9b1ecc6b646f361da0b093af9f852de30e182a -r15a0a16d66153b4f57df055b38b2c3143445b5fa Binary files differ Index: lams_central/web/images/sorting_enabled.gif =================================================================== diff -u -r7d9b1ecc6b646f361da0b093af9f852de30e182a -r15a0a16d66153b4f57df055b38b2c3143445b5fa Binary files differ Index: lams_central/web/includes/javascript/main.js =================================================================== diff -u -rf5c98f7184373165d8ac99fdc3fb3f5e888b4299 -r15a0a16d66153b4f57df055b38b2c3143445b5fa --- lams_central/web/includes/javascript/main.js (.../main.js) (revision f5c98f7184373165d8ac99fdc3fb3f5e888b4299) +++ lams_central/web/includes/javascript/main.js (.../main.js) (revision 15a0a16d66153b4f57df055b38b2c3143445b5fa) @@ -196,13 +196,14 @@ makeSortable(this); }); - $("a.sorting", org).attr({ - "onClick" : null, + //modify parent
  • element + $("i.sorting", org).parent().parent().attr({ + "onClick" : "makeOrgUnsortable()", "title" : LABELS.SORTING_DISABLE - }).off('click').click(function(){ - makeOrgUnsortable(); - }).find("img") - .attr("src", "images/sorting_enabled.gif"); + }); + + //modify link's text + $("i.sorting", org).parent().contents().get(1).nodeValue = LABELS.SORTING_DISABLE; } function makeOrgUnsortable() { @@ -211,13 +212,14 @@ $(this).sortable('destroy'); }); - $("a.sorting", org).attr({ - "onClick" : null, + //modify parent
  • element + $("i.sorting", org).parent().parent().attr({ + "onClick" : "makeOrgSortable()", "title" : LABELS.SORTING_ENABLE - }).off('click').click(function(){ - makeOrgSortable(); - }).find("img") - .attr("src", "images/sorting_disabled.gif"); + }); + + //modify link's text + $("i.sorting", org).parent().contents().get(1).nodeValue = LABELS.SORTING_ENABLE; } function makeSortable(element) { Index: lams_common/src/java/org/lamsfoundation/lams/index/IndexOrgBean.java =================================================================== diff -u -r353fe07604639c2166ed68fbf832810959f3f3cf -r15a0a16d66153b4f57df055b38b2c3143445b5fa --- lams_common/src/java/org/lamsfoundation/lams/index/IndexOrgBean.java (.../IndexOrgBean.java) (revision 353fe07604639c2166ed68fbf832810959f3f3cf) +++ lams_common/src/java/org/lamsfoundation/lams/index/IndexOrgBean.java (.../IndexOrgBean.java) (revision 15a0a16d66153b4f57df055b38b2c3143445b5fa) @@ -41,7 +41,6 @@ private String name; private Date archivedDate; private Integer type; - private Boolean allowSorting = false; private boolean favorite = false; private List links; private List moreLinks; @@ -200,14 +199,6 @@ public void addChildOrgBean(IndexOrgBean orgBean) { childIndexOrgBeans.add(orgBean); } - - public Boolean getAllowSorting() { - return allowSorting; - } - - public void setAllowSorting(Boolean allowSorting) { - this.allowSorting = allowSorting; - } /** * @return whether user marked this organisation as favorite