Index: lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -49,6 +49,8 @@ label.authoring.basic.option.grade.none =None label.authoring.basic.option.feedback =Feedback label.authoring.basic.option.accepted.error =Accepted error +label.authoring.basic.unit.unit =Unit +label.authoring.basic.unit.multiplier =Multiplier label.authoring.advanced.reflectOnActivity =Add Notebook at end of Shared Resources with the following instructions: label.authoring.basic.resource.title.input =Title label.authoring.basic.resource.url.input =URL @@ -88,9 +90,11 @@ label.authoring.true.false.feedback.on.false =Feedback for the reponse 'False'. label.authoring.numerical.question =Numerical question label.authoring.numerical.answers =Answers -label.authoring.numerical.error.answer =You should provide at least two possible answer. +label.authoring.numerical.units =Units +label.authoring.numerical.error.answer =You should provide at least one possible answer. label.authoring.numerical.add.answer =Add Blank Answer label.authoring.numerical.add.numerical =Add Numerical Question +label.authoring.numerical.add.unit =Add Blank Unit label.authoring.essay.add.essay =Add Essay label.authoring.online.file =Upload online file @@ -184,6 +188,8 @@ error.inputFileTooLarge =Input File size is too large! error.uploading =error uploading error.title.empty =Title can not be blank +error.form.validation.error =You have 1 error in a form. It has been highlighted +error.form.validation.errors =You have {0} errors in a form. They have been highlighted message.msg.maxFileSize =Max 250K label.open =Open label.delete =Delete Index: lams_tool_assessment/conf/xdoclet/struts-actions.xml =================================================================== diff -u -rc437e028a3802f01fa80d40d99813c06944d0e9a -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision c437e028a3802f01fa80d40d99813c06944d0e9a) +++ lams_tool_assessment/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -147,6 +147,14 @@ parameter="downOption"> + + + + + + Index: lams_tool_assessment/db/sql/create_lams_tool_assessment.sql =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/db/sql/create_lams_tool_assessment.sql (.../create_lams_tool_assessment.sql) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/db/sql/create_lams_tool_assessment.sql (.../create_lams_tool_assessment.sql) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -88,6 +88,14 @@ feedback text, primary key (uid) )type=innodb; +create table tl_laasse10_assessment_unit ( + uid bigint not null unique auto_increment, + question_uid bigint, + sequence_id integer, + multiplier integer, + unit varchar(255), + primary key (uid) +)type=innodb; create table tl_laasse10_question_log ( uid bigint not null auto_increment, access_date datetime, @@ -125,6 +133,7 @@ alter table tl_laasse10_assessment_question add index FK_NEW_1720029621_F52D1F93EC0D3147 (session_uid), add constraint FK_NEW_1720029621_F52D1F93EC0D3147 foreign key (session_uid) references tl_laasse10_session (uid); alter table tl_laasse10_answer_options add index FK_tl_laasse10_answer_options_1 (question_uid), add constraint FK_tl_laasse10_answer_options_1 foreign key (question_uid) references tl_laasse10_assessment_question (uid); alter table tl_laasse10_assessment_overall_feedback add index FK_tl_laasse10_assessment_overall_feedback_1 (assessment_uid), add constraint FK_tl_laasse10_assessment_overall_feedback_1 foreign key (assessment_uid) references tl_laasse10_assessment (uid); +alter table tl_laasse10_assessment_unit add index FK_tl_laasse10_assessment_unit_1 (question_uid), add constraint FK_tl_laasse10_assessment_unit_1 foreign key (question_uid) references tl_laasse10_assessment_question (uid); alter table tl_laasse10_question_log add index FK_NEW_1720029621_693580A438BF8DFE (assessment_question_uid), add constraint FK_NEW_1720029621_693580A438BF8DFE foreign key (assessment_question_uid) references tl_laasse10_assessment_question (uid); alter table tl_laasse10_question_log add index FK_NEW_1720029621_693580A441F9365D (user_uid), add constraint FK_NEW_1720029621_693580A441F9365D foreign key (user_uid) references tl_laasse10_user (uid); alter table tl_laasse10_session add index FK_NEW_1720029621_24AA78C530E79035 (assessment_uid), add constraint FK_NEW_1720029621_24AA78C530E79035 foreign key (assessment_uid) references tl_laasse10_assessment (uid); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -34,6 +34,8 @@ public static final int INITIAL_OPTIONS_NUMBER = 3; + public static final int INITIAL_UNITS_NUMBER = 2; + public static final int INITIAL_OVERALL_FEEDBACK_NUMBER = 3; // question type; @@ -110,6 +112,16 @@ public static final String ATTR_DELETED_QUESTION_ATTACHMENT_LIST = "deletedQuestionAttachmmentList"; + public static final String ATTR_UNIT_LIST = "unitList"; + + public static final String ATTR_UNIT_COUNT = "unitCount"; + + public static final String ATTR_UNIT_UNIT_PREFIX = "unitUnit"; + + public static final String ATTR_UNIT_MULTIPLIER_PREFIX = "unitMultiplier"; + + public static final String ATTR_UNIT_SEQUENCE_ID_PREFIX = "unitSequenceId"; + public static final String ATTR_OVERALL_FEEDBACK_LIST = "overallFeedbackList"; public static final String ATTR_OVERALL_FEEDBACK_COUNT = "overallFeedbackCount"; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml =================================================================== diff -u -rc56857991e269aa7f5bd250a05b52c767a9957ad -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision c56857991e269aa7f5bd250a05b52c767a9957ad) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -24,6 +24,7 @@ org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.hbm.xml org/lamsfoundation/lams/tool/assessment/model/AssessmentAnswerOption.hbm.xml org/lamsfoundation/lams/tool/assessment/model/AssessmentOverallFeedback.hbm.xml + org/lamsfoundation/lams/tool/assessment/model/AssessmentUnit.hbm.xml org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestionVisitLog.hbm.xml org/lamsfoundation/lams/tool/assessment/model/AssessmentAttachment.hbm.xml org/lamsfoundation/lams/tool/assessment/model/AssessmentSession.hbm.xml Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.hbm.xml =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.hbm.xml (.../AssessmentQuestion.hbm.xml) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.hbm.xml (.../AssessmentQuestion.hbm.xml) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -199,6 +199,25 @@ + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUnit.java =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUnit.java (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUnit.java (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -0,0 +1,123 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.assessment.model; + +import org.apache.log4j.Logger; + +/** + * AssessmentUnit + * + * @author Andrey Balan + * + * @hibernate.class table="tl_laasse10_assessment_unit" + */ +public class AssessmentUnit implements Cloneable { + private static final Logger log = Logger.getLogger(AssessmentUnit.class); + + private Long uid; + + private Integer sequenceId; + + private String unit; + + private float multiplier; + + // ********************************************************** + // Get/Set methods + // ********************************************************** + + /** + * @hibernate.id generator-class="native" column="uid" + * @return Returns the answer ID. + */ + public Long getUid() { + return uid; + } + + private void setUid(Long uuid) { + uid = uuid; + } + + /** + * Returns image sequence number. + * + * @return image sequence number + * + * @hibernate.property column="sequence_id" + */ + public int getSequenceId() { + return sequenceId; + } + + /** + * Sets image sequence number. + * + * @param sequenceId + * image sequence number + */ + public void setSequenceId(int sequenceId) { + this.sequenceId = sequenceId; + } + + /** + * @hibernate.property column="multiplier" + * + * @return Returns multiplier. + */ + public float getMultiplier() { + return multiplier; + } + + public void setMultiplier(float multiplier) { + this.multiplier = multiplier; + } + + /** + * @hibernate.property column="unit" + * + * @return Returns unit. + */ + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + @Override + public Object clone() { + AssessmentUnit obj = null; + try { + obj = (AssessmentUnit) super.clone(); + obj.setUid(null); + } catch (CloneNotSupportedException e) { + AssessmentUnit.log.error("When clone " + AssessmentUnit.class + " failed"); + } + + return obj; + } +} + + \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentUnitComparator.java =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentUnitComparator.java (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentUnitComparator.java (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -0,0 +1,48 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.assessment.util; + +import java.util.Comparator; + +import org.lamsfoundation.lams.tool.assessment.model.AssessmentOverallFeedback; +import org.lamsfoundation.lams.tool.assessment.model.AssessmentUnit; + +/** + * + * @author Andrey Balan + * + */ +public class AssessmentUnitComparator implements Comparator { + + public int compare(AssessmentUnit o1, AssessmentUnit o2) { + if (o1 != null && o2 != null) { + return o1.getSequenceId() - o2.getSequenceId(); + } else if (o1 != null) + return 1; + else + return -1; + } + +} + \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -64,13 +64,15 @@ import org.lamsfoundation.lams.tool.assessment.model.AssessmentAttachment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentOverallFeedback; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; +import org.lamsfoundation.lams.tool.assessment.model.AssessmentUnit; import org.lamsfoundation.lams.tool.assessment.model.AssessmentUser; import org.lamsfoundation.lams.tool.assessment.service.AssessmentApplicationException; import org.lamsfoundation.lams.tool.assessment.service.IAssessmentService; import org.lamsfoundation.lams.tool.assessment.service.UploadAssessmentFileException; import org.lamsfoundation.lams.tool.assessment.util.AssessmentAnswerOptionComparator; import org.lamsfoundation.lams.tool.assessment.util.AssessmentOverallFeedbackComparator; import org.lamsfoundation.lams.tool.assessment.util.AssessmentQuestionComparator; +import org.lamsfoundation.lams.tool.assessment.util.AssessmentUnitComparator; import org.lamsfoundation.lams.tool.assessment.web.form.AssessmentForm; import org.lamsfoundation.lams.tool.assessment.web.form.AssessmentQuestionForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; @@ -166,6 +168,10 @@ if (param.equals("downOption")) { return downOption(mapping, form, request, response); } + // -----------------------Assessment Unit functions --------------------------- + if (param.equals("newUnit")) { + return newUnit(mapping, form, request, response); + } // -----------------------Assessment Overall Feedback functions --------------------------- if (param.equals("initOverallFeedback")) { return initOverallFeedback(mapping, form, request, response); @@ -628,6 +634,15 @@ optionList.add(option); } request.setAttribute(AssessmentConstants.ATTR_OPTION_LIST, optionList); + + List unitList = new ArrayList(); + for (int i = 0; i < AssessmentConstants.INITIAL_UNITS_NUMBER; i++) { + AssessmentUnit unit = new AssessmentUnit(); + unit.setSequenceId(i+1); + unit.setMultiplier(0); + unitList.add(unit); + } + request.setAttribute(AssessmentConstants.ATTR_UNIT_LIST, unitList); short type = (short) NumberUtils.stringToInt(request.getParameter(AssessmentConstants.ATTR_QUESTION_TYPE)); sessionMap.put(AssessmentConstants.ATTR_QUESTION_TYPE, type); @@ -897,6 +912,31 @@ } /** + * Ajax call, will add one more input line for new Unit. + * + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + private ActionForward newUnit(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + TreeSet unitList = getUnitsFromRequest(request, false); + AssessmentUnit unit = new AssessmentUnit(); + int maxSeq = 1; + if (unitList != null && unitList.size() > 0) { + AssessmentUnit last = unitList.last(); + maxSeq = last.getSequenceId() + 1; + } + unit.setSequenceId(maxSeq); + unitList.add(unit); + + request.setAttribute(AssessmentConstants.ATTR_UNIT_LIST, unitList); + return mapping.findForward(AssessmentConstants.SUCCESS); + } + + /** * Ajax call, will add one more input line for new resource item instruction. * * @param mapping @@ -1109,6 +1149,10 @@ Set optionList = question.getAnswerOptions(); request.setAttribute(AssessmentConstants.ATTR_OPTION_LIST, optionList); } + if (questionType == AssessmentConstants.QUESTION_TYPE_NUMERICAL) { + Set unitList = question.getUnits(); + request.setAttribute(AssessmentConstants.ATTR_UNIT_LIST, unitList); + } } /** @@ -1194,7 +1238,18 @@ } question.setAnswerOptions(options); } - + // set units + if (type == AssessmentConstants.QUESTION_TYPE_NUMERICAL) { + Set unitList = getUnitsFromRequest(request, true); + Set units = new LinkedHashSet(); + int seqId = 0; + for (AssessmentUnit unit : unitList) { + unit.setSequenceId(seqId++); + units.add(unit); + } + question.setUnits(units); + } + } /** @@ -1279,6 +1334,38 @@ } /** + * Get units from HttpRequest + * + * @param request + */ + private TreeSet getUnitsFromRequest(HttpServletRequest request, boolean skipBlankUnits) { + Map paramMap = splitRequestParameter(request, AssessmentConstants.ATTR_UNIT_LIST); + + int count = NumberUtils.stringToInt(paramMap.get(AssessmentConstants.ATTR_UNIT_COUNT)); + TreeSet unitList = new TreeSet(new AssessmentUnitComparator()); + for (int i = 0; i < count; i++) { + String unitStr = paramMap.get(AssessmentConstants.ATTR_UNIT_UNIT_PREFIX + i); + float multiplier = Float.valueOf(paramMap.get(AssessmentConstants.ATTR_UNIT_MULTIPLIER_PREFIX + i)); + String sequenceId = paramMap.get(AssessmentConstants.ATTR_UNIT_SEQUENCE_ID_PREFIX + i); + + if (StringUtils.isBlank(unitStr) && skipBlankUnits) { + continue; + } + AssessmentUnit unit = new AssessmentUnit(); + unit.setSequenceId(NumberUtils.stringToInt(sequenceId)); + unit.setUnit(unitStr); + unit.setMultiplier(multiplier); +// if (!StringUtils.isBlank(unitStr)) { +// int gradeBoundary = NumberUtils.stringToInt(paramMap +// .get(AssessmentConstants.ATTR_OVERALL_FEEDBACK_GRADE_BOUNDARY_PREFIX + i)); +// unit.setGradeBoundary(gradeBoundary); +// } + unitList.add(unit); + } + return unitList; + } + + /** * Get overall feedbacks from HttpRequest * * @param request Index: lams_tool_assessment/web/includes/images/warning.gif =================================================================== diff -u Binary files differ Index: lams_tool_assessment/web/pages/authoring/basic.jsp =================================================================== diff -u -rc437e028a3802f01fa80d40d99813c06944d0e9a -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/web/pages/authoring/basic.jsp (.../basic.jsp) (revision c437e028a3802f01fa80d40d99813c06944d0e9a) +++ lams_tool_assessment/web/pages/authoring/basic.jsp (.../basic.jsp) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -59,7 +59,7 @@ function createNewQuestionInitHref() { var questionTypeDropdown = document.getElementById("questionType"); var questionType = questionTypeDropdown.selectedIndex + 1; - var newQuestionInitHref = "${newQuestionInitUrl}&questionType=" + questionType + "&KeepThis=true&TB_iframe=true&height=540&width=650&modal=true"; + var newQuestionInitHref = "${newQuestionInitUrl}&questionType=" + questionType + "&KeepThis=true&TB_iframe=true&height=540&width=850&modal=true"; $("#newQuestionInitHref").attr("href", newQuestionInitHref) }; function refreshThickbox(){ Index: lams_tool_assessment/web/pages/authoring/parts/addessay.jsp =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/web/pages/authoring/parts/addessay.jsp (.../addessay.jsp) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/web/pages/authoring/parts/addessay.jsp (.../addessay.jsp) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -11,6 +11,7 @@ label { width: 10em; float: left; } label.error { float: none; color: red; padding-left: .5em; vertical-align: top; font-weight: bold; font-style: italic;} em { font-weight: bold; padding-right: 1em; vertical-align: top; } + input.error { border: 2px solid red;} @@ -33,6 +34,19 @@ digits: "" } }, + invalidHandler: function(form, validator) { + var errors = validator.numberOfInvalids(); + if (errors) { + var message = errors == 1 + ? "" + : "" + errors + ""; + + $("div.error span").html(message); + $("div.error").show(); + } else { + $("div.error").hide(); + } + }, debug: true, submitHandler: function(form) { $("#question").val(FCKeditorAPI.GetInstance("question").GetXHTML()); @@ -61,6 +75,10 @@
<%@ include file="/common/messages.jsp"%> + Index: lams_tool_assessment/web/pages/authoring/parts/addmatchingpairs.jsp =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/web/pages/authoring/parts/addmatchingpairs.jsp (.../addmatchingpairs.jsp) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/web/pages/authoring/parts/addmatchingpairs.jsp (.../addmatchingpairs.jsp) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -12,6 +12,7 @@ label { width: 10em; float: left; } label.error { float: none; color: red; padding-left: .5em; vertical-align: top; font-weight: bold; font-style: italic;} em { font-weight: bold; padding-right: 1em; vertical-align: top; } + input.error { border: 2px solid red;} @@ -35,6 +36,19 @@ digits: "" } }, + invalidHandler: function(form, validator) { + var errors = validator.numberOfInvalids(); + if (errors) { + var message = errors == 1 + ? "" + : "" + errors + ""; + + $("div.error span").html(message); + $("div.error").show(); + } else { + $("div.error").hide(); + } + }, debug: true, submitHandler: function(form) { $("#question").val(FCKeditorAPI.GetInstance("question").GetXHTML()); @@ -64,6 +78,10 @@
<%@ include file="/common/messages.jsp"%> + Index: lams_tool_assessment/web/pages/authoring/parts/matchingpair.jsp =================================================================== diff -u -rc437e028a3802f01fa80d40d99813c06944d0e9a -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/web/pages/authoring/parts/matchingpair.jsp (.../matchingpair.jsp) (revision c437e028a3802f01fa80d40d99813c06944d0e9a) +++ lams_tool_assessment/web/pages/authoring/parts/matchingpair.jsp (.../matchingpair.jsp) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -6,8 +6,10 @@ - - + + + Index: lams_tool_assessment/web/pages/authoring/parts/numerical.jsp =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/web/pages/authoring/parts/numerical.jsp (.../numerical.jsp) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/web/pages/authoring/parts/numerical.jsp (.../numerical.jsp) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -8,7 +8,7 @@ + id="optionAnswer${status.index}" size="25" value="${option.answerString}" class="number" title=""> @@ -20,7 +20,7 @@ + id="optionAcceptedError${status.index}" size="25" value="${option.acceptedError}" class="number" title=""> @@ -83,7 +83,9 @@ - + + Index: lams_tool_assessment/web/pages/authoring/parts/option.jsp =================================================================== diff -u -r4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6 -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/web/pages/authoring/parts/option.jsp (.../option.jsp) (revision 4c539129df9d6fd79ac3d7ba4d964dc8f0e6a9d6) +++ lams_tool_assessment/web/pages/authoring/parts/option.jsp (.../option.jsp) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -71,7 +71,9 @@ - + + Index: lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp =================================================================== diff -u -rc437e028a3802f01fa80d40d99813c06944d0e9a -rec107e68d150d83edb58b17177679662eb376e44 --- lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp (.../questionlist.jsp) (revision c437e028a3802f01fa80d40d99813c06944d0e9a) +++ lams_tool_assessment/web/pages/authoring/parts/questionlist.jsp (.../questionlist.jsp) (revision ec107e68d150d83edb58b17177679662eb376e44) @@ -76,7 +76,7 @@ - ?sessionMapID=${sessionMapID}&questionIndex=${status.index}&KeepThis=true&TB_iframe=true&height=540&width=650&modal=true + ?sessionMapID=${sessionMapID}&questionIndex=${status.index}&KeepThis=true&TB_iframe=true&height=540&width=850&modal=true +
+ + + + + + + + + + +
+ ${status.index+1} + + + + + + + + + + +
+ + + + + + +
+ + + + + + + + 1 + + + + + +
+ +
+
\ No newline at end of file