Index: lams_tool_survey/conf/language/ApplicationResources.properties =================================================================== diff -u -re1a0b4e8328530b90021f52f9d652db77bf44657 -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision e1a0b4e8328530b90021f52f9d652db77bf44657) +++ lams_tool_survey/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -137,8 +137,6 @@ label.up =Move Up label.down =Move down - -#======= End labels: Exported 141 labels for en AU ===== label.monitoring.heading.access=Learners list label.authoring.advanced.reflectOnActivity=Reflect on survey error.reflection.emtpy=Please input reflection @@ -148,3 +146,16 @@ monitoring.user.reflection=Refection page.title.monitoring.view.reflection=View Reflection button.close=Close + + + +label.open.response=Open response +piechart.title= Question {0} Pie Chart +barchart.title= Question {0} Column Chart +barchart.category.axis.label=Candidate Answer +barchart.value.axis.label=Percentage +message.view.pie.chart=View pie chart +message.view.bar.chart=View column chart +message.possible.answers=Possible answers +message.total.user.response=Total user response +message.learner.choose.answer = {0} percent leaners of the class have chosen this answer. \ No newline at end of file Index: lams_tool_survey/conf/xdoclet/struts-actions.xml =================================================================== diff -u -raf90466abe57cb9be572bfc519ac6902cb8166fa -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision af90466abe57cb9be572bfc519ac6902cb8166fa) +++ lams_tool_survey/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -228,20 +228,26 @@ parameter="summary" > - - + parameter="viewBarChart" > + - - + parameter="viewPieChart" > + - + + + + - + parameter="listuser" > + getSessionAnswer(Long sessionId,Long questionUid); } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/dao/hibernate/SurveyAnswerDAOHibernate.java =================================================================== diff -u -ra2c091a27056e7b41531ca140012603bf027d5b8 -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/dao/hibernate/SurveyAnswerDAOHibernate.java (.../SurveyAnswerDAOHibernate.java) (revision a2c091a27056e7b41531ca140012603bf027d5b8) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/dao/hibernate/SurveyAnswerDAOHibernate.java (.../SurveyAnswerDAOHibernate.java) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -6,14 +6,20 @@ import org.lamsfoundation.lams.tool.survey.model.SurveyAnswer; public class SurveyAnswerDAOHibernate extends BaseDAOHibernate implements SurveyAnswerDAO { -private static final String GET_LEARNER_ANSWER = "from "+SurveyAnswer.class.getName()+" as a where a.surveyQuestion.uid=? and a.user.uid=?"; + private static final String GET_LEARNER_ANSWER = "from "+SurveyAnswer.class.getName()+" as a where a.surveyQuestion.uid=? and a.user.uid=?"; + private static final String GET_SESSION_ANSWER = "from "+SurveyAnswer.class.getName()+" as a " + + " where a.surveyQuestion.uid=? and a.user.session.sessionId=?"; - public SurveyAnswer getAnswer(Long QuestionUid, Long userUid) { - List list = getHibernateTemplate().find(GET_LEARNER_ANSWER,new Object[]{QuestionUid,userUid}); + public SurveyAnswer getAnswer(Long questionUid, Long userUid) { + List list = getHibernateTemplate().find(GET_LEARNER_ANSWER,new Object[]{questionUid,userUid}); if(list.size() > 0) return (SurveyAnswer) list.get(0); else return null; } + public List getSessionAnswer(Long sessionId, Long questionUid) { + return getHibernateTemplate().find(GET_SESSION_ANSWER,new Object[]{sessionId,questionUid}); + } + } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyAnswer.java =================================================================== diff -u -ra2c091a27056e7b41531ca140012603bf027d5b8 -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyAnswer.java (.../SurveyAnswer.java) (revision a2c091a27056e7b41531ca140012603bf027d5b8) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyAnswer.java (.../SurveyAnswer.java) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -47,7 +47,7 @@ //************************************************ // DTO fields //************************************************ - //it is list of optionl UIDs + //it is list of optional UIDs. Uid is long type, but here just save them by String format private String[] choices; /** Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyOption.java =================================================================== diff -u -r0b9b61d67c2dcf6f83c513325afca117cb1967f2 -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyOption.java (.../SurveyOption.java) (revision 0b9b61d67c2dcf6f83c513325afca117cb1967f2) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyOption.java (.../SurveyOption.java) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -38,7 +38,13 @@ private Long uid; private int sequenceId; private String description; - + + //**************************************************** + // DTO fields: percentage of response for this option. For monitoring summary usage. + private double reponse; + private String reponseFormatStr; + private int responseCount; + public Object clone(){ Object obj = null; try { @@ -86,5 +92,23 @@ public void setSequenceId(int sequenceId) { this.sequenceId = sequenceId; } + public double getReponse() { + return reponse; + } + public void setReponse(double reponse) { + this.reponse = reponse; + } + public int getResponseCount() { + return responseCount; + } + public void setResponseCount(int responseCount) { + this.responseCount = responseCount; + } + public String getReponseFormatStr() { + return reponseFormatStr; + } + public void setReponseFormatStr(String reponseFormatStr) { + this.reponseFormatStr = reponseFormatStr; + } } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyQuestion.java =================================================================== diff -u -ra2c091a27056e7b41531ca140012603bf027d5b8 -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyQuestion.java (.../SurveyQuestion.java) (revision a2c091a27056e7b41531ca140012603bf027d5b8) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/model/SurveyQuestion.java (.../SurveyQuestion.java) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -27,6 +27,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import java.util.SortedMap; import org.apache.log4j.Logger; @@ -63,6 +64,10 @@ private String shortTitle; //this is DTO field. For answer, which is user and session level. For question, which is content level. private SurveyAnswer answer; + //Open text entry response percentage if this question has open text entry. + private double openResponse; + private String openResponseFormatStr; + private int openResponseCount; public Object clone(){ SurveyQuestion obj = null; @@ -228,6 +233,24 @@ public void setAnswer(SurveyAnswer answer) { this.answer = answer; } + public double getOpenResponse() { + return openResponse; + } + public void setOpenResponse(double openResponse) { + this.openResponse = openResponse; + } + public int getOpenResponseCount() { + return openResponseCount; + } + public void setOpenResponseCount(int openResponseCount) { + this.openResponseCount = openResponseCount; + } + public String getOpenResponseFormatStr() { + return openResponseFormatStr; + } + public void setOpenResponseFormatStr(String openResponseFormatStr) { + this.openResponseFormatStr = openResponseFormatStr; + } } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java =================================================================== diff -u -ra2c091a27056e7b41531ca140012603bf027d5b8 -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java (.../ISurveyService.java) (revision a2c091a27056e7b41531ca140012603bf027d5b8) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/ISurveyService.java (.../ISurveyService.java) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedMap; import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.notebook.model.NotebookEntry; @@ -105,9 +106,25 @@ * @param uid */ void deleteQuestion(Long uid); - + /** + * Get question and its answer list by session and user. + * @param sessionId + * @param userUid + * @return + */ List getQuestionAnswer(Long sessionId, Long userUid); - + /** + * Get question's answer with response percentage infromation. + * @param sessionId + * @param questionUid + * @return + */ + SurveyQuestion getQuestionResponse(Long sessionId, Long questionUid); + + /** + * Commit answers for a group of question together. + * @param answerList + */ void updateAnswerList(List answerList); //****************************************************************************************** //********** user methods ************* @@ -170,7 +187,17 @@ */ String finishToolSession(Long toolSessionId, Long userId) throws SurveyApplicationException; + + //****************************************************************************************** + // Monitoring summary /statistic methods + //****************************************************************************************** + /** + * Return a map which sorted by SurveySession and list of questions for this session. + */ + + SortedMap> getSummary(Long contentId); + //****************************************************************************************** // NOTEBOOK Functions //****************************************************************************************** @@ -201,6 +228,7 @@ */ Map> getReflectList(Long contentId); + } Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java =================================================================== diff -u -ra2c091a27056e7b41531ca140012603bf027d5b8 -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java (.../SurveyServiceImpl.java) (revision a2c091a27056e7b41531ca140012603bf027d5b8) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/service/SurveyServiceImpl.java (.../SurveyServiceImpl.java) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -25,6 +25,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Comparator; import java.util.Date; import java.util.HashMap; @@ -34,6 +35,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedMap; +import java.util.TreeMap; import java.util.TreeSet; import java.util.Vector; @@ -79,6 +82,7 @@ import org.lamsfoundation.lams.tool.survey.model.SurveyQuestion; import org.lamsfoundation.lams.tool.survey.model.SurveySession; import org.lamsfoundation.lams.tool.survey.model.SurveyUser; +import org.lamsfoundation.lams.tool.survey.util.SurveySessionComparator; import org.lamsfoundation.lams.tool.survey.util.SurveyToolContentHandler; import org.lamsfoundation.lams.tool.survey.util.SurveyWebUtils; import org.lamsfoundation.lams.usermanagement.User; @@ -323,7 +327,87 @@ } } + public SurveyQuestion getQuestionResponse(Long sessionId, Long questionUid){ + SurveyQuestion question = surveyQuestionDao.getByUid(questionUid); + + + if(question.getType() == SurveyConstants.QUESTION_TYPE_TEXT_ENTRY) + return question; + + //get question all answer from this session + List answsers = surveyAnswerDao.getSessionAnswer(sessionId, questionUid); + //create a map to hold Option UID and sequenceID(start from 0); + Map optMap = new HashMap(); + Set options = question.getOptions(); + int idx=0; + for (SurveyOption option : options) { + optMap.put(option.getUid().toString(),idx); + idx++; + } + + //initial a array to hold how many time chose has been done for a option or open text. + int optSize = options.size(); + if(question.isAppendText()) + optSize++; + + int[] choose = new int[optSize]; + Arrays.fill(choose, 0); + + //sum up all option and open text (if has) have been selected count list + int answerSum = 1; + if(answsers != null){ + for (SurveyAnswer answer : answsers) { + String[] choseOpt = SurveyWebUtils.getChoiceList(answer.getAnswerChoices()); + for (String optUid : choseOpt) { + if(optMap.containsKey(optUid)) + choose[optMap.get(optUid)]++; + } + if(question.isAppendText() && !StringUtils.isBlank(answer.getAnswerText())) + choose[optSize-1]++; + + answerSum ++; + } + } + //caculate the percentage of answer response + idx=0; + for (SurveyOption option : options) { + option.setReponse((double)choose[idx]/(double)answerSum); + option.setReponseFormatStr(new Integer((int) option.getReponse()).toString()); + option.setResponseCount(choose[idx]); + idx++; + } + if(question.isAppendText()){ + question.setOpenResponse((double)choose[idx]/(double)answerSum); + question.setOpenResponseFormatStr(new Integer((int) question.getOpenResponse()).toString()); + question.setOpenResponseCount(choose[idx]); + } + return question; + + } + + public SortedMap> getSummary(Long toolContentId) { + + SortedMap> summary = + new TreeMap>(new SurveySessionComparator()); + + Survey survey = surveyDao.getByContentId(toolContentId); + //get all question under this survey + Set questionList = survey.getQuestions(); + List sessionList = surveySessionDao.getByContentId(toolContentId); + //iterator all sessions under this survey content, and get all questions and its answers. + for (SurveySession session : sessionList) { + List responseList = new ArrayList(); + for (SurveyQuestion question : questionList) { + SurveyQuestion response = getQuestionResponse(session.getSessionId(), question.getUid()); + responseList.add(response); + } + summary.put(session, responseList); + } + + + return summary; + } //***************************************************************************** // private methods //***************************************************************************** Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveySessionComparator.java =================================================================== diff -u --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveySessionComparator.java (revision 0) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/util/SurveySessionComparator.java (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -0,0 +1,22 @@ +package org.lamsfoundation.lams.tool.survey.util; + +import java.util.Comparator; + +import org.lamsfoundation.lams.tool.survey.model.SurveySession; +/** + * + * @author steven + * + */ +public class SurveySessionComparator implements Comparator { + + public int compare(SurveySession o1, SurveySession o2) { + if(o1 != null && o2 != null){ + return o1.getSessionName().compareTo(o2.getSessionName()); + }else if(o1 != null) + return 1; + else + return -1; + } + +} Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/ChartAction.java =================================================================== diff -u --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/ChartAction.java (revision 0) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/ChartAction.java (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -0,0 +1,165 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ +package org.lamsfoundation.lams.tool.survey.web.action; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.Iterator; +import java.util.Map; +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.apache.struts.action.Action; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.util.MessageResources; +import org.jfree.chart.ChartFactory; +import org.jfree.chart.ChartUtilities; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.plot.PlotOrientation; +import org.jfree.data.category.DefaultCategoryDataset; +import org.jfree.data.general.DefaultPieDataset; +import static org.lamsfoundation.lams.tool.survey.SurveyConstants.*; + +import org.lamsfoundation.lams.tool.survey.SurveyConstants; +import org.lamsfoundation.lams.tool.survey.model.SurveyOption; +import org.lamsfoundation.lams.tool.survey.model.SurveyQuestion; +import org.lamsfoundation.lams.tool.survey.service.ISurveyService; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.util.AttributeNames; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; +/** + * Display chart image by request. + * + * @author Steve.Ni + * + * @version $Revision$ + */ +public class ChartAction extends Action { + private static final String OPTION_SHORT_HEADER = "a"; + + static Logger logger = Logger.getLogger(ChartAction.class.getName()); + + private MessageResources resource; + public ActionForward execute(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + + OutputStream out= response.getOutputStream(); + + String type= WebUtil.readStrParam(request, CHART_TYPE); + Long sessionId= WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); + Long questionUid= WebUtil.readLongParam(request, ATTR_QUESTION_UID); + + ISurveyService service = getSurveyService(); + + SurveyQuestion question =service.getQuestionResponse(sessionId,questionUid); + if(question.getType() == QUESTION_TYPE_TEXT_ENTRY){ + logger.error("Error question type : Text entry can not generate chart."); + return mapping.findForward(ERROR); + } + + //Try to create chart + JFreeChart chart=null; + if (type.equals("pie")){ + chart = createPieChart (question); + }else if (type.equals("bar")){ + chart = createBarChart (question); + } + + resource = getResources(request); + //send chart to response output stream + if (chart != null){ + response.setContentType("image/png"); + ChartUtilities.writeChartAsPNG(out, chart, 400, 300); + return null; + }else{ + return mapping.findForward(ERROR); + } + + } + + + public JFreeChart createPieChart(SurveyQuestion question){ + + DefaultPieDataset data= new DefaultPieDataset(); + + Set options = question.getOptions(); + int optIdx = 1; + for (SurveyOption option : options) { + data.setValue(OPTION_SHORT_HEADER + optIdx, (Number) option.getReponse()); + optIdx++; + } + + if(question.isAppendText()) + data.setValue(resource.getMessage(MSG_OPEN_RESPONSE), (Number)question.getOpenResponse()); + + + JFreeChart chart=null; + chart=ChartFactory.createPieChart3D(resource.getMessage(MSG_PIECHART_TITLE,question.getSequenceId()) , data, true, true, false); + + return chart; + } + + public JFreeChart createBarChart(SurveyQuestion question){ + + DefaultCategoryDataset data= new DefaultCategoryDataset(); + + Set options = question.getOptions(); + int optIdx = 1; + for (SurveyOption option : options) { + data.setValue((Number)option.getReponse(), OPTION_SHORT_HEADER + optIdx, OPTION_SHORT_HEADER + optIdx); + optIdx++; + } + + if(question.isAppendText()) + data.setValue((Number)question.getOpenResponse(), resource.getMessage(MSG_OPEN_RESPONSE), resource.getMessage(MSG_OPEN_RESPONSE)); + + JFreeChart chart=null; + + + chart=ChartFactory.createBarChart3D(resource.getMessage(MSG_BARCHART_TITLE,question.getSequenceId()), + resource.getMessage(MSG_BARCHART_CATEGORY_AXIS_LABEL), + resource.getMessage(MSG_BARCHART_VALUE_AXIS_LABEL), + data, PlotOrientation.VERTICAL, true, true, false); + return chart; + } + //************************************************************************************* + // Private method + //************************************************************************************* + /** + * Return SurveyService bean. + */ + private ISurveyService getSurveyService() { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + return (ISurveyService) wac.getBean(SURVEY_SERVICE); + } + +} Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java =================================================================== diff -u -r5fa6d8af9d03be39b6f5f4c33b75a853af5f6064 -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 5fa6d8af9d03be39b6f5f4c33b75a853af5f6064) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -25,8 +25,10 @@ package org.lamsfoundation.lams.tool.survey.web.action; import java.io.IOException; +import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -41,9 +43,12 @@ import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.survey.SurveyConstants; import org.lamsfoundation.lams.tool.survey.dto.ReflectDTO; +import org.lamsfoundation.lams.tool.survey.model.Survey; +import org.lamsfoundation.lams.tool.survey.model.SurveyQuestion; import org.lamsfoundation.lams.tool.survey.model.SurveySession; import org.lamsfoundation.lams.tool.survey.model.SurveyUser; import org.lamsfoundation.lams.tool.survey.service.ISurveyService; +import org.lamsfoundation.lams.tool.survey.util.SurveyWebUtils; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; @@ -84,18 +89,16 @@ Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); ISurveyService service = getSurveyService(); -// List> groupList = service.getSummary(contentId); -// -// Survey survey = service.getSurveyByContentId(contentId); -// survey.toDTO(); -// + + SortedMap> summary = service.getSummary(contentId); + Survey survey = service.getSurveyByContentId(contentId); + Map >relectList = service.getReflectList(contentId); -// -// //cache into sessionMap -// sessionMap.put(SurveyConstants.ATTR_SUMMARY_LIST, groupList); -// sessionMap.put(SurveyConstants.PAGE_EDITABLE, new Boolean(SurveyWebUtils.isSurveyEditable(survey))); -// sessionMap.put(SurveyConstants.ATTR_RESOURCE, survey); -// sessionMap.put(SurveyConstants.ATTR_TOOL_CONTENT_ID, contentId); + //cache into sessionMap + sessionMap.put(SurveyConstants.ATTR_SUMMARY_LIST, summary); + sessionMap.put(SurveyConstants.PAGE_EDITABLE, new Boolean(SurveyWebUtils.isSurveyEditable(survey))); + sessionMap.put(SurveyConstants.ATTR_SURVEY, survey); + sessionMap.put(AttributeNames.PARAM_TOOL_CONTENT_ID, contentId); sessionMap.put(SurveyConstants.ATTR_REFLECT_LIST, relectList); return mapping.findForward(SurveyConstants.SUCCESS); Index: lams_tool_survey/web/includes/images/bar1.gif =================================================================== diff -u Binary files differ Index: lams_tool_survey/web/includes/images/bar2.gif =================================================================== diff -u Binary files differ Index: lams_tool_survey/web/includes/images/bar3.gif =================================================================== diff -u Binary files differ Index: lams_tool_survey/web/includes/images/bar4.gif =================================================================== diff -u Binary files differ Index: lams_tool_survey/web/includes/images/bar5.gif =================================================================== diff -u Binary files differ Index: lams_tool_survey/web/includes/images/columnchart.gif =================================================================== diff -u Binary files differ Index: lams_tool_survey/web/includes/images/piechart.gif =================================================================== diff -u Binary files differ Index: lams_tool_survey/web/includes/images/tick_red.gif =================================================================== diff -u Binary files differ Index: lams_tool_survey/web/pages/monitoring/charterror.jsp =================================================================== diff -u --- lams_tool_survey/web/pages/monitoring/charterror.jsp (revision 0) +++ lams_tool_survey/web/pages/monitoring/charterror.jsp (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -0,0 +1,54 @@ + + + +<%@ include file="/common/taglibs.jsp"%> + + + <%@ include file="/common/header.jsp" %> + + +
+

