Index: lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java =================================================================== diff -u -r63e702b998e24ba405d876e2439864a8f606ba50 -rb090a6262d9b6112946ecf59cbc9b13de7a1caad --- lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java (.../LessonOrderServlet.java) (revision 63e702b998e24ba405d876e2439864a8f606ba50) +++ lams_central/src/java/org/lamsfoundation/lams/web/LessonOrderServlet.java (.../LessonOrderServlet.java) (revision b090a6262d9b6112946ecf59cbc9b13de7a1caad) @@ -26,17 +26,14 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; -import java.util.Set; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; -import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.service.UserManagementService; import org.lamsfoundation.lams.util.WebUtil; @@ -70,25 +67,7 @@ if (orgId != null && ids != null) { Organisation org = (Organisation)service.findById(Organisation.class, orgId); - if (org != null) { - // verify the ids are lessons that belong to orgId; - // necessary since javascript on index page doesn't restrict - // where user drops a lesson when sorting. - // TODO: remove this validation when the javascript sortable's - // containment parameter is working. - List idList = Arrays.asList(ids.split(",")); - List lessons = service.findByProperty(Lesson.class, "organisation", org); - for (String id : idList) { - try { - Long l = new Long(Long.parseLong(id)); - if (!contains(lessons, l)) { - response.sendError(HttpServletResponse.SC_FORBIDDEN); - } - } catch(NumberFormatException e) { - continue; - } - } - + if (org != null) { String oldIds = org.getOrderedLessonIds(); String updatedIds = mergeLessonIds((oldIds!=null ? oldIds : ""), ids); org.setOrderedLessonIds(updatedIds); @@ -98,17 +77,6 @@ } - private boolean contains(List lessons, Long id) { - if (lessons != null) { - Iterator it = lessons.iterator(); - while (it.hasNext()) { - Lesson lesson = (Lesson)it.next(); - if (lesson.getLessonId().equals(id)) return true; - } - } - return false; - } - // take the updated list and insert elements of the old list that don't exist in it; private String mergeLessonIds(String old, String updated) { List oldIds = Arrays.asList(old.split(",")); Index: lams_central/web/main.jsp =================================================================== diff -u -rb95781db2e9d9e1fc05049dcd87a4454cde63565 -rb090a6262d9b6112946ecf59cbc9b13de7a1caad --- lams_central/web/main.jsp (.../main.jsp) (revision b95781db2e9d9e1fc05049dcd87a4454cde63565) +++ lams_central/web/main.jsp (.../main.jsp) (revision b090a6262d9b6112946ecf59cbc9b13de7a1caad) @@ -49,7 +49,10 @@ jQuery(element).Sortable({ accept: "j-single-lesson", axis: "vertically", - // containment: "parent", + containment: [jQuery(element).offset().left, + jQuery(element).offset().top, + jQuery(element).width(), + jQuery(element).height()], onStop: function s() { var ids = []; jQuery(this).parent().children("p").each(function(i, element) {