Index: samlite-impl/src/java/org/sakaiproject/tool/assessment/samlite/impl/SamLiteServiceImpl.java =================================================================== --- samlite-impl/src/java/org/sakaiproject/tool/assessment/samlite/impl/SamLiteServiceImpl.java (revision 73980) +++ samlite-impl/src/java/org/sakaiproject/tool/assessment/samlite/impl/SamLiteServiceImpl.java (working copy) @@ -239,8 +239,8 @@ boolean isMC = multipleChoiceMatcher.find(); Matcher fillInMatcher = correctFillInPattern.matcher(line); boolean isFI = fillInMatcher.find(); - boolean isTrue = correctTruePattern.matcher(line).find(); - boolean isFalse = correctFalsePattern.matcher(line).find(); + boolean isTrue = correctTruePattern.matcher(line.replace("
", "")).find(); + boolean isFalse = correctFalsePattern.matcher(line.replace("
", "")).find(); if (isMC) { String earlierCorrectAnswer = question.getCorrectAnswer(); Index: samigo-services/src/java/org/sakaiproject/tool/assessment/util/TextFormat.java =================================================================== --- samigo-services/src/java/org/sakaiproject/tool/assessment/util/TextFormat.java (revision 73980) +++ samigo-services/src/java/org/sakaiproject/tool/assessment/util/TextFormat.java (working copy) @@ -343,4 +343,68 @@ log.debug(String.valueOf(System.identityHashCode(tf))); } + + public static String convertPlaintextToFormattedTextNoHighUnicode(Log log, String value) { + if (value == null) return ""; + + try + { + StringBuilder buf = new StringBuilder(); + final int len = value.length(); + for (int i = 0; i < len; i++) + { + char c = value.charAt(i); + switch (c) + { + case '<': + { + if (buf == null) buf = new StringBuilder(value.substring(0, i)); + buf.append("<"); + } + break; + + case '>': + { + if (buf == null) buf = new StringBuilder(value.substring(0, i)); + buf.append(">"); + } + break; + + case '&': + { + if (buf == null) buf = new StringBuilder(value.substring(0, i)); + buf.append("&"); + } + break; + + case '"': + { + if (buf == null) buf = new StringBuilder(value.substring(0, i)); + buf.append("""); + } + break; + case '\n': + { + if (buf == null) buf = new StringBuilder(value.substring(0, i)); + buf.append("
\n"); + } + break; + default: + { + if (buf != null) buf.append(c); + } + break; + } + } // for + + return (buf == null) ? value : buf.toString(); + } + catch (Exception e) + { + log.warn("convertPlaintextToFormattedTextNoHighUnicode: ", e); + return ""; + } + + } // convertPlaintextToFormattedTextNoHighUnicode + } Index: samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/ExtractionHelper.java =================================================================== --- samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/ExtractionHelper.java (revision 73980) +++ samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/ExtractionHelper.java (working copy) @@ -73,6 +73,7 @@ import org.sakaiproject.tool.assessment.qti.util.XmlMapper; import org.sakaiproject.tool.assessment.qti.util.XmlUtil; import org.sakaiproject.tool.assessment.services.assessment.AssessmentService; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.tool.cover.ToolManager; import org.sakaiproject.user.api.User; import org.sakaiproject.user.cover.UserDirectoryService; @@ -908,7 +909,7 @@ // "CONSIDER_USERID"); // String userId = assessment.getAssessmentMetaDataByLabel("USERID"); String password = assessment.getAssessmentMetaDataByLabel("PASSWORD"); - String finalPageUrl = XmlUtil.processFormattedText(log, assessment.getAssessmentMetaDataByLabel("FINISH_URL")); + String finalPageUrl = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessment.getAssessmentMetaDataByLabel("FINISH_URL")); if (//"TRUE".equalsIgnoreCase(considerUserId) && notNullOrEmpty(userId) && notNullOrEmpty(password)) @@ -1200,7 +1201,7 @@ */ public void updateSection(SectionFacade section, Map sectionMap) { - section.setTitle(XmlUtil.processFormattedText(log, (String) sectionMap.get("title"))); + section.setTitle(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, (String) sectionMap.get("title"))); section.setDescription(XmlUtil.processFormattedText(log, makeFCKAttachment((String) sectionMap.get("description")))); } Index: samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java =================================================================== --- samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java (revision 73980) +++ samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java (working copy) @@ -69,11 +69,13 @@ import org.sakaiproject.tool.assessment.services.ItemService; import org.sakaiproject.tool.assessment.services.QuestionPoolService; import org.sakaiproject.tool.assessment.services.assessment.AssessmentService; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; +import org.sakaiproject.util.FormattedText; /** *

Copyright: Copyright (c) 2004

@@ -153,7 +155,7 @@ factory.getAssessmentHelperInstance(this.qtiVersion); Assessment assessmentXml = assessmentHelper.readXMLDocument(is); assessmentXml.setIdent(assessmentId); - assessmentXml.setTitle(assessment.getTitle()); + assessmentXml.setTitle(FormattedText.convertFormattedTextToPlaintext(assessment.getTitle())); assessmentHelper.setDescriptiveText(assessment.getDescription(), assessmentXml); @@ -488,7 +490,7 @@ Assessment assessmentXml = new Assessment(document); Map assessmentMap = exHelper.mapAssessment(assessmentXml); String description = XmlUtil.processFormattedText(log, (String) assessmentMap.get("description")); - String title = XmlUtil.processFormattedText(log, (String) assessmentMap.get("title")); + String title = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, (String) assessmentMap.get("title")); assessment = assessmentService.createAssessmentWithoutDefaultSection( title, exHelper.makeFCKAttachment(description), null, templateId); Index: samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/asi/Section.java =================================================================== --- samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/asi/Section.java (revision 73980) +++ samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/asi/Section.java (working copy) @@ -49,6 +49,7 @@ import org.sakaiproject.tool.assessment.qti.constants.QTIVersion; import org.sakaiproject.tool.assessment.qti.helper.QTIHelperFactory; import org.sakaiproject.tool.assessment.qti.helper.item.ItemHelperIfc; +import org.sakaiproject.util.FormattedText; /** *

Copyright: Copyright (c) 2004

@@ -134,7 +135,7 @@ { // identity setIdent("" + section.getSectionId()); - setTitle(section.getTitle()); + setTitle(FormattedText.convertFormattedTextToPlaintext(section.getTitle())); // metadata // Where the heck do these come from? Looks like not being used. // If required we could extract keywords by weighting, and Index: samigo-app/src/webapp/jsf/template/confirmTempRemove.jsp =================================================================== --- samigo-app/src/webapp/jsf/template/confirmTempRemove.jsp (revision 73980) +++ samigo-app/src/webapp/jsf/template/confirmTempRemove.jsp (working copy) @@ -43,7 +43,7 @@
- +
Index: samigo-app/src/webapp/jsf/questionpool/copyPoolTree.jsp =================================================================== --- samigo-app/src/webapp/jsf/questionpool/copyPoolTree.jsp (revision 73980) +++ samigo-app/src/webapp/jsf/questionpool/copyPoolTree.jsp (working copy) @@ -84,7 +84,7 @@ - + Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/servlet/delivery/ShowAttachmentMediaServlet.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/servlet/delivery/ShowAttachmentMediaServlet.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/servlet/delivery/ShowAttachmentMediaServlet.java (working copy) @@ -43,8 +43,7 @@ import org.sakaiproject.exception.TypeException; import org.sakaiproject.tool.assessment.data.dao.assessment.PublishedAttachmentData; import org.sakaiproject.tool.assessment.services.assessment.AssessmentService; -import org.sakaiproject.tool.assessment.services.assessment.PublishedAssessmentService; -import org.sakaiproject.util.FormattedText; +import org.sakaiproject.tool.assessment.util.TextFormat; /** *

@@ -90,7 +89,7 @@ String mimeType = req.getParameter("mimeType"); String filename = req.getParameter("filename"); - String cleanedFilename = FormattedText.processFormattedText(filename, new StringBuilder()); + String cleanedFilename = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, filename); res.setHeader("Content-Disposition", "inline;filename=\"" + cleanedFilename +"\";"); log.debug("resourceId = " + resourceId); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/util/ContextUtil.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/util/ContextUtil.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/util/ContextUtil.java (working copy) @@ -26,7 +26,6 @@ import java.util.Iterator; import java.util.Map; -import org.sakaiproject.util.FormattedText; import org.sakaiproject.util.ResourceLoader; import java.util.Locale; @@ -394,17 +393,4 @@ } return newString; } - - public static String processFormattedText(Log log, String value) { - if (value == null || value.length() == 0){ - return value; - } - StringBuilder alertMsg = new StringBuilder(); - String finalValue = FormattedText.processFormattedText(value, alertMsg); - if (alertMsg.length() > 0) - { - log.debug(alertMsg.toString()); - } - return finalValue; - } } Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/questionpool/PoolSaveListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/questionpool/PoolSaveListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/questionpool/PoolSaveListener.java (working copy) @@ -23,7 +23,6 @@ package org.sakaiproject.tool.assessment.ui.listener.questionpool; import java.util.ArrayList; -import java.util.Collection; import java.util.Date; import java.util.List; import java.util.Iterator; @@ -31,13 +30,11 @@ import javax.faces.event.AbortProcessingException; import javax.faces.event.ActionEvent; import javax.faces.event.ActionListener; -import javax.faces.model.ListDataModel; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.sakaiproject.tool.assessment.data.model.Tree; import org.sakaiproject.tool.assessment.facade.AgentFacade; import org.sakaiproject.tool.assessment.facade.QuestionPoolFacade; import org.sakaiproject.tool.assessment.services.QuestionPoolService; @@ -45,12 +42,8 @@ import org.sakaiproject.tool.assessment.services.ItemService; import org.sakaiproject.tool.assessment.ui.bean.questionpool.QuestionPoolBean; import org.sakaiproject.tool.assessment.ui.bean.questionpool.QuestionPoolDataBean; -import org.sakaiproject.tool.assessment.ui.bean.questionpool.QuestionPoolDataModel; -//import org.sakaiproject.tool.assessment.data.dao.questionpool.QuestionPoolData; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; -import org.sakaiproject.util.FormattedText; -//import org.sakaiproject.tool.assessment.data.model.Tree; -//import org.sakaiproject.tool.assessment.business.questionpool.QuestionPoolTreeImpl; +import org.sakaiproject.tool.assessment.util.TextFormat; /** *

Title: Samigo

*

Description: Sakai Assessment Manager

@@ -73,7 +66,7 @@ { //log.info("PoolSaveListener :"); QuestionPoolBean qpoolbean= (QuestionPoolBean) ContextUtil.lookupBean("questionpool"); - String currentName= FormattedText.convertPlaintextToFormattedText(qpoolbean.getCurrentPool().getDisplayName()); + String currentName= TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, qpoolbean.getCurrentPool().getDisplayName()); boolean isUnique=true; QuestionPoolService service = new QuestionPoolService(); @@ -155,11 +148,12 @@ QuestionPoolFacade questionpool = new QuestionPoolFacade (beanid, parentid); - questionpool.updateDisplayName(FormattedText.convertPlaintextToFormattedText(bean.getDisplayName())); - questionpool.updateDescription(FormattedText.escapeHtml(bean.getDescription(), false)); - questionpool.setOrganizationName(FormattedText.convertPlaintextToFormattedText(bean.getOrganizationName())); - questionpool.setObjectives(FormattedText.convertPlaintextToFormattedText(bean.getObjectives())); - questionpool.setKeywords(FormattedText.convertPlaintextToFormattedText(bean.getKeywords())); + questionpool.updateDisplayName(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getDisplayName())); + questionpool.updateDescription(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getDescription())); + questionpool.setOrganizationName(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getOrganizationName())); + questionpool.setObjectives(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getObjectives())); + questionpool.setKeywords(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getKeywords())); + // need to set owner and accesstype questionpool.setAccessTypeId(QuestionPoolFacade.ACCESS_DENIED); // set as default @@ -191,11 +185,11 @@ // Reset the properties for current pool to reflect the early changes (before click on "Add") in edit pool QuestionPoolDataBean currentPool = qpbean.getCurrentPool(); - currentPool.setDisplayName(FormattedText.convertPlaintextToFormattedText(qpbean.getParentPool().getDisplayName())); - currentPool.setOrganizationName(FormattedText.convertPlaintextToFormattedText(qpbean.getParentPool().getOrganizationName())); - currentPool.setDescription(FormattedText.convertPlaintextToFormattedText(qpbean.getParentPool().getDescription())); - currentPool.setObjectives(FormattedText.convertPlaintextToFormattedText(qpbean.getParentPool().getObjectives())); - currentPool.setKeywords(FormattedText.convertPlaintextToFormattedText(qpbean.getParentPool().getKeywords())); + currentPool.setDisplayName(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, qpbean.getParentPool().getDisplayName())); + currentPool.setOrganizationName(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, qpbean.getParentPool().getOrganizationName())); + currentPool.setDescription(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, qpbean.getParentPool().getDescription())); + currentPool.setObjectives(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, qpbean.getParentPool().getObjectives())); + currentPool.setKeywords(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, qpbean.getParentPool().getKeywords())); ArrayList addedPools = qpbean.getAddedPools(); if (addedPools == null) { addedPools = new ArrayList(); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/TotalScoreUpdateListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/TotalScoreUpdateListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/TotalScoreUpdateListener.java (working copy) @@ -48,7 +48,7 @@ import org.sakaiproject.tool.assessment.ui.bean.evaluation.AgentResults; import org.sakaiproject.tool.assessment.ui.bean.evaluation.TotalScoresBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; -import org.sakaiproject.util.FormattedText; +import org.sakaiproject.tool.assessment.util.TextFormat; /** *

@@ -186,7 +186,7 @@ private boolean needUpdate(AgentResults agentResults, HashMap map){ boolean update = true; - String newComments = FormattedText.escapeHtml(agentResults.getComments(), false); + String newComments = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, agentResults.getComments()); agentResults.setComments(newComments); log.debug("newComments = " + newComments); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/StudentScoreUpdateListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/StudentScoreUpdateListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/StudentScoreUpdateListener.java (working copy) @@ -48,7 +48,7 @@ import org.sakaiproject.tool.assessment.ui.bean.evaluation.StudentScoresBean; import org.sakaiproject.tool.assessment.ui.bean.evaluation.TotalScoresBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; -import org.sakaiproject.util.FormattedText; +import org.sakaiproject.tool.assessment.util.TextFormat; /** *

@@ -150,7 +150,7 @@ if (data.getAutoScore() !=null) { oldAutoScore=data.getAutoScore().floatValue(); } - String newComments = FormattedText.escapeHtml(question.getGradingComment(), false); + String newComments = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, question.getGradingComment()); if (newComments != null) { newComments = newComments.trim(); } @@ -194,7 +194,7 @@ log.debug("****4 itemGradingId="+data.getItemGradingId()); log.debug("****5 set points = " + data.getAutoScore() + ", comments to " + data.getComments()); } - data.setAnswerText(FormattedText.escapeHtml(data.getAnswerText(), false)); + data.setAnswerText(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, data.getAnswerText())); itemGradingSet.add(data); } } @@ -210,7 +210,7 @@ if (adata == null) return true; // Nothing to save. - String newComments = FormattedText.escapeHtml(bean.getComments(), false); + String newComments = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getComments()); if (newComments != null) { newComments = newComments.trim(); } Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/QuestionScoreUpdateListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/QuestionScoreUpdateListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/QuestionScoreUpdateListener.java (working copy) @@ -45,7 +45,7 @@ import org.sakaiproject.tool.assessment.ui.bean.evaluation.QuestionScoresBean; import org.sakaiproject.tool.assessment.ui.bean.evaluation.TotalScoresBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; -import org.sakaiproject.util.FormattedText; +import org.sakaiproject.tool.assessment.util.TextFormat; /** *

@@ -128,7 +128,7 @@ // check if there is differnce in score, if so, update. Otherwise, do nothing float newAutoScore = (new Float(ar.getTotalAutoScore())).floatValue() / (float) datas.size(); - String newComments = FormattedText.escapeHtml(ar.getComments(), false); + String newComments = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, ar.getComments()); ar.setComments(newComments); if (newComments!=null) { newComments = newComments.trim(); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/delivery/SubmitToGradingActionListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/delivery/SubmitToGradingActionListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/delivery/SubmitToGradingActionListener.java (working copy) @@ -59,7 +59,7 @@ import org.sakaiproject.tool.assessment.ui.bean.delivery.SectionContentsBean; import org.sakaiproject.tool.assessment.ui.bean.shared.PersonBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; -import org.sakaiproject.util.FormattedText; +import org.sakaiproject.tool.assessment.util.TextFormat; /** *

@@ -413,9 +413,9 @@ Long oldAnswerId = oldItem.getPublishedAnswerId(); Long newAnswerId = newItem.getPublishedAnswerId(); String oldRationale = oldItem.getRationale(); - String newRationale = FormattedText.escapeHtml(newItem.getRationale(), false); + String newRationale = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, newItem.getRationale()); String oldAnswerText = oldItem.getAnswerText(); - String newAnswerText = FormattedText.escapeHtml(newItem.getAnswerText(), false); + String newAnswerText = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, newItem.getAnswerText()); if ((oldReview != null && !oldReview.equals(newReview)) || (newReview!=null && !newReview.equals(oldReview)) || (oldAnswerId != null && !oldAnswerId @@ -539,7 +539,7 @@ itemgrading.setAgentId(AgentFacade.getAgentString()); itemgrading.setSubmittedDate(new Date()); if (itemgrading.getRationale() != null && itemgrading.getRationale().length() > 0) { - itemgrading.setRationale(FormattedText.escapeHtml(itemgrading.getRationale(), false)); + itemgrading.setRationale(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, itemgrading.getRationale())); } // the rest of the info is collected by // ItemContentsBean via JSF form @@ -568,7 +568,7 @@ } else if (itemgrading.getPublishedAnswerId() != null || itemgrading.getAnswerText() != null ) { if (itemgrading.getRationale() != null && itemgrading.getRationale().length() > 0) { - itemgrading.setRationale(FormattedText.escapeHtml(itemgrading.getRationale(), false)); + itemgrading.setRationale(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, itemgrading.getRationale())); } adds.addAll(grading); break; @@ -588,7 +588,7 @@ adds.addAll(grading); break; } else if (itemgrading.getAnswerText() != null && !itemgrading.getAnswerText().equals("")) { - itemgrading.setAnswerText(FormattedText.escapeHtml(itemgrading.getAnswerText(), false)); + itemgrading.setAnswerText(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, itemgrading.getAnswerText())); adds.addAll(grading); break; } @@ -611,7 +611,7 @@ } else if (itemgrading.getAnswerText() != null && !itemgrading.getAnswerText().equals("")) { String s = itemgrading.getAnswerText(); log.debug("s = " + s); - itemgrading.setAnswerText(FormattedText.convertPlaintextToFormattedText(s)); + itemgrading.setAnswerText(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, s)); adds.addAll(grading); if (!addedToAdds) { adds.addAll(grading); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/TemplateUpdateListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/TemplateUpdateListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/TemplateUpdateListener.java (working copy) @@ -54,6 +54,7 @@ import org.sakaiproject.tool.assessment.ui.bean.author.IndexBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; import org.sakaiproject.tool.assessment.ui.listener.author.TemplateListener; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.util.FormattedText; /** @@ -88,7 +89,7 @@ - String tempName=templateBean.getTemplateName(); + String tempName = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, templateBean.getTemplateName()); AssessmentService assessmentService = new AssessmentService(); boolean isUnique=assessmentService.assessmentTitleIsUnique(templateBean.getIdString(),tempName,true); @@ -185,10 +186,10 @@ (delegate.getAssessmentTemplate(templateIdString)).getData(); } - template.setTitle(ContextUtil.processFormattedText(log, templateBean.getTemplateName())); + template.setTitle(templateBean.getTemplateName()); if (templateBean.getTemplateAuthor() != null) templateBean.getValueMap().put - ("author", ContextUtil.processFormattedText(log, templateBean.getTemplateAuthor())); + ("author", TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, templateBean.getTemplateAuthor())); template.setDescription(templateBean.getTemplateDescription()); // Assessment Access Control Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SavePublishedSettingsListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SavePublishedSettingsListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SavePublishedSettingsListener.java (working copy) @@ -66,7 +66,7 @@ import org.sakaiproject.tool.assessment.ui.bean.author.AuthorBean; import org.sakaiproject.tool.assessment.ui.bean.author.PublishedAssessmentSettingsBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; -import org.sakaiproject.util.FormattedText; +import org.sakaiproject.tool.assessment.util.TextFormat; /** *

Title: Samigo

2 @@ -156,7 +156,7 @@ error=true; } - assessmentName = FormattedText.convertPlaintextToFormattedText(assessmentName.trim()); + assessmentName = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentName.trim()); // check if name is unique if(!assessmentService.publishedAssessmentTitleIsUnique(assessmentSettings.getAssessmentId().toString(), assessmentName)){ String nameUnique_err = ContextUtil.getLocalizedString("org.sakaiproject.tool.assessment.bundle.AssessmentSettingsMessages","assessmentName_error"); @@ -242,7 +242,7 @@ // Check if title has been changed. If yes, update it. private boolean isTitleChanged(PublishedAssessmentSettingsBean assessmentSettings, PublishedAssessmentFacade assessment) { if (assessment.getTitle() != null && assessmentSettings.getTitle() != null) { - String assessmentTitle = FormattedText.convertPlaintextToFormattedText(assessmentSettings.getTitle().trim()); + String assessmentTitle = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getTitle().trim()); if (!assessment.getTitle().trim().equals(assessmentTitle)) { assessment.setTitle(assessmentTitle); return true; Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SavePartListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SavePartListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SavePartListener.java (working copy) @@ -56,6 +56,7 @@ import org.sakaiproject.tool.assessment.ui.bean.author.AssessmentBean; import org.sakaiproject.tool.assessment.ui.bean.author.SectionBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.util.FormattedText; /** @@ -90,7 +91,7 @@ // create an assessment based on the title entered and the assessment // template selected // #1 - read from form editpart.jsp - String title = FormattedText.convertPlaintextToFormattedText(sectionBean.getSectionTitle()).trim(); + String title = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, sectionBean.getSectionTitle()).trim(); if(title == null || title.equals("")){ String err=ContextUtil.getLocalizedString("org.sakaiproject.tool.assessment.bundle.AuthorMessages", "empty_part_title_error"); context.addMessage(null, new FacesMessage(err)); @@ -169,13 +170,13 @@ // TODO: Need to save Type, Question Ordering, and Metadata if (!("".equals(sectionBean.getKeyword()))) - section.addSectionMetaData(SectionMetaDataIfc.KEYWORDS, FormattedText.convertPlaintextToFormattedText(sectionBean.getKeyword())); + section.addSectionMetaData(SectionMetaDataIfc.KEYWORDS, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, sectionBean.getKeyword())); if (!("".equals(sectionBean.getObjective()))) - section.addSectionMetaData(SectionMetaDataIfc.OBJECTIVES, FormattedText.convertPlaintextToFormattedText(sectionBean.getObjective())); + section.addSectionMetaData(SectionMetaDataIfc.OBJECTIVES, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, sectionBean.getObjective())); if (!("".equals(sectionBean.getRubric()))) - section.addSectionMetaData(SectionMetaDataIfc.RUBRICS, FormattedText.convertPlaintextToFormattedText(sectionBean.getRubric())); + section.addSectionMetaData(SectionMetaDataIfc.RUBRICS, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, sectionBean.getRubric())); if (!("".equals(sectionBean.getQuestionOrdering()))) section.addSectionMetaData(SectionDataIfc.QUESTIONS_ORDERING, sectionBean.getQuestionOrdering()); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SaveAssessmentSettingsListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SaveAssessmentSettingsListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SaveAssessmentSettingsListener.java (working copy) @@ -40,6 +40,7 @@ import org.sakaiproject.tool.assessment.ui.bean.author.AssessmentSettingsBean; import org.sakaiproject.tool.assessment.ui.bean.author.AuthorBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.util.FormattedText; /** @@ -70,7 +71,7 @@ String assessmentId=String.valueOf(assessmentSettings.getAssessmentId()); AssessmentService assessmentService = new AssessmentService(); SaveAssessmentSettings s = new SaveAssessmentSettings(); - String assessmentName = FormattedText.convertPlaintextToFormattedText(assessmentSettings.getTitle()); + String assessmentName = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getTitle()); // check if name is empty if(assessmentName!=null &&(assessmentName.trim()).equals("")){ Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SaveAssessmentSettings.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SaveAssessmentSettings.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/SaveAssessmentSettings.java (working copy) @@ -57,9 +57,9 @@ import org.sakaiproject.tool.assessment.ui.bean.author.AssessmentSettingsBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; import org.sakaiproject.tool.cover.ToolManager; -import org.sakaiproject.util.FormattedText; import org.sakaiproject.tool.assessment.ui.bean.author.PublishedAssessmentSettingsBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; +import org.sakaiproject.tool.assessment.util.TextFormat; /** *

Title: Samigo

2 @@ -87,10 +87,10 @@ AssessmentFacade assessment = assessmentService.getAssessment( assessmentId.toString()); //log.info("** assessment = "+assessment); - assessment.setTitle(FormattedText.convertPlaintextToFormattedText(assessmentSettings.getTitle())); + assessment.setTitle(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getTitle())); //assessment.setTitle(assessmentSettings.getTitle()); - assessment.setDescription(assessmentSettings.getDescription()); // No need to call processFormattedText() because this is done in RichTextEditArea.java - assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.AUTHORS, FormattedText.convertPlaintextToFormattedText(assessmentSettings.getAuthors())); + assessment.setDescription(assessmentSettings.getDescription()); + assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.AUTHORS, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getAuthors())); // #2 - set AssessmentAccessControl AssessmentAccessControl control = (AssessmentAccessControl)assessment.getAssessmentAccessControl(); @@ -177,13 +177,13 @@ // e. set Submission Messages control.setSubmissionMessage(assessmentSettings.getSubmissionMessage()); // f. set username - control.setUsername(FormattedText.convertPlaintextToFormattedText(assessmentSettings.getUsername())); + control.setUsername(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getUsername())); // g. set password - control.setPassword(FormattedText.convertPlaintextToFormattedText(assessmentSettings.getPassword())); + control.setPassword(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getPassword())); // h. set finalPageUrl - String finalPageUrl = assessmentSettings.getFinalPageUrl(); - if (finalPageUrl != null) { - finalPageUrl = FormattedText.convertPlaintextToFormattedText(finalPageUrl.trim()); + String finalPageUrl = ""; + if (assessmentSettings.getFinalPageUrl() != null) { + finalPageUrl = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getFinalPageUrl().trim()); if (finalPageUrl.length() != 0 && !finalPageUrl.toLowerCase().startsWith("http")) { finalPageUrl = "http://" + finalPageUrl; } @@ -248,13 +248,13 @@ updateMetaWithValueMap(assessment, h); // i. set Graphics - assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.BGCOLOR, FormattedText.convertPlaintextToFormattedText(assessmentSettings.getBgColor())); - assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.BGIMAGE, FormattedText.convertPlaintextToFormattedText(assessmentSettings.getBgImage())); + assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.BGCOLOR, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getBgColor())); + assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.BGIMAGE, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getBgImage())); // j. set objectives,rubrics,keywords - assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.KEYWORDS, FormattedText.convertPlaintextToFormattedText(assessmentSettings.getKeywords())); - assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.OBJECTIVES, FormattedText.convertPlaintextToFormattedText(assessmentSettings.getObjectives())); - assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.RUBRICS, FormattedText.convertPlaintextToFormattedText(assessmentSettings.getRubrics())); + assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.KEYWORDS, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getKeywords())); + assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.OBJECTIVES, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getObjectives())); + assessment.updateAssessmentMetaData(AssessmentMetaDataIfc.RUBRICS, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getRubrics())); // jj. save assessment first, then deal with ip assessmentService.saveAssessment(assessment); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/PublishAssessmentListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/PublishAssessmentListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/PublishAssessmentListener.java (working copy) @@ -55,7 +55,7 @@ import org.sakaiproject.service.gradebook.shared.AssignmentHasIllegalPointsException; import org.sakaiproject.spring.SpringBeanLocator; import org.sakaiproject.tool.assessment.util.SamigoEmailService; -import org.sakaiproject.util.FormattedText; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.util.ResourceLoader; /** @@ -182,7 +182,7 @@ FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(publish_error)); error=true; } - if (!assessmentService.assessmentTitleIsUnique(assessmentId,assessmentName,false)){ + if (!assessmentService.assessmentTitleIsUnique(assessmentId, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentName), false)){ error=true; String nameUnique_err=ContextUtil.getLocalizedString("org.sakaiproject.tool.assessment.bundle.AssessmentSettingsMessages","assessmentName_error"); FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(nameUnique_err)); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemAddListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemAddListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ItemAddListener.java (working copy) @@ -74,6 +74,7 @@ import org.sakaiproject.tool.assessment.ui.bean.questionpool.QuestionPoolBean; import org.sakaiproject.tool.assessment.ui.bean.questionpool.QuestionPoolDataBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.util.FormattedText; /** @@ -1408,18 +1409,20 @@ protected HashSet prepareMetaData(ItemFacade item, ItemBean bean) { HashSet set = new HashSet(); + if (bean.getKeyword() != null) { set.add(new ItemMetaData(item.getData(), - ItemMetaDataIfc.KEYWORD, ContextUtil.processFormattedText(log, bean.getKeyword()))); + ItemMetaDataIfc.KEYWORD, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getKeyword()))); } if (bean.getRubric() != null) { set.add(new ItemMetaData(item.getData(), - ItemMetaDataIfc.RUBRIC, ContextUtil.processFormattedText(log, bean.getRubric()))); + ItemMetaDataIfc.RUBRIC, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getRubric()))); } if (bean.getObjective() != null) { set.add(new ItemMetaData(item.getData(), - ItemMetaDataIfc.OBJECTIVE, ContextUtil.processFormattedText(log, bean.getObjective()))); + ItemMetaDataIfc.OBJECTIVE, TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getObjective()))); } + // Randomize property got left out, added in metadata if (bean.getRandomized() != null) { set.add(new ItemMetaData(item.getData(), @@ -1493,13 +1496,13 @@ while (iter.hasNext()) { ItemMetaDataIfc itemMetaData = (ItemMetaDataIfc) iter.next(); if (itemMetaData.getLabel().equals(ItemMetaDataIfc.KEYWORD)){ - itemMetaData.setEntry(ContextUtil.processFormattedText(log, bean.getKeyword())); + itemMetaData.setEntry(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getKeyword())); } else if (itemMetaData.getLabel().equals(ItemMetaDataIfc.RUBRIC)){ - itemMetaData.setEntry(ContextUtil.processFormattedText(log, bean.getKeyword())); + itemMetaData.setEntry(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getKeyword())); } else if (itemMetaData.getLabel().equals(ItemMetaDataIfc.OBJECTIVE)){ - itemMetaData.setEntry(ContextUtil.processFormattedText(log, bean.getObjective())); + itemMetaData.setEntry(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, bean.getObjective())); } else if (itemMetaData.getLabel().equals(ItemMetaDataIfc.RANDOMIZE)){ itemMetaData.setEntry(bean.getRandomized()); @@ -1551,7 +1554,7 @@ if (afteropen.length>1) { // must have text in between {} String[] lastpart = afteropen[1].split("\\}"); - String answer = FormattedText.convertFormattedTextToPlaintext(lastpart[0].replaceAll("<.*?>", "")); + String answer = lastpart[0].replaceAll("<.*?>", ""); list.add(answer); } } @@ -1560,17 +1563,17 @@ if (i == 0) { String[] firstpart = tokens[i].split("\\{"); if (firstpart.length>1) { - String answer = FormattedText.convertFormattedTextToPlaintext(firstpart[1].replaceAll("<.*?>", "")); + String answer = firstpart[1].replaceAll("<.*?>", ""); list.add(answer); } } else if (i == (tokens.length - 1)) { String[] lastpart = tokens[i].split("\\}"); - String answer = FormattedText.convertFormattedTextToPlaintext(lastpart[0].replaceAll("<.*?>", "")); + String answer = lastpart[0].replaceAll("<.*?>", ""); list.add(answer); } else { - String answer = FormattedText.convertFormattedTextToPlaintext(tokens[i].replaceAll("<.*?>", "")); + String answer = tokens[i].replaceAll("<.*?>", ""); list.add(answer); } } Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/EditPublishedSettingsListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/EditPublishedSettingsListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/EditPublishedSettingsListener.java (working copy) @@ -91,17 +91,17 @@ assessmentSettings.setAssessment(assessment); assessmentSettings.setAttachmentList(((AssessmentIfc)assessment.getData()).getAssessmentAttachmentList()); - // To unEscapeHtml for the fields that have been through ContextUtil.processFormattedText - assessmentSettings.setTitle(FormattedText.unEscapeHtml(assessment.getTitle())); - assessmentSettings.setAuthors(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.AUTHORS))); - assessmentSettings.setFinalPageUrl(FormattedText.unEscapeHtml(assessment.getAssessmentAccessControl().getFinalPageUrl())); - assessmentSettings.setBgColor(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.BGCOLOR))); - assessmentSettings.setBgImage(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.BGIMAGE))); - assessmentSettings.setKeywords(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.KEYWORDS))); - assessmentSettings.setObjectives(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.OBJECTIVES))); - assessmentSettings.setRubrics(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.RUBRICS))); - assessmentSettings.setUsername(FormattedText.unEscapeHtml(assessment.getAssessmentAccessControl().getUsername())); - assessmentSettings.setPassword(FormattedText.unEscapeHtml(assessment.getAssessmentAccessControl().getPassword())); + // To convertFormattedTextToPlaintext for the fields that have been through convertPlaintextToFormattedTextNoHighUnicode + assessmentSettings.setTitle(FormattedText.convertFormattedTextToPlaintext(assessment.getTitle())); + assessmentSettings.setAuthors(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.AUTHORS))); + assessmentSettings.setFinalPageUrl(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentAccessControl().getFinalPageUrl())); + assessmentSettings.setBgColor(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.BGCOLOR))); + assessmentSettings.setBgImage(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.BGIMAGE))); + assessmentSettings.setKeywords(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.KEYWORDS))); + assessmentSettings.setObjectives(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.OBJECTIVES))); + assessmentSettings.setRubrics(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.RUBRICS))); + assessmentSettings.setUsername(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentAccessControl().getUsername())); + assessmentSettings.setPassword(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentAccessControl().getPassword())); AssessmentBean assessmentBean = (AssessmentBean) ContextUtil.lookupBean("assessmentBean"); assessmentBean.setAssessmentId(assessmentId); Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ConfirmPublishAssessmentListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ConfirmPublishAssessmentListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/ConfirmPublishAssessmentListener.java (working copy) @@ -52,6 +52,7 @@ import org.sakaiproject.tool.assessment.ui.bean.author.AuthorBean; import org.sakaiproject.tool.assessment.ui.bean.authz.AuthorizationBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.util.FormattedText; /** @@ -95,7 +96,7 @@ //#2a - look for error: check if core assessment title is unique boolean error=false; - String assessmentName=assessmentSettings.getTitle(); + String assessmentName = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, assessmentSettings.getTitle()); if(assessmentName!=null &&(assessmentName.trim()).equals("")){ String nameEmpty_err=ContextUtil.getLocalizedString("org.sakaiproject.tool.assessment.bundle.AssessmentSettingsMessages","assessmentName_empty"); context.addMessage(null,new FacesMessage(nameEmpty_err)); @@ -205,8 +206,8 @@ //#3 now u can proceed to save core assessment assessment = s.save(assessmentSettings); - //unEscape the FormattedText.convertPlaintextToFormattedText in s.save() - assessment.setTitle(FormattedText.unEscapeHtml(assessment.getTitle())); + //unEscape the TextFormat.convertPlaintextToFormattedTextNoHighUnicode in s.save() + assessment.setTitle(FormattedText.convertFormattedTextToPlaintext(assessment.getTitle())); assessmentSettings.setAssessment(assessment); // we need a publishedUrl, this is the url used by anonymous user Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/AuthorSettingsListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/AuthorSettingsListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/AuthorSettingsListener.java (working copy) @@ -97,17 +97,17 @@ assessmentSettings.resetIsValidDate(); assessmentSettings.resetOriginalDateString(); - // To unEscapeHtml for the fields that have been through ContextUtil.processFormattedText - assessmentSettings.setTitle(FormattedText.unEscapeHtml(assessment.getTitle())); - assessmentSettings.setAuthors(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.AUTHORS))); - assessmentSettings.setFinalPageUrl(FormattedText.unEscapeHtml(assessment.getAssessmentAccessControl().getFinalPageUrl())); - assessmentSettings.setBgColor(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.BGCOLOR))); - assessmentSettings.setBgImage(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.BGIMAGE))); - assessmentSettings.setKeywords(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.KEYWORDS))); - assessmentSettings.setObjectives(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.OBJECTIVES))); - assessmentSettings.setRubrics(FormattedText.unEscapeHtml(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.RUBRICS))); - assessmentSettings.setUsername(FormattedText.unEscapeHtml(assessment.getAssessmentAccessControl().getUsername())); - assessmentSettings.setPassword(FormattedText.unEscapeHtml(assessment.getAssessmentAccessControl().getPassword())); + // To convertFormattedTextToPlaintext for the fields that have been through convertPlaintextToFormattedTextNoHighUnicode + assessmentSettings.setTitle(FormattedText.convertFormattedTextToPlaintext(assessment.getTitle())); + assessmentSettings.setAuthors(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.AUTHORS))); + assessmentSettings.setFinalPageUrl(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentAccessControl().getFinalPageUrl())); + assessmentSettings.setBgColor(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.BGCOLOR))); + assessmentSettings.setBgImage(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.BGIMAGE))); + assessmentSettings.setKeywords(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.KEYWORDS))); + assessmentSettings.setObjectives(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.OBJECTIVES))); + assessmentSettings.setRubrics(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentMetaDataByLabel(AssessmentMetaDataIfc.RUBRICS))); + assessmentSettings.setUsername(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentAccessControl().getUsername())); + assessmentSettings.setPassword(FormattedText.convertFormattedTextToPlaintext(assessment.getAssessmentAccessControl().getPassword())); // else throw error Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/AuthorAssessmentListener.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/AuthorAssessmentListener.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/AuthorAssessmentListener.java (working copy) @@ -45,6 +45,7 @@ import org.sakaiproject.tool.assessment.ui.bean.author.ItemAuthorBean; import org.sakaiproject.tool.assessment.ui.bean.authz.AuthorizationBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.util.FormattedText; /** @@ -90,7 +91,7 @@ // create an assessment based on the title entered and the assessment // template selected // #1 - read from form authorIndex.jsp - String assessmentTitle = FormattedText.convertPlaintextToFormattedText(author.getAssessTitle()); + String assessmentTitle = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, author.getAssessTitle()); //HUONG's EDIT //check assessmentTitle and see if it is duplicated, if is not then proceed, else throw error Index: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/samlite/SamLiteBean.java =================================================================== --- samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/samlite/SamLiteBean.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/samlite/SamLiteBean.java (working copy) @@ -37,6 +37,7 @@ import org.sakaiproject.tool.assessment.services.assessment.AssessmentService; import org.sakaiproject.tool.assessment.ui.bean.author.AuthorBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.util.FormattedText; import org.w3c.dom.Document; @@ -72,9 +73,9 @@ } public void parse() { - questionGroup = samLiteService.parse(FormattedText.escapeHtml(name, false), - FormattedText.escapeHtml(description, false), - FormattedText.escapeHtml(data, false)); + questionGroup = samLiteService.parse(TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, name), + TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, description), + TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, data)); } public Document createDocument() { Index: samigo-app/src/java/org/sakaiproject/jsf/renderer/RichTextEditArea.java =================================================================== --- samigo-app/src/java/org/sakaiproject/jsf/renderer/RichTextEditArea.java (revision 73980) +++ samigo-app/src/java/org/sakaiproject/jsf/renderer/RichTextEditArea.java (working copy) @@ -37,6 +37,8 @@ import org.sakaiproject.component.cover.ServerConfigurationService; import org.sakaiproject.tool.assessment.services.assessment.AssessmentService; +import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; +import org.sakaiproject.tool.assessment.util.TextFormat; import org.sakaiproject.tool.cover.ToolManager; import org.sakaiproject.util.EditorConfiguration; import org.sakaiproject.util.FormattedText; @@ -587,7 +589,7 @@ // if use hid the FCK editor, we treat it as text editor if ("firsttime".equals(current_status) || "collapsed".equals(current_status)) { - finalValue = FormattedText.convertPlaintextToFormattedText(newValue); + finalValue = TextFormat.convertPlaintextToFormattedTextNoHighUnicode(log, newValue); } else { StringBuilder alertMsg = new StringBuilder();