Index: lams_central/src/java/org/lamsfoundation/lams/web/qb/QbCollectionController.java =================================================================== diff -u -r294ee976c4b8b9da039a5374a2003fb28e8b1c2c -rba4cb0681d080596444ca44c644a8ea0fdd8e743 --- lams_central/src/java/org/lamsfoundation/lams/web/qb/QbCollectionController.java (.../QbCollectionController.java) (revision 294ee976c4b8b9da039a5374a2003fb28e8b1c2c) +++ lams_central/src/java/org/lamsfoundation/lams/web/qb/QbCollectionController.java (.../QbCollectionController.java) (revision ba4cb0681d080596444ca44c644a8ea0fdd8e743) @@ -88,7 +88,8 @@ @RequestMapping("/getCollectionGridData") @ResponseBody - public String getCollectionGridData(@RequestParam long collectionUid, HttpServletRequest request, + public String getCollectionGridData(@RequestParam long collectionUid, + @RequestParam(defaultValue = "false") boolean showUsage, HttpServletRequest request, HttpServletResponse response) { response.setContentType("text/xml; charset=utf-8"); @@ -104,10 +105,10 @@ sortOrder, searchString); int total = qbService.getCountCollectionQuestions(collectionUid, searchString); int maxPages = total / rowLimit + 1; - return QbCollectionController.toGridXML(questions, page, maxPages); + return toGridXML(questions, page, maxPages, showUsage); } - private static String toGridXML(List questions, int page, int maxPages) { + private String toGridXML(List questions, int page, int maxPages, boolean showUsage) { try { Document document = WebUtil.getDocument(); @@ -132,7 +133,9 @@ rowElement.setAttribute(CommonConstants.ELEMENT_ID, uid); // the last cell is for creating stats button - String[] data = { uid, WebUtil.removeHTMLtags(question.getName()).trim(), uid }; + String usage = showUsage ? String.valueOf(qbService.getCountQuestionActivities(question.getUid())) + : null; + String[] data = { uid, WebUtil.removeHTMLtags(question.getName()).trim(), usage, uid }; for (String cell : data) { Element cellElement = document.createElement(CommonConstants.ELEMENT_CELL); Index: lams_central/web/qb/collection.jsp =================================================================== diff -u -r01936221b19e94859bef8329e3ac12016166294c -rba4cb0681d080596444ca44c644a8ea0fdd8e743 --- lams_central/web/qb/collection.jsp (.../collection.jsp) (revision 01936221b19e94859bef8329e3ac12016166294c) +++ lams_central/web/qb/collection.jsp (.../collection.jsp) (revision ba4cb0681d080596444ca44c644a8ea0fdd8e743) @@ -54,7 +54,7 @@ // data comes from data-collection-* attributes of tag which is a base for the grid caption: collectionGrid.data('collectionTitle'), datatype: "xml", - url: "qb/collection/getCollectionGridData.do?collectionUid=" + collectionGrid.data('collectionUid'), + url: "qb/collection/getCollectionGridData.do?showUsage=true&collectionUid=" + collectionGrid.data('collectionUid'), height: "100%", autowidth:true, shrinkToFit: true, @@ -68,11 +68,13 @@ colNames:[ "ID", "Name", + "Used in
lessons", "Stats" ], colModel:[ {name:'id', index:'uid', sortable:true, width: 10}, {name:'name', index:'name', sortable:true, search:true, autoencode:true}, + {name: 'usage', index: 'usage', sortable:false, width: 10, align: "center"}, // formatter gets just question uid and creates a button {name:'stats', index:'stats', classes: "stats-cell", sortable:false, width: 10, align: "center", formatter: statsLinkFormatter} ], Index: lams_central/web/qb/collectionList.jsp =================================================================== diff -u -r01936221b19e94859bef8329e3ac12016166294c -rba4cb0681d080596444ca44c644a8ea0fdd8e743 --- lams_central/web/qb/collectionList.jsp (.../collectionList.jsp) (revision 01936221b19e94859bef8329e3ac12016166294c) +++ lams_central/web/qb/collectionList.jsp (.../collectionList.jsp) (revision ba4cb0681d080596444ca44c644a8ea0fdd8e743) @@ -56,7 +56,7 @@ guiStyle: "bootstrap", iconSet: 'fontAwesome', // data comes from data-collection-* attributes of
tag which is a base for the grid - caption: collectionGrid.data('collectionName'), + caption: collectionGrid.data('collectionTitle'), datatype: "xml", url: "qb/collection/getCollectionGridData.do?collectionUid=" + collectionGrid.data('collectionUid'), height: "100%", @@ -72,11 +72,13 @@ colNames:[ "ID", "Name", + "Used in # of lessons", "Stats" ], colModel:[ {name:'id', index:'uid', sortable:true, width: 10}, {name:'name', index:'name', sortable:true, search:true, autoencode:true}, + {name: 'usage', index: 'usage', hidden: true}, // formatter gets just question uid and creates a button {name:'stats', index:'stats', classes: "stats-cell", sortable:false, width: 10, align: "center", formatter: statsLinkFormatter} ], Index: lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java =================================================================== diff -u -r70353119b16530e4ef2f9c82bdaba7ca825feeb0 -rba4cb0681d080596444ca44c644a8ea0fdd8e743 --- lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java (.../IQbDAO.java) (revision 70353119b16530e4ef2f9c82bdaba7ca825feeb0) +++ lams_common/src/java/org/lamsfoundation/lams/qb/dao/IQbDAO.java (.../IQbDAO.java) (revision ba4cb0681d080596444ca44c644a8ea0fdd8e743) @@ -32,6 +32,8 @@ List getQuestionActivities(long qbQuestionUid); + int getCountQuestionActivities(long qbQuestionUid); + List getQuestionVersions(long qbQuestionUid); Map getAnswerStatsForQbQuestion(long qbQuestionUid); Index: lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java =================================================================== diff -u -r70353119b16530e4ef2f9c82bdaba7ca825feeb0 -rba4cb0681d080596444ca44c644a8ea0fdd8e743 --- lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java (.../QbDAO.java) (revision 70353119b16530e4ef2f9c82bdaba7ca825feeb0) +++ lams_common/src/java/org/lamsfoundation/lams/qb/dao/hibernate/QbDAO.java (.../QbDAO.java) (revision ba4cb0681d080596444ca44c644a8ea0fdd8e743) @@ -71,7 +71,7 @@ @Override public QbQuestion getQbQuestionByUid(Long qbQuestionUid) { - return (QbQuestion) this.find(QbQuestion.class, qbQuestionUid); + return this.find(QbQuestion.class, qbQuestionUid); } @SuppressWarnings("unchecked") @@ -108,6 +108,12 @@ } @Override + public int getCountQuestionActivities(long qbQuestionUid) { + return ((Long) getSession().createQuery(FIND_QUESTION_ACTIVITIES.replace("SELECT a", "SELECT COUNT(a)")) + .setParameter("qbQuestionUid", qbQuestionUid).getSingleResult()).intValue(); + } + + @Override @SuppressWarnings("unchecked") public List getQuestionVersions(long qbQuestionUid) { return this.getSession().createQuery(FIND_QUESTION_VERSIONS).setParameter("qbQuestionUid", qbQuestionUid) Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java =================================================================== diff -u -r70353119b16530e4ef2f9c82bdaba7ca825feeb0 -rba4cb0681d080596444ca44c644a8ea0fdd8e743 --- lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java (.../IQbService.java) (revision 70353119b16530e4ef2f9c82bdaba7ca825feeb0) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java (.../IQbService.java) (revision ba4cb0681d080596444ca44c644a8ea0fdd8e743) @@ -94,4 +94,6 @@ boolean removeQuestionPossible(long qbQuestionUid); QbCollection getCollection(long collectionUid); + + int getCountQuestionActivities(long qbQuestionUid); } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java =================================================================== diff -u -r70353119b16530e4ef2f9c82bdaba7ca825feeb0 -rba4cb0681d080596444ca44c644a8ea0fdd8e743 --- lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision 70353119b16530e4ef2f9c82bdaba7ca825feeb0) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision ba4cb0681d080596444ca44c644a8ea0fdd8e743) @@ -457,6 +457,10 @@ return qbDAO.find(QbCollection.class, collectionUid); } + public int getCountQuestionActivities(long qbQuestionUid) { + return qbDAO.getCountQuestionActivities(qbQuestionUid); + } + public void setQbDAO(IQbDAO qbDAO) { this.qbDAO = qbDAO; }