Index: sakai-lamstwo/impl/logic/src/java/org/lamsfoundation/lams/integrations/sakai/logic/impl/LamstwoLogicImpl.java =================================================================== diff -u -r975e90051619a8ee83c8e25952061c644af8cc94 -r1b1ffbee59430afe36cd17511a934b6ec38b9bc6 --- sakai-lamstwo/impl/logic/src/java/org/lamsfoundation/lams/integrations/sakai/logic/impl/LamstwoLogicImpl.java (.../LamstwoLogicImpl.java) (revision 975e90051619a8ee83c8e25952061c644af8cc94) +++ sakai-lamstwo/impl/logic/src/java/org/lamsfoundation/lams/integrations/sakai/logic/impl/LamstwoLogicImpl.java (.../LamstwoLogicImpl.java) (revision 1b1ffbee59430afe36cd17511a934b6ec38b9bc6) @@ -37,6 +37,7 @@ import org.lamsfoundation.lams.webservice.LessonManager; import org.lamsfoundation.lams.webservice.LessonManagerService; import org.lamsfoundation.lams.webservice.LessonManagerServiceLocator; +import org.lamsfoundation.ld.integration.Constants; import org.sakaiproject.authz.api.AuthzGroup; import org.sakaiproject.authz.api.AuthzGroupService; import org.sakaiproject.authz.api.AuthzPermissionException; @@ -351,7 +352,7 @@ String learningDesigns = "[]"; // empty javascript array try { - String serviceURL = serverAddress + "/services/xml/LearningDesignRepository?" + String serviceURL = serverAddress + "/services/xml/timestamp?" + "datetime=" + datetime + "&username=" + URLEncoder.encode(username, "utf8") + "&serverId=" + URLEncoder.encode(serverID, "utf8") @@ -646,17 +647,23 @@ - private String convertToTigraFormat(Node node) { + /** + * + * @param node the node from which to do the recursive conversion + * @return the string converted to tigra format + */ + public static String convertToTigraFormat(Node node) { StringBuilder sb = new StringBuilder(); - if (node.getNodeName().equals(LamstwoConstants.ELEM_FOLDER)) { + if (node.getNodeName().equals(Constants.ELEM_FOLDER)) { sb.append("['"); - sb.append( - node.getAttributes().getNamedItem( - LamstwoConstants.ATTR_NAME).getNodeValue()).append( - "',").append("null").append(','); - + + StringBuilder attribute= new StringBuilder(node.getAttributes().getNamedItem( + Constants.ATTR_NAME).getNodeValue().replace("'", "\\'")); + + sb.append(attribute.append("',").append("null").append(',')); + NodeList children = node.getChildNodes(); if (children.getLength() == 0) { sb.append("['',null]"); @@ -669,15 +676,21 @@ } sb.append(']'); } else if (node.getNodeName().equals( - LamstwoConstants.ELEM_LEARNING_DESIGN)) { + Constants.ELEM_LEARNING_DESIGN)) { sb.append('['); - sb.append('\'').append( - node.getAttributes().getNamedItem( - LamstwoConstants.ATTR_NAME).getNodeValue()).append( - '\'').append(',').append('\'').append( - node.getAttributes().getNamedItem( - LamstwoConstants.ATTR_RESOURCE_ID).getNodeValue()) - .append('\''); + + StringBuilder attrName = new StringBuilder(node.getAttributes().getNamedItem( + Constants.ATTR_NAME).getNodeValue().replace("'", "\\'")); + StringBuilder attrResId = new StringBuilder(node.getAttributes().getNamedItem( + Constants.ATTR_RESOURCE_ID).getNodeValue().replace("'", "\\'")); + + sb.append('\'') + .append(attrName + .append('\'') + .append(',') + .append('\'') + .append(attrResId.append('\''))); + sb.append(']'); } return sb.toString();