source: main/trunk/ibisph-view/src/main/webapp/xslt/html/SiteSpecific.xslt @ 12319

Last change on this file since 12319 was 12319, checked in by Garth Braithwaite, 6 years ago

view - redirect controller cleaned up and example of usage with docs in spring/view.xml. Fixed kendo loading png css. Removed the table sorter js from the core as kendo does this better. Shortened the IP report requests like important_facts to simply facts. Fixed a few icon image context built paths - removed the leading/middle "/".

File size: 17.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2
3<xsl:stylesheet version="2.0" 
4        xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" 
5        xmlns:ibis="http://www.ibisph.org"
6
7        exclude-result-prefixes="ibis"
8>
9
10        <ibis:doc>
11                <name>html/SiteSpecific</name>
12                <summary>
13                        Main site specific template API definitions and core page API
14                        template overrides.
15                </summary>
16                <description>
17                        This XSLT provides the core, base site specific API related template
18                        definitions.  It should contain global, general definitions like menu
19                        code and general site specific APIs.  If specific definitions are
20                        implemented then the local SiteSpecific.xslt will need to make sure
21                        that the "correct" template definition is implemented.  Otherwise high
22                        level template overrides will take precedence over lower level page
23                        specific definitions as the SiteSpecific.xslt is the last template
24                        imported.
25                </description>
26
27                <author>Garth Braithwaite</author>
28                <company>Software Technology Group/CDC/Utah Department of Health</company>
29        </ibis:doc>
30
31
32        <xsl:param name="SiteSpecific.siteNavigationSelectionsXMLFilePathAndName" 
33                select="concat($MenuSelectionsList.xmlFilePath, '/navigation/SiteNavigationSelections.xml')"
34        />
35
36        <xsl:param name="SiteSpecific.siteNavigationSelections"
37                ibis:doc="Menu XML document/elements which contains all the applicable
38                        'xincluded' sub files.  There are several ways to do this xinclude
39                        functionality.  1) two step process involving a Java code, 2) use
40                        an XSL processor that supports xinclude, 3) create a variable that
41                        contains the entire document fully processed.  The latter approach
42                        is used in this situation because the menu files are quite small and
43                        this option does not involve any outside dependence.  For performance
44                        xincludes might not be a good way to go but for maint it is a good
45                        solution."
46        >
47                <xsl:apply-templates select="document($SiteSpecific.siteNavigationSelectionsXMLFilePathAndName)/SELECTIONS/*" mode="ibis.copy"/>
48        </xsl:param>
49
50        <xsl:param name="PathSegments" select="'about'" ibis:doc="Passed from convention HTML_CONTENT type XSLT model map."/>
51        <xsl:param name="SiteSpecific.siteNavigationSelectedSelectionName" select="concat($PathSegments[1], 'Menu')"
52                ibis:doc="Used to reference the the context menu items."
53        />
54        <xsl:param name="SiteSpecific.navigationPathSelections"
55                ibis:doc="Default path segments for bread crumb trails..."
56        >
57                <xsl:for-each select="$PathSegments[position() != last()]">
58                        <xsl:variable name="currentPathSegment" select="position()"/>
59                        <SELECTION>
60                                <TITLE><xsl:value-of select="."/></TITLE>
61                                <LOCAL_URL><xsl:for-each select="$PathSegments[position() &lt;= $currentPathSegment]"><xsl:value-of select="."/>/</xsl:for-each>Introduction.html</LOCAL_URL>
62                        </SELECTION>
63                </xsl:for-each>
64        </xsl:param>
65
66
67        <xsl:param name="SiteSpecific.contextNavigationSelectionsXMLFilePathAndName" 
68                select="concat($MenuSelectionsList.xmlFilePath, '/navigation/', $PathSegments[1], 'ContextSelection.xml')"
69        />
70        <xsl:param name="SiteSpecific.contextNavigationSelections" 
71                ibis:doc="Default context menu - static site selections list associated
72                        with the current app module.  This param can be overridden for specific
73                        context menus e.g. indicator reports, phom reports, query builder/result
74                        etc.  This mechanism also allows the java controller to inject a custom
75                        built selections list.
76                "
77        >
78                <xsl:variable name="contextSelections">
79                        <xsl:apply-templates select="document($SiteSpecific.contextNavigationSelectionsXMLFilePathAndName)/*" mode="ibis.copy"/>
80                </xsl:variable>
81                <xsl:choose>
82                        <xsl:when test="count($contextSelections/*) != 0">
83                                <xsl:copy-of select="$contextSelections"/>
84                        </xsl:when>
85                        <xsl:otherwise>
86                                <xsl:copy-of select="$SiteSpecific.siteNavigationSelections/SELECTION[NAME = $SiteSpecific.siteNavigationSelectedSelectionName]/SELECTIONS/SELECTION"/>
87                        </xsl:otherwise>
88                </xsl:choose>
89        </xsl:param>
90
91       
92        <!--
93                select="/NULL_ELEMENT"
94-->
95
96        <xsl:param name="SiteSpecific.siteAuthenticatedUserSelectionXMLFilePathAndName" 
97                select="concat($MenuSelectionsList.xmlFilePath, '/navigation/AuthenticatedUserSelection.xml')"
98        />
99        <xsl:param name="SiteSpecific.siteNonAuthenticatedUserSelectionXMLFilePathAndName" 
100                select="concat($MenuSelectionsList.xmlFilePath, '/navigation/userContextSelection.xml')"
101        />
102        <xsl:param name="SiteSpecific.siteAuthenticatedUserSelections">
103                <xsl:apply-templates select="document($SiteSpecific.siteAuthenticatedUserSelectionXMLFilePathAndName)/SELECTION/SELECTIONS" mode="ibis.copy"/>
104        </xsl:param>
105        <xsl:param name="SiteSpecific.siteNonAuthenticatedUserSelections">
106                <xsl:apply-templates select="document($SiteSpecific.siteNonAuthenticatedUserSelectionXMLFilePathAndName)/SELECTION/SELECTIONS" mode="ibis.copy"/>
107        </xsl:param>
108
109
110        <xsl:param name="SiteSpecific.printPageFooter" 
111                ibis:doc="contents of the print footer to show if media=print"
112        >
113                The information provided above is from the Department of Health's Center for
114                Health Data IBIS-PH web site (http://ibis.health.state.gov).  The information published
115                on this website may be reproduced without permission. Please use the following citation:
116                &quot;
117                        Retrieved
118                        <xsl:value-of select="ibis:getFormattedDateTime(current-dateTime())"/>
119                        from Department of Health, Center for Health Data, Indicator-Based Information
120                        System for Public Health Web site: http://ibis.health.state.gov
121                &quot;.
122
123                <xsl:if test="string-length($ibis.XMLModifedDate) != 0">
124                        <br/><br/>
125                        Content updated: <xsl:value-of select="$ibis.XMLModifedDate"/>
126                </xsl:if>
127        </xsl:param>
128
129
130        <xsl:param name="SiteSpecific.logoutURL" select="concat($ibis.urlPrefix, 'user/logout')"/>
131
132
133
134        <xsl:template name="Page.banner">
135                <div id="banner">
136                        <div class="StateBanner">
137                                <div style="float: right">
138                                        <a href="#agencies" title="Agencies" target="_blank">State.gov Agencies</a>
139                                </div>
140                                <div>
141                                        <a href="#services" title="Services" target="_blank">State.gov Services</a>
142                                </div>
143                        </div>
144
145                        <div class="DOHBanner">
146                                <a href="http://health.gov"></a>
147                                <ul>
148                                        <li><a href="http://www.health.gov/">Home</a></li>
149                                        <li><a href="http://health.gov/services/index.html">Health Services</a></li>
150                                        <li><a href="http://health.gov/a-z/index.html">A-Z List</a></li>
151                                        <li><a href="http://health.gov/faq/index.html">FAQ</a></li>
152                                        <li><a href="http://health.gov/data/index.html">Data</a></li>
153                                        <li><a href="http://health.gov/about/index.html">About Us</a></li>
154                                </ul>
155                        </div>
156                </div>
157        </xsl:template>
158
159
160        <xsl:template name="Page.header" 
161                ibis:doc="State IBIS-PH specific implementation of the 'html.header'
162                        API template.  This template provides the State and DOH banners via
163                        a siteSpecific.headerBanner template call and the blue IBIS-PH
164                        graphic with site navigation menus via the siteSpecific.siteNavigation
165                        template.  To turn off the banners, simply override it with nothing."
166        >
167                <div id="header">
168                        <div class="FluidContainer">
169                                <a href="{$ibis.urlPrefix}" title="Home link"
170                                        ><img src="{$ibis.urlPrefix}image/logo.png" alt="header home"/></a>
171                        </div>
172
173                        <div class="FluidContainer TitleContainer">
174                                <h1 class="Title">Public Health Indicator Based Information System
175                                        <div>Your Public Health Data Resource</div>
176                                </h1>
177
178                                <div id="navigationPath" title="Navigation path to get to this page.">
179                                        Path:
180                                        <xsl:call-template name="SelectionsList.processSelections">
181                                                <xsl:with-param name="selections">
182                                                        <SELECTION>
183                                                                <TITLE><xsl:value-of select="$Page.applicationTitle"/></TITLE>
184                                                                <URL><xsl:value-of select="$ibis.urlPrefix"/></URL>
185                                                        </SELECTION>
186                                                        <xsl:copy-of select="$SiteSpecific.navigationPathSelections"/>
187                                                </xsl:with-param>
188                                        </xsl:call-template>
189                                </div>
190                        </div>
191
192                        <xsl:call-template name="SiteSpecific.siteNavigation"/>
193                </div>
194        </xsl:template>
195
196
197        <xsl:template name="SiteSpecific.siteNavigation">
198                <div id="siteNavigation">
199                        <a name="siteNavigationMenuJumpTo" title="page's site navigation menu jump to"/>
200                        <xsl:call-template name="MenuSelectionsList.columnsPanel">
201                                <xsl:with-param name="selections"     select="$SiteSpecific.siteNavigationSelections"/>
202                                <xsl:with-param name="inputName"      select="'columnPanelControl'"/>
203                                <xsl:with-param name="containerClass" select="'HorizontalMenu HorizontalTabList'"/>
204                                <xsl:with-param name="selectedSelectionName" select="$SiteSpecific.siteNavigationSelectedSelectionName"/>
205                        </xsl:call-template>
206
207                        <a name="searchJumpTo"/>
208                        <form id="siteSearch" name="siteSearch" method="get" action="http://www.google.com/search">
209                                <label for="siteSearchInput" accesskey="s" class="Hidden">Search the site:</label>
210                                <input id="siteSearchInput" name="q" 
211                                        placeholder="Search this website..."
212                                        type="text" size="50" autocomplete="on"
213                                        dir="ltr" spellcheck="false" style="outline: none;"
214                                />
215                                <input id="siteSearchSubmitButton" type="image" alt="Search" title="Search" name="submit"
216                                        src="{$ibis.urlPrefix}image/clear.gif"
217                                />
218                                <input type="hidden" name="sitesearch" value="{$ibis.remoteURLPrefix}" title="site URL to be searched"/>
219                        </form>
220                </div>
221        </xsl:template>
222
223
224        <xsl:template name="MenuSelectionsList.columnsPanelAdditionalListItem">
225                <li id="userMenu" class="{if(ibis:hasAuthorities())then 'Click Secure' else 'Click'}"> 
226                        <xsl:call-template name="MenuSelectionsList.inputControl">
227                                <xsl:with-param name="inputID"    select="'userControl'"/>
228                                <xsl:with-param name="inputName"  select="'columnPanelControl'"/>
229                                <xsl:with-param name="inputType"  select="'radio'"/>
230                                <xsl:with-param name="inputClass" select="'Control'"/>
231                                <xsl:with-param name="title"      select="'My Data'"/>
232                        </xsl:call-template>
233
234                        <div class="Container">
235                                <div class="Content">
236                                        <xsl:if test="ibis:isAuthenticated()">
237                                                Welcome <xsl:value-of select="$ibis.userProfile/FULL_NAME"/><br/>
238                                                You are logged in as: <xsl:value-of select="$ibis.userProfile/ID"/><br/>
239                                                Click <a href="{$SiteSpecific.logoutURL}" title="Click
240                                                to log off">logoff</a> if you want to logoff or switch
241                                                to another user account.
242                                                <xsl:call-template name="SelectionsList.processSelections">
243                                                        <xsl:with-param name="selections" select="$SiteSpecific.siteAuthenticatedUserSelections"/>
244                                                </xsl:call-template>
245                                        </xsl:if>
246
247                                        <xsl:if test="not(ibis:isAuthenticated())">
248                                                You are not <a href="{$ibis.urlPrefix}user/Login.html">logged
249                                                in</a> as either an authorized partner dataset user or as
250                                                a self registered user.
251                                                <xsl:call-template name="SelectionsList.processSelections">
252                                                        <xsl:with-param name="selections" select="$SiteSpecific.siteNonAuthenticatedUserSelections"/>
253                                                </xsl:call-template>
254                                        </xsl:if>
255                                </div>
256                        </div>
257                </li>
258        </xsl:template>
259
260
261        <xsl:template name="Page.content" 
262                ibis:doc="Provides the adopter specific layout by overriding the standard
263                        content container. This layout consists of two columns.  With the left
264                        section calling the 'SiteSpecific.contextNavigation' template and the
265                        right column/section being the main content. 
266                "
267        >
268                <div id="content" cellpadding="0" cellspacing="0" border="0"
269                        summary="main content container"
270                        caption="main content container"
271                >
272                        <xsl:if test="exists($SiteSpecific.contextNavigationSelections/*)">
273                                <xsl:call-template name="SiteSpecific.contextNavigation"/>
274                        </xsl:if>
275
276                        <div class="Sections">
277                                <a name="sectionsContentJumpTo" title="ADA page main content jump to"/>
278                                <xsl:call-template name="Page.sectionsHeader"/>
279                                <xsl:call-template name="Page.sectionsContent"/>
280                                <xsl:call-template name="Page.sectionsFooter"/>
281                        </div>
282                </div>
283        </xsl:template>
284
285
286        <xsl:template name="SiteSpecific.contextNavigation"
287                ibis:doc="API type call that provides for dynamic custom context menus via
288                        overriding the template.  This template defaults to using the main
289                        SECTIONS/SECTION/SELECTIONS menu elements based on the current selected
290                        section name (variable SiteSpecific.siteNavigationMenuSelectedSectionName). 
291                        This template is called by the site specific html.contentContainer.  An
292                        example of an overridden custom context menu is the indicator profile.
293
294                        NOTE: when using the panel columns SELECTIONS/SELECTION structure the
295                        select needs to start one SELECTION/SELECTIONS level lower.
296                "
297        >
298                <div id="contextNavigation">
299                        <a name="contextNavigationMenuJumpTo" title="page's site navigation menu jump to"/>
300                        <xsl:call-template name="SelectionsList.processSelections">
301                                <xsl:with-param name="selections">
302                                        <xsl:choose>
303                                                <xsl:when test="count($SiteSpecific.contextNavigationSelections/SELECTION) != 0">
304                                                        <xsl:copy-of select="$SiteSpecific.contextNavigationSelections"/>
305                                                </xsl:when>
306                                                <xsl:when test="count($SiteSpecific.contextNavigationSelections/SELECTIONS) != 0">
307                                                        <SELECTION>
308                                                                <TITLE>Related Links</TITLE>
309                                                                <xsl:copy-of select="$SiteSpecific.contextNavigationSelections"/>
310                                                        </SELECTION>
311                                                </xsl:when>
312                                        </xsl:choose>
313                                </xsl:with-param>
314                                <xsl:with-param name="containerClass" select="'VerticalMenu ExpandableList RightControl'"/>
315                                <xsl:with-param name="controlType"    select="'checkbox'"/>
316                        </xsl:call-template>
317                </div>
318        </xsl:template>
319
320
321        <xsl:template name="Page.footer">
322                <div id="footer">
323
324                        <div class="Section">
325                                <h3>IBIS-PH</h3>
326                                <ul>
327                                        <li><a href="{$ibis.urlPrefix}about/ContactInformation.html">Contact Us</a></li>
328                                        <li><a href="{$ibis.urlPrefix}about/SiteMap.html">Site Map</a></li>
329                                        <li><a href="" onclick="window.open('?PrinterFriendly=x');">Printer Friendly</a></li>
330                                        <li><a href="{$ibis.urlPrefix}user/logout">Logout</a></li>
331                                </ul>
332                        </div>
333                        <div class="Section">
334                                <h3>DOH</h3>
335                                <ul>
336                                        <li><a href="http://health.utah.gov/index.html">DOH Home</a></li>
337                                        <li><a href="http://health.utah.gov/contact/index.html">Contact DOH</a></li>
338                                        <li><a href="http://health.utah.gov/about/index.html">A-Z List</a></li>
339                                        <li><a href="http://health.utah.gov/about/index.html">About Us</a></li>
340                                </ul>
341                        </div>
342                        <div class="Section">
343                                <h3>Legal</h3>
344                                <ul>
345                                        <li><a href="{$ibis.urlPrefix}about/WebCitation.html">Web Citation</a></li>
346                                        <li><a href="http://health.utah.gov/about/privacy.html">Privacy Policy</a></li>
347                                        <li><a href="http://health.utah.gov/about/disclaimer.html">Use Disclaimer</a></li>
348                                </ul>
349                        </div>
350                        <div class="Section">
351                                <h3>Other</h3>
352                                <ul>
353                                        <li><a href="http://www.utah.gov/">State Website</a></li>
354                                        <li><a href="http://epht.health.utah.gov/epht-view/" title="IBIS-PH is produced in collaboration with the Utah Environmental Public Health Tracking Program">EPHT Tracking Website</a></li>
355                                        <li><a href="http://www.ibisph.org/">IBIS-PH Community of Practice</a></li>
356                                </ul>
357
358                                <div class="SocialMedia">
359                                        <a href="#" onclick="window.print();return false;">
360                                                <img src="{$ibis.urlPrefix}image/icon/32/printer.gif"/>
361                                        </a>
362                                        <a href="javascript:window.open('http://www.facebook.com/sharer.php?url=' + location.href)" 
363                                                title="Share this page on Facebook" 
364                                                rel="nofollow" target="_blank">
365                                                <img typeof="foaf:Image" src="{$ibis.urlPrefix}image/icon/32/facebook-blue.png" 
366                                                alt="Facebook logo"/>
367                                        </a>
368                                        <a href="javascript:window.open('http://twitter.com/share?url=' + location.href)" 
369                                                title="Share this page on Twitter" 
370                                                rel="nofollow" target="_blank">
371                                                <img typeof="foaf:Image" src="{$ibis.urlPrefix}image/icon/32/twitter-blue.png" 
372                                                alt="Twitter logo"/>
373                                        </a>
374                                        <a href="javascript:window.open('https://plus.google.com/share?url=' + location.href)" 
375                                                title="Share this page on Google+" 
376                                                rel="nofollow" target="_blank">
377                                                <img typeof="foaf:Image" src="{$ibis.urlPrefix}image/icon/32/google_plus-red.png" 
378                                                alt="Google+ logo"/>
379                                        </a>
380                                        <a href="javascript:window.open('http://www.linkedin.com/shareArticle?url=' + location.href)" 
381                                                title="Share this page on LinkedIn" 
382                                                rel="nofollow" target="_blank">
383                                                <img typeof="foaf:Image" src="{$ibis.urlPrefix}image/icon/32/linkedin-blue.png" 
384                                                alt="LinkedIn logo"/>
385                                        </a>
386                                </div>
387                        </div>
388
389                        <div class="Bottom">
390                                <img src="{$ibis.urlPrefix}image/doh_logo_footer.png" 
391                                        onclick="javascript:location.href='http://health.utah.gov/'" title="UDOH Link"
392                                        alt="Department of Health Logo" 
393                                />
394
395                                <div>
396                                        The information published on this
397                                        website may be reproduced without permission. Please use the following
398                                        citation: &quot;Retrieved <xsl:value-of select="ibis:getFormattedDate(current-date())"/> 
399                                        from the Department of Health, Indicator-Based
400                                        Information System for Public Health Web site: http://ibis.health.gov&quot;
401                                        <xsl:if test="string-length($ibis.XMLModifedDate) != 0">
402                                                <div class="LastModified">Page Content Updated: <xsl:value-of select="$ibis.XMLModifedDate"/></div>
403                                        </xsl:if>
404                                </div>
405                        </div>
406                </div>
407
408                <!-- had to wrap a div within so FF would format correctly... -->
409                <div id="printPageFooter">
410                        <xsl:copy-of select="$SiteSpecific.printPageFooter"/>
411                </div>
412        </xsl:template>
413
414</xsl:stylesheet>
415<!-- ============================= End of File ============================= -->
416
Note: See TracBrowser for help on using the repository browser.