Index: lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupAction.java,v diff -u -r1.45.2.14 -r1.45.2.15 --- lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupAction.java 23 Nov 2016 15:28:08 -0000 1.45.2.14 +++ lams_central/src/java/org/lamsfoundation/lams/web/DisplayGroupAction.java 9 Feb 2017 17:45:44 -0000 1.45.2.15 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java,v diff -u -r1.6.2.5 -r1.6.2.6 --- lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java 11 May 2016 07:07:58 -0000 1.6.2.5 +++ lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java 9 Feb 2017 17:45:44 -0000 1.6.2.6 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/group.jsp,v diff -u -r1.9.2.4 -r1.9.2.5 --- lams_central/web/group.jsp 7 Feb 2017 06:36:04 -0000 1.9.2.4 +++ lams_central/web/group.jsp 9 Feb 2017 17:45:44 -0000 1.9.2.5 @@ -52,12 +52,3 @@ - - -
- "> - - -
-
- Index: lams_central/web/includes/javascript/main.js =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/includes/javascript/Attic/main.js,v diff -u -r1.1.2.23 -r1.1.2.24 --- lams_central/web/includes/javascript/main.js 25 Jan 2017 08:52:01 -0000 1.1.2.23 +++ lams_central/web/includes/javascript/main.js 9 Feb 2017 17:45:44 -0000 1.1.2.24 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/index/IndexOrgBean.java,v diff -u -r1.3.2.2 -r1.3.2.3 --- lams_common/src/java/org/lamsfoundation/lams/index/IndexOrgBean.java 27 Oct 2016 16:00:52 -0000 1.3.2.2 +++ lams_common/src/java/org/lamsfoundation/lams/index/IndexOrgBean.java 9 Feb 2017 17:45:45 -0000 1.3.2.3 @@ -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