--- a/svghmi/gen_index_xhtml.xslt Wed Oct 09 11:15:14 2019 +0200
+++ b/svghmi/gen_index_xhtml.xslt Thu Oct 10 09:54:44 2019 +0200
@@ -6,6 +6,27 @@
<xsl:variable name="hmi_elements" select="//*[starts-with(@inkscape:label, 'HMI:')]"/>
<xsl:variable name="hmi_geometry" select="$geometry[@Id = $hmi_elements/@id]"/>
<xsl:variable name="hmi_pages" select="$hmi_elements[func:parselabel(@inkscape:label)/widget/@type = 'Page']"/>
+ <xsl:variable name="default_page"> + <xsl:when test="count($hmi_pages) > 1"> + <xsl:variable name="Home_page" select="$hmi_pages[func:parselabel(@inkscape:label)/widget/arg[1]/@value = 'Home']"/> + <xsl:when test="$Home_page"> + <xsl:text>Home</xsl:text> + <xsl:message terminate="yes">No Home page defined!</xsl:message> + <xsl:when test="count($hmi_pages) = 0"> + <xsl:message terminate="yes">No page defined!</xsl:message> + <xsl:value-of select="func:parselabel($hmi_pages/@inkscape:label)/widget/arg[1]/@value"/> <xsl:variable name="_categories">
<xsl:text>HMI_ROOT</xsl:text>
@@ -209,13 +230,13 @@
<xsl:text> id: "</xsl:text>
<xsl:value-of select="@id"/>
<xsl:variable name="page" select="."/>
<xsl:variable name="p" select="$hmi_geometry[@Id = $page/@id]"/>
- <xsl:for-each select="$hmi_geometry[@Id != $page/@id and @x >= $p/@x and @y >= $p/@y and @w <= $p/@w and @h <= $p/@h]">
+ <xsl:for-each select="$hmi_geometry[@Id != $page/@id and @x >= $p/@x and @y >= $p/@y and @w <= $p/@w and @h <= $p/@h]"> <xsl:value-of select="@Id"/>
@@ -230,6 +251,12 @@
+ <xsl:text>var default_page = "</xsl:text> + <xsl:value-of select="$default_page"/> --- a/svghmi/gen_index_xhtml.ysl2 Wed Oct 09 11:15:14 2019 +0200
+++ b/svghmi/gen_index_xhtml.ysl2 Thu Oct 10 09:54:44 2019 +0200
@@ -29,6 +29,23 @@
const "hmi_pages", "$hmi_elements[func:parselabel(@inkscape:label)/widget/@type = 'Page']";
+ const "default_page" choose { + when "count($hmi_pages) > 1" { + "$hmi_pages[func:parselabel(@inkscape:label)/widget/arg[1]/@value = 'Home']"; + when "$Home_page" > Home + error "No Home page defined!"; + when "count($hmi_pages) = 0" { + error "No page defined!"; + otherwise > «func:parselabel($hmi_pages/@inkscape:label)/widget/arg[1]/@value» @@ -37,7 +54,6 @@
noindex > HMI_CURRENT_PAGE
const "categories", "exsl:node-set($_categories)";
- //const "indexed_hmitree", "$hmitree[not(local-name() = $categories/noindex/text())]";
const "_indexed_hmitree" apply "$hmitree", mode="index";
const "indexed_hmitree", "exsl:node-set($_indexed_hmitree)";
@@ -196,7 +212,7 @@
const "desc", "func:parselabel(@inkscape:label)/widget";
| "«$desc/arg[1]/@value»": {
const "p", "$hmi_geometry[@Id = $page/@id]";
@@ -209,6 +225,9 @@
+ | var default_page = "«$default_page»";