source: main/trunk/ibisph-view/src/main/webapp/xslt/html/Help.xslt @ 19863

Last change on this file since 19863 was 19863, checked in by GarthBraithwaite_STG, 2 years ago

view - more FontIcon? css cleanup.

File size: 7.5 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<xsl:stylesheet version="3.0" 
3        xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" 
4        xmlns:ibis="http://www.ibisph.org"
5
6        exclude-result-prefixes="ibis"
7>
8
9        <ibis:doc>
10                <name>html/Help</name>
11                <summary>Templates for help content - alerts, popup type content blocks.</summary>
12                <description>
13                </description>
14        </ibis:doc>
15
16
17        <!-- ========================================================== H E L P -->
18        <xsl:template match="HELP" mode="Help.element"
19                ibis:doc="General template to add a [Help] button to the right of
20                        the sections content based on any 'HELP' type element.  This
21                        template is simply a match to call-template wrapper.
22                "
23        >
24                <xsl:call-template name="Help.content">
25                        <xsl:with-param name="help" select="."/>
26                </xsl:call-template>
27        </xsl:template>
28
29
30        <!-- General template that adds a [Help] type button/icon to the right of a
31                given block.  The button handles the following 4 options:
32                - First if the useAlert is set then FORCE it to do the browser alert.
33                  This is the case even if the text contains a URL!!!
34                - If a URL is specified, then when clicked, a new window will be opened
35                        using the specified URL for the page's contents.
36                - If a URL is not specified but there is a TEXT element or text(), then
37                        a popup block is used.
38                - Lastly, if no URL, no text, and only a title is specified then skip -
39                        this is wrong - if a popup is wanted then put the text to be shown
40                        as content not a title.
41        -->
42        <xsl:template name="Help.content"
43                ibis:doc="General template to add a [Help] button/link/popup on the page.
44                        this template determines which of the actual sub help templates to
45                        use based on the useAlert, URL and if none of those then the default
46                        popup. 
47                "
48        >
49                <xsl:param name="help" ibis:doc="required help element - all other parameters are based off of this element's sub elements."/>
50                <xsl:param name="title" select="$help/TITLE" ibis:doc="Optional text to be shown on button mouse over"/>
51                <xsl:param name="titleLevel" select="4"/>
52
53                <xsl:param name="url" select="
54                                if(exists($help/LOCAL_URL)) then
55                                        concat($ibis.contextPath, $help/LOCAL_URL)
56                                else
57                                        $help/URL
58                        "
59                        ibis:doc="Optional URL that if present will be shown in a new browser window when clicked on"
60                />
61                <xsl:param name="useAlert" select="exists($help/USE_ALERT_FLAG)"/>
62                <xsl:param name="additionalClasses" ibis:doc="additional control css class(s) to be added to the help icon."/>
63                <xsl:variable name="additionalClasses" select="if(string-length($additionalClasses) != 0)then $additionalClasses else 'Right'"/>
64
65                <xsl:choose>
66                        <xsl:when test="$useAlert">
67                                <xsl:call-template name="Help.alert">
68                                        <xsl:with-param name="title" select="$title"/>
69                                        <xsl:with-param name="text">
70                                                <xsl:call-template name="ContentContainer.delimitedNodesetContent">
71                                                        <xsl:with-param name="contentNodeset" select="$help/TEXT"/>
72                                                        <xsl:with-param name="delimiter" select="'\n\n'"/>
73                                                </xsl:call-template>
74                                        </xsl:with-param>
75                                        <xsl:with-param name="additionalClasses" select="$additionalClasses"/>
76                                </xsl:call-template>
77                        </xsl:when>
78
79                        <xsl:when test="0 != string-length($url)">
80                                <xsl:call-template name="Help.link">
81                                        <xsl:with-param name="title" select="$title"/>
82                                        <xsl:with-param name="url"   select="$url"/>
83                                        <xsl:with-param name="additionalClasses" select="$additionalClasses"/>
84                                </xsl:call-template>
85                        </xsl:when>
86
87                        <xsl:when test="0 != count($help/TEXT)">
88                                <xsl:call-template name="Help.popup">
89                                        <xsl:with-param name="title"      select="$title"/>
90                                        <xsl:with-param name="titleLevel" select="$titleLevel"/>
91                                        <xsl:with-param name="content">
92                                                <xsl:call-template name="ContentContainer.delimitedNodesetContent">
93                                                        <xsl:with-param name="contentNodeset" select="$help/TEXT"/>
94                                                        <xsl:with-param name="delimiter"><br/><br/></xsl:with-param>
95                                                </xsl:call-template>
96                                        </xsl:with-param>
97                                        <xsl:with-param name="additionalClasses" select="$additionalClasses"/>
98                                </xsl:call-template>
99                        </xsl:when>
100                </xsl:choose>
101        </xsl:template>
102
103
104        <xsl:template name="Help.popup" ibis:doc="creates popup content help html code.">
105                <xsl:param name="title" ibis:doc="Optional text to be shown on button mouse over"/>
106                <xsl:param name="titleLevel" select="4"/>
107                <xsl:param name="content"  ibis:doc="text with optional sub elements."/>
108                <xsl:param name="additionalClasses"/>
109                <xsl:param name="addWikiAttribute" select="true()"/>
110<!-- xsl:message select="concat('Help.popup level: ', $titleLevel, ', title: ', $title)"/ -->
111
112                <span class="Help Popup FontIcon {$additionalClasses}">
113                        <div class="Container">
114                                <xsl:call-template name="ContentContainer.fixed">
115                                        <xsl:with-param name="title"      select="$title"/>
116                                        <xsl:with-param name="titleLevel" select="$titleLevel"/>
117                                        <xsl:with-param name="content"    select="$content"/>
118                                        <xsl:with-param name="contentContainerClass" select="'Content'"/>
119                                        <xsl:with-param name="contentContinerElementName" select="'div'"/>
120                                        <xsl:with-param name="addWikiAttribute" select="$addWikiAttribute"/>
121                                </xsl:call-template>
122                        </div>
123                </span>
124        </xsl:template>
125
126
127        <xsl:template name="Help.link" ibis:doc="creates link based help html.">
128                <xsl:param name="title" ibis:doc="Optional text to be shown on button mouse over"/>
129                <xsl:param name="url"   ibis:doc="Optional URL that if present will be shown in a new browser window when clicked on"/>
130                <xsl:param name="additionalClasses" select="'Right'"/>
131
132                <span onclick="window.open('{$url}', '_blank')" title="{$title}" 
133                        class="Help Link FontIcon {$additionalClasses}"
134                > </span>
135        </xsl:template>
136
137        <!--
138                Prior to 2008 a javascript alert box was used to display the text.
139                NOTE: There are not many formatting options when the text element is used
140                in an alert box.  Only javascript string escape characters are supported
141                AND you must be aware of the XML restrictions.  Below lists some of the
142                escape characters and things that should be watched for in the text:
143                        \n = new line - carriage return.  For a blank line \n\n is needed.
144                        \" = double quote character.
145                        \' = single quote character.
146                        \t = tab / indent.  This only works in IE - not NS.
147
148                        &amp;   produces the "&" character.
149                        &gt;    produces the ">" character.
150                        &lt;    produces the "<" character.
151                        \&apos; produces the "'" character.  Another way of doing \'.
152                        \&quot; produces the " character.  Another way of doing \".
153
154                Also, for text elements all CR/LF's must be removed because the javascript
155                generated will break lines and it can't deal with that (that's why the
156                normalize-space function is used - to remove all CR/LF/Tab characters).
157                Also, the " character will blow up the script call as well.  The " char
158                is replaced with the \" char.  The translate function could also be used
159                to simply remove all " characters.  Either solution also works for &quot;.
160        -->
161        <xsl:template name="Help.alert" ibis:doc="creates script alert popup help html.">
162                <xsl:param name="title" ibis:doc="Optional text to be shown on button mouse over"/>
163                <xsl:param name="text"  ibis:doc="Text to be displayed via a script alert."/>
164                <xsl:param name="additionalClasses" select="'Right'"/>
165
166                <xsl:variable name="text" select="normalize-space($text)"/>
167                <span onclick="javascript:alert('{$text}';" title="{$title}" 
168                        class="Help Alert FontIcon {$additionalClasses}"
169                > </span>
170        </xsl:template>
171
172</xsl:stylesheet>
173<!-- ============================= End of File ============================= -->
Note: See TracBrowser for help on using the repository browser.