Index: lams_central/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rc6d1e011ff92ac2a8b0581efa0982100101c70b7 -r8a6945700087134d2cebe7582998199fbad7e029 --- lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision c6d1e011ff92ac2a8b0581efa0982100101c70b7) +++ lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 8a6945700087134d2cebe7582998199fbad7e029) @@ -364,6 +364,7 @@ label.tab.lesson.name =Lesson name: label.tab.lesson.size.full =(show full size) label.tab.lesson.size.fit =(fit to window) +label.tab.lesson.sequence.folder =Lesson Sequence Folder error.tab.lesson.sequence =A valid sequence must be selected label.tab.class.monitors.unselected =Monitors unselected label.tab.class.monitors.selected =Monitors selected Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java =================================================================== diff -u -r76aaa4283f0c9c4b95cae2104bdf453c02ee7721 -r8a6945700087134d2cebe7582998199fbad7e029 --- lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 76aaa4283f0c9c4b95cae2104bdf453c02ee7721) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 8a6945700087134d2cebe7582998199fbad7e029) @@ -29,6 +29,8 @@ import java.net.URLEncoder; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.Set; import java.util.TreeSet; @@ -99,6 +101,16 @@ */ public class HomeAction extends DispatchAction { + private static final Comparator LD_NAME_COMPARATOR = new Comparator() { + // folders go first, then sort by name + @Override + public int compare(FolderContentDTO o1, FolderContentDTO o2) { + return o1.getResourceType().equals(o2.getResourceType()) ? o1.getName().compareTo(o2.getName()) + : FolderContentDTO.FOLDER.equals(o1.getResourceType()) ? -1 : 1; + } + + }; + private static Logger log = Logger.getLogger(HomeAction.class); private static IUserManagementService service; @@ -413,7 +425,7 @@ JSONObject result = new JSONObject(); Vector folderContents = null; - // get use accessible folders in the start + // get user accessible folders in the start if (folderID == null) { folderContents = new Vector(3); MessageService msgService = getWorkspaceManagementService().getMessageService(); @@ -436,6 +448,7 @@ // special behaviour for organisation folders } else if (folderID.equals(WorkspaceAction.ORG_FOLDER_ID)) { folderContents = getWorkspaceManagementService().getAccessibleOrganisationWorkspaceFolders(userID); + Collections.sort(folderContents, HomeAction.LD_NAME_COMPARATOR); if (folderContents.size() == 1) { FolderContentDTO folder = folderContents.firstElement(); @@ -447,6 +460,7 @@ WorkspaceFolder folder = getWorkspaceManagementService().getWorkspaceFolder(folderID); folderContents = getWorkspaceManagementService().getFolderContents(userID, folder, WorkspaceManagementService.AUTHORING); + Collections.sort(folderContents, HomeAction.LD_NAME_COMPARATOR); } // recursively check folders, building a tree @@ -455,6 +469,8 @@ if (FolderContentDTO.FOLDER.equals(contentType)) { JSONObject subfolder = getDeepFolderContents(userID, folderContent.getResourceID().intValue()); subfolder.put("name", folderContent.getName()); + subfolder.put("isRunSequencesFolder", + WorkspaceFolder.RUN_SEQUENCES.equals(folderContent.getResourceTypeID().intValue())); result.append("folders", subfolder); } else if (FolderContentDTO.DESIGN.equals(contentType)) { JSONObject learningDesign = new JSONObject(); Index: lams_central/web/addLesson.jsp =================================================================== diff -u -r36e14660413f9724a9ce75ec99aaaf95de507e64 -r8a6945700087134d2cebe7582998199fbad7e029 --- lams_central/web/addLesson.jsp (.../addLesson.jsp) (revision 36e14660413f9724a9ce75ec99aaaf95de507e64) +++ lams_central/web/addLesson.jsp (.../addLesson.jsp) (revision 8a6945700087134d2cebe7582998199fbad7e029) @@ -39,6 +39,7 @@ var SPLIT_LEARNERS_DESCRIPTION = ''; var LABEL_MISSING_LEARNERS = ''; var LABEL_MISSING_MONITORS = ''; + var LABEL_RUN_SEQUENCES_FOLDER = ''; $(document).ready(function(){ $('#tabs').tabs(); Index: lams_central/web/includes/javascript/addLesson.js =================================================================== diff -u -r5cf28b5fbc194ed54b04fe73e52e47bede16376b -r8a6945700087134d2cebe7582998199fbad7e029 --- lams_central/web/includes/javascript/addLesson.js (.../addLesson.js) (revision 5cf28b5fbc194ed54b04fe73e52e47bede16376b) +++ lams_central/web/includes/javascript/addLesson.js (.../addLesson.js) (revision 8a6945700087134d2cebe7582998199fbad7e029) @@ -351,7 +351,8 @@ if (nodeJSON.folders) { $.each(nodeJSON.folders, function(){ result.push({'type' : 'text', - 'label' : this.name, + 'label' : this.isRunSequencesFolder ? + LABEL_RUN_SEQUENCES_FOLDER : this.name, 'children' : parseFolderTreeNode(this) }); });