+ +

+
+
+
+ + + + + + + + + + + + + + + + +
+ + + + + +
+ ${user.loginName} + + + + ${user.firstName},${user.lastName} +
+ Close +
+
+ +
+ + + Index: lams_tool_survey/web/pages/monitoring/piechart.jsp =================================================================== diff -u --- lams_tool_survey/web/pages/monitoring/piechart.jsp (revision 0) +++ lams_tool_survey/web/pages/monitoring/piechart.jsp (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -0,0 +1,36 @@ + + + +<%@ include file="/common/taglibs.jsp"%> + + + <%@ include file="/common/header.jsp" %> + + +
+

+ +

+
+
+
+ + + + + + +
+ + + + + +
+
+ +
+ + + Index: lams_tool_survey/web/pages/monitoring/summary.jsp =================================================================== diff -u -r0020cbe23ed34775811ceab0779d065243444dcb -racfcd68cefd9d696f1b8ced611f7bedb30750024 --- lams_tool_survey/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 0020cbe23ed34775811ceab0779d065243444dcb) +++ lams_tool_survey/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision acfcd68cefd9d696f1b8ced611f7bedb30750024) @@ -11,102 +11,88 @@ - + + + + + + + + + <%-- display group name on first row--%> - - - - - - - - <%-- End group title display --%> - + + + + + + + + + + - + - - + + + - - - - - <%-- Reflection list --%> - +
+
+ +
+
- ${item.sessionName} + + ${surveySession.sessionName}
- - - - - - - - - -
${question.shortTitle} + toolSessionID${surveySession.sessionId}&questionUid=${question.uid}')"> + + + toolSessionID${surveySession.sessionId}&questionUid=${question.uid}')"> + + +
-
- -
+
${option.description} + + + ${option.response} + + + + ${status.index % 5} + + + ${option.responseCount} (${option.responseFormatStr}%)
- - - - - - - - - - - - - - + + + ${question.openResponseFormatStr} + + + + ${(optSize + 1) % 5} + + + ${question.openResponseCount} (${question.openResponseFormatStr}%) - ${item.itemTitle} - - - ${item.username} - - - - - - - - ${item.viewNumber} - - - 0 - - - - - - - - - - - -