Vous n'êtes pas connecté. Connexion
|
|
Travaux effectués sur SweetWiki v21 laissée par AdilDe $1BUGS à voir
Correction d'un bug d'encodageIl a été nécessaire de convertir le format de certains fichiers jsp pour qu'ils soit en UTF8... Insertion d'images, fichiers, vidéosLors de l'insertion d'une image, le fichier jsp/process/ProcessFileUpload.jsp appelait la fonction : if("<%= sel %>"=="video"){ window.opener.notifyVideo(file, "<%= keywords %>"); }else{ window.opener.notifyImage(file, "/${pageContext.servletContext.servletContextName}/pub/" + name, "<%= keywords %>"); } } Et notifyImage est appelé par l'opener (jsp/kupu/edit.jsp en fait), la fonction notifyImage est dans jsp/kupu:kupuJScode.js function notifyImage(name, keywords){ var url = "/${pageContext.servletContext.servletContextName}/pub/" + name; var newnode = kupu.getInnerDocument().createElement('span'); newnode.setAttribute('about', url); attachKeywords(keywords, 'Image', newnode, url, name); var image = kupu.getInnerDocument().createElement('img'); image.setAttribute('src', url); image.setAttribute('alt', name); image.setAttribute('class', 'image-inline'); newnode.appendChild(image); kupu.insertNodeAtSelection(image, 1); } Bug identifié : l'url inséré dans le tag HTML contient /${pageContext.servletContext.servletContextName} qui ne peut être évalué dans du javascript. Dans la page en cours d'édition il est impératif d'insérer le path "réel" afin que l'image apparaisse bien. Néanmoins, lors de la sauvegarde de la page et afin qu'elle ne contienne pas en dur le path absolu, on remplace par la référence au contexte. Cela a lieu lors de la sauvegarde par la servlet Save.java qui exécute la feuille de style file/xsl/span2sew.xsl. Dans cette feuille de style on retrouve : <!-- MB: This is for transforming all /wiki or equivalent into /${pageContext.servletContext.servletContextName} when going out from kupu --> <xsl:template match="*[starts-with(@src, $context) or starts-with(@href, $context) or starts-with(@about, $context)]"> <xsl:copy> <xsl:for-each select="@*"> <xsl:choose> <xsl:when test="(local-name(.) = 'src') or (local-name(.) = 'href') or (local-name(.) = 'about')"> <xsl:attribute name="{local-name(.)}" namespace="{namespace-uri(.)}">/${pageContext.servletContext.servletContextName}<xsl:value-of select="substring-after(., $context)"/></xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:copy-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:for-each> <xsl:for-each select="*"> <xsl:apply-templates select="."/> </xsl:for-each> <xsl:for-each select="text()"> <xsl:copy-of select="."/> </xsl:for-each> </xsl:copy> </xsl:template> <xsl:template match="@*|*|text()|processing-instruction()|comment()"> <xsl:copy> <xsl:apply-templates select="*|@*|text()|processing-instruction()|comment()" /> </xsl:copy> </xsl:template> CORRECTION DU BUG : passer l'URL absolu lors de l'appel à notifyImage : Fichiers impactés :
|
Powered by MindTouch Deki Open Source Edition v.8.08 |