Index: lams_central/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r489e453a8a4e814ac7edbb0b9ca33997ed7e3bae -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 489e453a8a4e814ac7edbb0b9ca33997ed7e3bae) +++ lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -1083,6 +1083,8 @@ authoring.label.application.exercise.doku.gallery.walk.enabled = Gallery Walk authoring.label.application.exercise.doku.gallery.walk.enabled.tooltip = Use Gallery Walk to promote inter- and intra-teams discussion, higher order thinking, cooperative learning and team building. If enabled, after you start Gallery Walk in Monitoring, the document created for each team is shared to all other teams. Students in their teams then can give each others feedback and rate on their work. label.qb.advanced.search = Advanced search +label.qb.advanced.search.same.ld = Present in this learning design +label.qb.advanced.search.same.ld.tip = Show only questions which were already used in this sequence's activities. authoring.create.doku.question.tooltip = Present a case to the students and as team they will collaboratively create a document in response. authoring.label.application.exercise.doku.gallery.walk.read.only.tooltip = Students will not be able to neither comment on nor rate other teams' work. authoring.label.application.exercise.doku.description = Description/Case Index: lams_central/src/java/org/lamsfoundation/lams/web/qb/SearchQBController.java =================================================================== diff -u -r4a3f535791663e116bc76960f4fc1a4933eacabd -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_central/src/java/org/lamsfoundation/lams/web/qb/SearchQBController.java (.../SearchQBController.java) (revision 4a3f535791663e116bc76960f4fc1a4933eacabd) +++ lams_central/src/java/org/lamsfoundation/lams/web/qb/SearchQBController.java (.../SearchQBController.java) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -140,7 +140,7 @@ questionTypesAvailable.append(","); questionTypesAvailable.append(QbQuestion.TYPE_MARK_HEDGING); } - + request.setAttribute("questionType", questionTypeDefault); request.setAttribute("questionTypesAvailable", questionTypesAvailable.toString()); //let jsp know it's Scratchie, so we can disable VSA questions not compatible with TBL @@ -166,8 +166,8 @@ @RequestMapping("/getPagedQuestions") @ResponseBody private String getPagedQuestions(HttpServletRequest request, HttpServletResponse response, - @RequestParam(required = false) String questionTypes, - @RequestParam(required = false) String collectionUids) { + @RequestParam(required = false) String questionTypes, @RequestParam(required = false) String collectionUids, + @RequestParam(required = false) Long toolContentID) { if (StringUtils.isEmpty(questionTypes)) { questionTypes = null; } @@ -186,8 +186,8 @@ String searchString = WebUtil.readStrParam(request, "searchString", true); // Get the user list from the db - List questions = qbService.getPagedQuestions(questionTypes, collectionUids, page - 1, rowLimit, - sortBy, sortOrder, searchString); + List questions = qbService.getPagedQuestions(questionTypes, collectionUids, toolContentID, page - 1, + rowLimit, sortBy, sortOrder, searchString); int countQuestions = qbService.getCountQuestions(questionTypes, collectionUids, searchString); int totalPages = Double.valueOf(Math.ceil(Double.valueOf(countQuestions) / Double.valueOf(rowLimit))) .intValue(); Index: lams_central/web/includes/javascript/qb-search.js =================================================================== diff -u -r475b1970be027a5c59a08d33ad1aa1f6b2443402 -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_central/web/includes/javascript/qb-search.js (.../qb-search.js) (revision 475b1970be027a5c59a08d33ad1aa1f6b2443402) +++ lams_central/web/includes/javascript/qb-search.js (.../qb-search.js) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -2,6 +2,7 @@ $('.selectpicker').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { gridSearch(); }); + $('#same-ld-checkbox').change(gridSearch); }); //auxiliary formatter for jqGrid's question column @@ -32,6 +33,7 @@ postData: { questionTypes: "" + $("#types-select").val(), collectionUids: "" + $("#collections-select").val(), + toolContentID: $('#same-ld-checkbox').is(":checked") ? $('#same-ld-checkbox').val() : null, searchString: $("#filter-questions").val() } }, Index: lams_central/web/qb/search.jsp =================================================================== diff -u -r04eb675ecfe8d273bbb8879a0186b300ad9582ad -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_central/web/qb/search.jsp (.../search.jsp) (revision 04eb675ecfe8d273bbb8879a0186b300ad9582ad) +++ lams_central/web/qb/search.jsp (.../search.jsp) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -324,6 +324,15 @@ + + +
+ +
+
Index: lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java =================================================================== diff -u -r6f0f844e82f555e8dc0df6916226fac35a2a7c36 -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java (.../IQbDAO.java) (revision 6f0f844e82f555e8dc0df6916226fac35a2a7c36) +++ lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java (.../IQbDAO.java) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -57,6 +57,9 @@ List getPagedQuestions(String questionTypes, String collectionUids, int page, int size, String sortBy, String sortOrder, String searchString); + List getPagedQuestions(String questionTypes, String collectionUids, Long learningDesignId, int page, + int size, String sortBy, String sortOrder, String searchString); + List getAllQuestionUids(String collectionUids, String sortBy, String sortOrder, String searchString); int getCountQuestions(String questionTypes, String collectionUids, String searchString); Index: lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java =================================================================== diff -u -rf9cae5b21c66ce71a10d3e930fe8e40e265d2536 -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java (.../QbDAO.java) (revision f9cae5b21c66ce71a10d3e930fe8e40e265d2536) +++ lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java (.../QbDAO.java) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -244,22 +244,30 @@ @SuppressWarnings("unchecked") @Override + public List getPagedQuestions(String questionTypes, String collectionUids, Long learningDesignId, + int page, int size, String sortBy, String sortOrder, String searchString) { + return (List) getPagedQuestions(questionTypes, collectionUids, learningDesignId, page, size, sortBy, + sortOrder, searchString, false); + } + + @SuppressWarnings("unchecked") + @Override public List getPagedQuestions(String questionTypes, String collectionUids, int page, int size, String sortBy, String sortOrder, String searchString) { - return (List) getPagedQuestions(questionTypes, collectionUids, page, size, sortBy, sortOrder, + return (List) getPagedQuestions(questionTypes, collectionUids, null, page, size, sortBy, sortOrder, searchString, false); } @SuppressWarnings("unchecked") @Override public List getAllQuestionUids(String collectionUids, String sortBy, String sortOrder, String searchString) { - return (List) getPagedQuestions(null, collectionUids, 0, 100000, sortBy, sortOrder, searchString, - true); + return (List) getPagedQuestions(null, collectionUids, null, 0, 100000, sortBy, sortOrder, + searchString, true); } - private List getPagedQuestions(String questionTypes, String collectionUids, int page, int size, String sortBy, - String sortOrder, String searchString, boolean onlyUidsRequested) { + private List getPagedQuestions(String questionTypes, String collectionUids, Long learningDesignId, int page, + int size, String sortBy, String sortOrder, String searchString, boolean onlyUidsRequested) { StringBuilder queryBuilder = new StringBuilder("SELECT DISTINCT ").append(onlyUidsRequested ? "q.uid" : "q.*") .append(" FROM (SELECT question.* FROM lams_qb_question question"); @@ -268,8 +276,13 @@ } if (collectionUids != null) { queryBuilder.append( - " LEFT JOIN lams_qb_collection_question collection ON question.question_id = collection.qb_question_id"); + " JOIN lams_qb_collection_question collection ON question.question_id = collection.qb_question_id"); } + if (learningDesignId != null) { + queryBuilder.append( + " JOIN lams_qb_tool_question tool_question ON question.uid = tool_question.qb_question_uid") + .append(" JOIN lams_learning_activity activity USING (tool_content_id)"); + } queryBuilder.append(" WHERE"); if (questionTypes != null) { @@ -278,6 +291,9 @@ if (collectionUids != null) { queryBuilder.append(" collection.collection_uid in (:collectionUids) AND"); } + if (learningDesignId != null) { + queryBuilder.append(" activity.learning_design_id = :learningDesignId AND"); + } if (searchString == null) { // there has to be something after AND or even after just WHERE queryBuilder.append(" TRUE"); @@ -307,6 +323,9 @@ if (collectionUids != null) { query.setParameterList("collectionUids", collectionUids.split(",")); } + if (learningDesignId != null) { + query.setParameter("learningDesignId", learningDesignId); + } if (searchString != null) { // support for custom search from the toolbar searchString = searchString == null ? "" : searchString; Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java =================================================================== diff -u -r6f0f844e82f555e8dc0df6916226fac35a2a7c36 -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java (.../IQbService.java) (revision 6f0f844e82f555e8dc0df6916226fac35a2a7c36) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java (.../IQbService.java) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -77,6 +77,10 @@ QbStatsActivityDTO getActivityStats(Long activityId, Long qbQuestionUid, Collection correctOptionUids); + List getPagedQuestions(String questionTypes, String collectionUids, + Long onlyInSameLearningDesignAsToolContentID, int page, int size, String sortBy, String sortOrder, + String searchString); + List getPagedQuestions(String questionTypes, String collectionUids, int page, int size, String sortBy, String sortOrder, String searchString); Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java =================================================================== diff -u -rb074034d65483c22c90989799ad534947078bd98 -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision b074034d65483c22c90989799ad534947078bd98) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -142,9 +142,25 @@ } @Override + public List getPagedQuestions(String questionTypes, String collectionUids, + Long onlyInSameLearningDesignAsToolContentID, int page, int size, String sortBy, String sortOrder, + String searchString) { + Long learningDesignId = null; + if (onlyInSameLearningDesignAsToolContentID != null) { + List toolActivities = qbDAO.findByProperty(ToolActivity.class, "toolContentId", + onlyInSameLearningDesignAsToolContentID); + if (!toolActivities.isEmpty()) { + learningDesignId = toolActivities.get(0).getLearningDesign().getLearningDesignId(); + } + } + return qbDAO.getPagedQuestions(questionTypes, collectionUids, learningDesignId, page, size, sortBy, sortOrder, + searchString); + } + + @Override public List getPagedQuestions(String questionTypes, String collectionUids, int page, int size, String sortBy, String sortOrder, String searchString) { - return qbDAO.getPagedQuestions(questionTypes, collectionUids, page, size, sortBy, sortOrder, searchString); + return getPagedQuestions(questionTypes, collectionUids, null, page, size, sortBy, sortOrder, searchString); } @Override Index: lams_tool_assessment/web/pages/authoring/basic.jsp =================================================================== diff -u -r24940cc694b5cab706055244b91904017b74ad54 -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_tool_assessment/web/pages/authoring/basic.jsp (.../basic.jsp) (revision 24940cc694b5cab706055244b91904017b74ad54) +++ lams_tool_assessment/web/pages/authoring/basic.jsp (.../basic.jsp) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -56,7 +56,7 @@ //load question bank div $('#question-bank-collapse').on('show.bs.collapse', function () { $('#question-bank-collapse.contains-nothing').load( - "/searchQB/start.do", + "/searchQB/start.do?toolContentID=${sessionMap.toolContentID}", { returnUrl: "?sessionMapID=${sessionMapID}", toolContentId: ${sessionMap.toolContentID} Index: lams_tool_lamc/web/authoring/BasicContent.jsp =================================================================== diff -u -rc6f5e5e1aeb31463657f9fe739fc889d2d7e196d -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_tool_lamc/web/authoring/BasicContent.jsp (.../BasicContent.jsp) (revision c6f5e5e1aeb31463657f9fe739fc889d2d7e196d) +++ lams_tool_lamc/web/authoring/BasicContent.jsp (.../BasicContent.jsp) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -19,7 +19,7 @@ //question bank div $('#question-bank-collapse').on('show.bs.collapse', function () { $('#question-bank-collapse.contains-nothing').load( - "/searchQB/start.do", + "/searchQB/start.do?toolContentID=${sessionMap.toolContentID}", { returnUrl: "?sessionMapId=${sessionMapId}", toolContentId: ${sessionMap.toolContentID} Index: lams_tool_laqa/web/authoring/BasicContent.jsp =================================================================== diff -u -rb19b1766bda6ae9634e07b9046948df7d2d2caca -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_tool_laqa/web/authoring/BasicContent.jsp (.../BasicContent.jsp) (revision b19b1766bda6ae9634e07b9046948df7d2d2caca) +++ lams_tool_laqa/web/authoring/BasicContent.jsp (.../BasicContent.jsp) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -16,7 +16,7 @@ //question bank div $('#question-bank-collapse').on('show.bs.collapse', function () { $('#question-bank-collapse.contains-nothing').load( - "/searchQB/start.do", + "/searchQB/start.do?toolContentID=${sessionMap.toolContentID}", { returnUrl: "?sessionMapID=${authoringForm.sessionMapID}", toolContentId: ${sessionMap.toolContentID} Index: lams_tool_scratchie/web/pages/authoring/basic.jsp =================================================================== diff -u -r18be7421230bdff4abe7dded93fd27c4feadf869 -rd578cfde655760533b6ede422e7cf675a8c4ca6d --- lams_tool_scratchie/web/pages/authoring/basic.jsp (.../basic.jsp) (revision 18be7421230bdff4abe7dded93fd27c4feadf869) +++ lams_tool_scratchie/web/pages/authoring/basic.jsp (.../basic.jsp) (revision d578cfde655760533b6ede422e7cf675a8c4ca6d) @@ -12,7 +12,7 @@ //question bank div $('#question-bank-collapse').on('show.bs.collapse', function () { $('#question-bank-collapse.contains-nothing').load( - "/searchQB/start.do", + "/searchQB/start.do?toolContentID=${sessionMap.toolContentID}", { returnUrl: "?sessionMapID=${sessionMapID}", toolContentId: ${sessionMap.toolContentID}