help3/xhpeditor/DisplayArea.js | 69 +++++++++++++++++ help3/xhpeditor/ed_transform.xsl | 156 ++++++++++++++++----------------------- help3/xhpeditor/index.php | 9 +- 3 files changed, 141 insertions(+), 93 deletions(-)
New commits: commit dc6fc0c304f1db83c6ab788191bdabf52a2d07d9 Author: Olivier Hallot <olivier.hal...@libreoffice.org> AuthorDate: Mon Dec 9 11:42:37 2019 -0300 Commit: Olivier Hallot <olivier.hal...@libreoffice.org> CommitDate: Mon Dec 9 15:58:46 2019 +0100 XHP Editor: add 'system' switches * Add buttons to select computer system on rendered page * Mute links to prevent clicking on href's * cleanup on scripts Change-Id: I90de6a2ce84b59df9764f0bdd123579177ff7016 Reviewed-on: https://gerrit.libreoffice.org/84757 Reviewed-by: Olivier Hallot <olivier.hal...@libreoffice.org> Tested-by: Olivier Hallot <olivier.hal...@libreoffice.org> diff --git a/help3/xhpeditor/DisplayArea.js b/help3/xhpeditor/DisplayArea.js new file mode 100644 index 0000000..cd2d83f --- /dev/null +++ b/help3/xhpeditor/DisplayArea.js @@ -0,0 +1,69 @@ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +// scripts for rendered DisplayArea + +// Used to set system in case, caseinline=SYSTEM + +function setSystemSpan(system) { + hideSystemSpan(); + var spans = document.querySelectorAll("[class^=switch]"); + for (z = 0; z < spans.length; z++) { + var id = spans[z].getAttribute("id"); + if (id === null) { + continue; + } + else if (id.startsWith("swlnsys")) { + var y = spans[z].getElementsByTagName("SPAN"); + var n = y.length; + var foundSystem = false; + // unhide selectively + for (i = 0; i < n; i++) { + if (y[i].getAttribute("id") === null){ + continue; + } + else if( y[i].getAttribute("id").startsWith(system)){ + y[i].removeAttribute("hidden"); + foundSystem=true; + } + } + for (i = 0; i < n; i++) { + if (y[i].getAttribute("id") === null){ + continue; + } + else if( y[i].getAttribute("id").startsWith("default")){ + if(!foundSystem){ + y[i].removeAttribute("hidden"); + } + } + } + } + } +} +function hideSystemSpan(){ + var spans = document.querySelectorAll("[class^=switch]"); + for (z = 0; z < spans.length; z++) { + var id = spans[z].getAttribute("id"); + if (id === null) { + continue; + }else if(id.startsWith("swlnsys")) { + var y = spans[z].getElementsByTagName("SPAN"); + var n = y.length; + for (i = 0; i < n; i++) { + if (y[i].getAttribute("id") === null){ + continue; + } + else if( y[i].getAttribute("id").startsWith("MAC")){y[i].setAttribute("hidden","true");} + else if( y[i].getAttribute("id").startsWith("WIN")){y[i].setAttribute("hidden","true");} + else if( y[i].getAttribute("id").startsWith("UNIX")){y[i].setAttribute("hidden","true");} + else if( y[i].getAttribute("id").startsWith("default")){y[i].setAttribute("hidden","true");} + } + } + } +} diff --git a/help3/xhpeditor/ed_transform.xsl b/help3/xhpeditor/ed_transform.xsl index f07aed5..d4c742f 100644 --- a/help3/xhpeditor/ed_transform.xsl +++ b/help3/xhpeditor/ed_transform.xsl @@ -467,94 +467,82 @@ <!-- SWITCH --> <xsl:template match="switch"> - <xsl:variable name="idsw" select="concat('swln',generate-id())"/> - <span id="{$idsw}" class="switch"> - <xsl:choose> - <xsl:when test ="@select = 'sys'"> - <xsl:apply-templates /> - <script type="text/javascript"> - <![CDATA[setSystemSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]> - </script> - </xsl:when> - <xsl:when test ="@select = 'appl'"> + <xsl:choose> + <xsl:when test ="@select = 'sys'"> + <xsl:variable name="idsw" select="concat('swlnsys',generate-id())"/> + <span id="{$idsw}" class="switch"> <xsl:apply-templates /> - <script type="text/javascript"> - <![CDATA[setApplSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]> - </script> - </xsl:when> - <xsl:otherwise> + </span> + </xsl:when> + <xsl:when test ="@select = 'appl'"> + <xsl:variable name="idsw" select="concat('swlnappl',generate-id())"/> + <span id="{$idsw}" class="switch"> <xsl:apply-templates /> - </xsl:otherwise> - </xsl:choose> - </span> + </span> + </xsl:when> + <xsl:otherwise> + <p class="debug">Unsupported switch condition.</p> + </xsl:otherwise> + </xsl:choose> </xsl:template> <xsl:template match="switch" mode="embedded"> - <xsl:variable name="idsw" select="concat('swln',generate-id())"/> - <span id="{$idsw}" class="switch"> - <xsl:choose> - <xsl:when test ="@select = 'sys'"> + <xsl:choose> + <xsl:when test ="@select = 'sys'"> + <xsl:variable name="idsw" select="concat('swlnsys',generate-id())"/> + <span id="{$idsw}" class="switch"> <xsl:apply-templates mode="embedded"/> - <script type="text/javascript"> - <![CDATA[setSystemSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]> - </script> - </xsl:when> - <xsl:when test ="@select = 'appl'"> - <xsl:apply-templates /> - <script type="text/javascript"> - <![CDATA[setApplSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]> - </script> - </xsl:when> - <xsl:otherwise> - <xsl:apply-templates /> - </xsl:otherwise> - </xsl:choose> - </span> + </span> + </xsl:when> + <xsl:when test ="@select = 'appl'"> + <xsl:variable name="idsw" select="concat('swlnappl',generate-id())"/> + <span id="{$idsw}" class="switch"> + <xsl:apply-templates mode="embedded"/> + </span> + </xsl:when> + <xsl:otherwise> + <p class="debug">Unsupported switch condition.</p> + </xsl:otherwise> + </xsl:choose> </xsl:template> <!-- SWITCHINLINE --> <xsl:template match="switchinline"> - <xsl:variable name="idsw" select="concat('swln',generate-id())"/> - <span id="{$idsw}" class="switchinline"> - <xsl:choose> - <xsl:when test ="@select = 'sys'"> + <xsl:choose> + <xsl:when test ="@select = 'sys'"> + <xsl:variable name="idsw" select="concat('swlnsys',generate-id())"/> + <span id="{$idsw}" class="switchinline"> <xsl:apply-templates /> - <script type="text/javascript"> - <![CDATA[setSystemSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]> - </script> - </xsl:when> - <xsl:when test ="@select = 'appl'"> + </span> + </xsl:when> + <xsl:when test ="@select = 'appl'"> + <xsl:variable name="idsw" select="concat('swlnappl',generate-id())"/> + <span id="{$idsw}" class="switchinline"> <xsl:apply-templates /> - <script type="text/javascript"> - <![CDATA[setApplSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]> - </script> - </xsl:when> - <xsl:otherwise> - <xsl:apply-templates /> - </xsl:otherwise> - </xsl:choose> - </span> + </span> + </xsl:when> + <xsl:otherwise> + <p class="debug">Unsupported switch condition.</p> + </xsl:otherwise> + </xsl:choose> </xsl:template> <xsl:template match="switchinline" mode="embedded"> - <xsl:variable name="idsw" select="concat('swln',generate-id())"/> - <span id="{$idsw}" class="switchinline"> - <xsl:choose> - <xsl:when test ="@select = 'sys'"> - <xsl:apply-templates /> - <script type="text/javascript"> - <![CDATA[setSystemSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]> - </script> - </xsl:when> - <xsl:when test ="@select = 'appl'"> - <xsl:apply-templates /> - <script type="text/javascript"> - <![CDATA[setApplSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]> - </script> - </xsl:when> - <xsl:otherwise> - <xsl:apply-templates /> - </xsl:otherwise> - </xsl:choose> - </span> + <xsl:choose> + <xsl:when test ="@select = 'sys'"> + <xsl:variable name="idsw" select="concat('swlnsys',generate-id())"/> + <span id="{$idsw}" class="switchinline"> + <xsl:apply-templates mode="embedded"/> + </span> + </xsl:when> + <xsl:when test ="@select = 'appl'"> + <xsl:variable name="idsw" select="concat('swlnappl',generate-id())"/> + <span id="{$idsw}" class="switchinline"> + <xsl:apply-templates mode="embedded"/> + </span> + </xsl:when> + <xsl:otherwise> + <p class="debug">Unsupported switch condition.</p> + </xsl:otherwise> + </xsl:choose> </xsl:template> <!-- TABLE --> @@ -803,21 +791,9 @@ </xsl:template> <!-- Create a link --> +<!-- Modified for editor --> <xsl:template name="createlink"> - <xsl:choose> - <xsl:when test="starts-with(@href,'http://') or starts-with(@href,'https://')"> <!-- web links --> - <a target ="_blank" href="{@href}"><xsl:apply-templates /></a> - </xsl:when> - <xsl:when test="contains(@href,'#')"> <!-- internal links with bookmark --> - <xsl:variable name="anchor"><xsl:value-of select="concat('#',substring-after(@href,'#'))"/></xsl:variable> - <xsl:variable name="href"><xsl:value-of select="concat($linkprefix,substring-before(@href, 'xhp'),'html',$anchor,$linkpostfix)"/></xsl:variable> - <a target ="_top" href="{$href}"><xsl:apply-templates /></a> - </xsl:when> - <xsl:otherwise> - <xsl:variable name="href"><xsl:value-of select="concat($linkprefix,substring-before(@href, 'xhp'),'html',$linkpostfix)"/></xsl:variable> - <a target ="_top" href="{$href}"><xsl:apply-templates /></a> - </xsl:otherwise> - </xsl:choose> + <span style="color: blue;" data-tooltip="{@href}"><xsl:apply-templates /></span> </xsl:template> <!-- Insert Note, Warning, or Tip --> @@ -1175,11 +1151,11 @@ <xsl:variable name="href"><xsl:value-of select="concat($urlpre,substring-before(@href,'#'))"/></xsl:variable> <xsl:variable name="anc"><xsl:value-of select="substring-after(@href,'#')"/></xsl:variable> <xsl:variable name="docum" select="document($href)"/> + <p class="debugembed">Embed href: <xsl:value-of select="@href"/></p> <xsl:call-template name="insertembed"> <xsl:with-param name="doc" select="$docum" /> <xsl:with-param name="anchor" select="$anc" /> </xsl:call-template> - <p class="debugembed">Embed href: <xsl:value-of select="$href"/>#<xsl:value-of select="$anc"/></p> </div> </xsl:template> diff --git a/help3/xhpeditor/index.php b/help3/xhpeditor/index.php index 295b948..dd9e5bf 100644 --- a/help3/xhpeditor/index.php +++ b/help3/xhpeditor/index.php @@ -26,11 +26,10 @@ $xhp = $_POST["xhpdoc"]; <script type="text/javascript" src="addon/hint/xml-hint.js"></script> <script type="text/javascript" src="mode/xml/xml.js"></script> <script type="text/javascript" src="xhp2html.js" defer=""></script> - <script type="text/javascript" src="helpcontent2/help3xsl/help2.js"></script> <script type="text/javascript" src="helpcontent2/help3xsl/prism.js"></script> - <script type="text/javascript" src="helpcontent2/help3xsl/help.js" defer=""></script> <script type="text/javascript" src="autocomplete.js" defer=""></script> <script type="text/javascript" src="snippets.js" defer=""></script> + <script type="text/javascript" src="DisplayArea.js"></script> </head> <body style="font-family:sans-serif;"> @@ -134,7 +133,11 @@ echo $xhp; <?php $xhp = $_POST["xhpdoc"]; if (isset($_POST["render_page"])) { - echo '<h2>Rendered page</h2><div id="renderedpage">'; + echo '<h2>Rendered page</h2>'; + echo '<button onclick="setSystemSpan(\'MAC\')" class="snip_buttons">MAC</button>'; + echo '<button onclick="setSystemSpan(\'WIN\')" class="snip_buttons">WIN</button>'; + echo '<button onclick="setSystemSpan(\'UNIX\')" class="snip_buttons">UNIX</button>'; + echo '<div id="renderedpage">'; $xml = new DOMDocument(); $xml->loadXML($xhp); $xsl = new DOMDocument; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits