]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/on-line/xslt/ls2html.xsl
This commit was manufactured by cvs2svn to create branch 'start'.
[helm.git] / helm / on-line / xslt / ls2html.xsl
diff --git a/helm/on-line/xslt/ls2html.xsl b/helm/on-line/xslt/ls2html.xsl
new file mode 100644 (file)
index 0000000..fc38877
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="html" encoding="iso-8859-1"/>
+
+<!-- uri must end with '/' -->
+<xsl:param name="uri" select="''"/>
+<xsl:param name="keys" select="''"/>
+<xsl:param name="getterURL" select="''"/>
+<xsl:param name="interfaceURL" select="''"/>
+<xsl:param name="target" select="''"/>
+
+<xsl:template name="chop">
+ <xsl:param name="uri" select="''"/>
+ <xsl:param name="prefix" select="''"/>
+ <xsl:variable name="newprefix" select="substring-before($uri,'/')"/>
+ <xsl:choose>
+  <xsl:when test="$newprefix = ''"><xsl:value-of select="$prefix"/></xsl:when>
+  <xsl:otherwise>
+   <xsl:call-template name="chop">
+    <xsl:with-param name="uri" select="substring-after($uri,'/')"/>
+    <xsl:with-param name="prefix" select="concat($prefix,$newprefix,'/')"/>
+   </xsl:call-template>
+  </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:variable name="uridotdot">
+ <xsl:call-template name="chop">
+  <xsl:with-param name="uri" select="substring($uri,1,string-length($uri)-1)"/>
+ </xsl:call-template>
+</xsl:variable>
+
+<xsl:template name="makeDir">
+ <xsl:param name="uri" select="''"/>
+ <xsl:param name="basename" select="''"/>
+ <xsl:param name="icon" select="''"/>
+ <xsl:param name="alt" select="''"/>
+ <tr>
+  <td>
+   <img border="0" src="{concat($interfaceURL,'/icons/',$icon)}" alt="[{$alt}]"/>
+  </td>
+  <td>
+    <a
+      onClick=
+       "top.{$target}uri='{$uri}';
+        refresh{$target}Header('{$interfaceURL}/html/library/header.html');
+        this.search='?keys={$keys}' +
+         '&amp;xmluri=' + escape('{$getterURL}ls?format=xml'+'&amp;baseuri={$uri}')+
+         '&amp;param.uri={$uri}' +
+         '&amp;param.keys={$keys}' +
+         '&amp;param.getterURL={$getterURL}' +
+         '&amp;param.target={$target}' +
+         '&amp;param.interfaceURL={$interfaceURL}';"
+      onMouseOver="window.status='{$uri}'; return true"
+      href="apply"
+   ><xsl:value-of select="$basename"/></a>
+  </td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="/">
+ <html>
+  <head>
+   <title>Index of <xsl:value-of select="$uri"/></title>
+   <xsl:copy-of select="document(concat($interfaceURL,'/javascript/control.js_xml'))" />
+  </head>
+  <body bgcolor="#ffffff" text="#000000">
+   <table>
+    <xsl:if test="$uridotdot != ''">
+     <xsl:call-template name="makeDir">
+      <xsl:with-param name="uri" select="$uridotdot"/>
+      <xsl:with-param name="basename" select="'Parent Directory'"/>
+      <xsl:with-param name="icon" select="'back.gif'"/>
+      <xsl:with-param name="alt" select="'Parent Directory'"/>
+     </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates select="*"/>
+   </table>
+   <hr noshade="yes" align="left" width="80%"/>
+  </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="section">
+ <xsl:variable name="diruri">
+  <xsl:value-of select="."/>
+ </xsl:variable>
+ <xsl:call-template name="makeDir">
+  <xsl:with-param name="uri" select="concat($uri,$diruri,'/')"/>
+  <xsl:with-param name="basename" select="$diruri"/>
+  <xsl:with-param name="icon" select="'folder.gif'"/>
+  <xsl:with-param name="alt" select="$uri"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="object">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="ann" select="ann/@value"/>
+ <xsl:variable name="types" select="types/@value"/>
+ <tr>
+  <td>
+   <img border="0" src="{concat($interfaceURL,'/icons/generic.red.gif')}" alt="[{@name}]"/>
+  </td>
+  <td>
+   <a href="" target="{$target}"
+      onClick="this.href=makeURL('{$target}','{concat($uri,$name)}','{$ann}','{$types}')"
+      onMouseOver="window.status='{concat($uri,$name)}'; return true"
+   ><xsl:value-of select="$name"/></a>
+  </td>
+ </tr>
+</xsl:template>
+
+</xsl:stylesheet>