source: main/adopters/nm/branches/2.3/src/main/webapps/ibisph-view/xslt/html/SiteSpecific.xslt @ 12454

Last change on this file since 12454 was 12454, checked in by Paul Leo, 6 years ago

Garth fixed an issue with the SHOW flag in expandable Selections xslt code

File size: 19.0 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="ibis.adopterTitle" select="'New Mexico'"
33                ibis:doc="Value to be used when the XSLT code needs a title usage example
34                        is CP reports that compare community, state, and US.
35                "
36        />
37
38        <xsl:param name="Page.applicationTitle" select="'NM-IBIS'"
39                ibis:doc="Used for the page's title element prefix text."
40        />
41
42        <xsl:param name="SiteSpecific.siteNavigationSelectionsXMLFilePathAndName" 
43                select="concat($MenuSelectionsList.xmlFilePath, '/navigation/SiteNavigationSelections.xml')"
44        />
45
46        <xsl:param name="SiteSpecific.siteNavigationSelections"
47                ibis:doc="Menu XML document/elements which contains all the applicable
48                        'xincluded' sub files.  There are several ways to do this xinclude
49                        functionality.  1) two step process involving a Java code, 2) use
50                        an XSL processor that supports xinclude, 3) create a variable that
51                        contains the entire document fully processed.  The latter approach
52                        is used in this situation because the menu files are quite small and
53                        this option does not involve any outside dependence.  For performance
54                        xincludes might not be a good way to go but for maint it is a good
55                        solution."
56        >
57                <xsl:apply-templates select="document($SiteSpecific.siteNavigationSelectionsXMLFilePathAndName)/SELECTIONS/*" mode="ibis.copy"/>
58        </xsl:param>
59
60        <xsl:param name="PathSegments" select="'about'" ibis:doc="Passed from convention HTML_CONTENT type XSLT model map."/>
61        <xsl:param name="SiteSpecific.siteNavigationSelectedSelectionName" select="concat($PathSegments[1], 'Menu')"
62                ibis:doc="Used to reference the the context menu items."
63        />
64        <xsl:param name="SiteSpecific.navigationPathSelections"
65                ibis:doc="Default path segments for bread crumb trails..."
66        >
67                <xsl:for-each select="$PathSegments[position() != last()]">
68                        <SELECTION>
69                                <TITLE><xsl:value-of select="."/></TITLE>
70                                <LOCAL_URL><xsl:for-each select="$PathSegments[position() != last()]"><xsl:value-of select="."/><xsl:value-of select="if(position() != last()) then '/' else '.html'"/></xsl:for-each></LOCAL_URL>
71                        </SELECTION>
72                </xsl:for-each>
73        </xsl:param>
74
75
76        <xsl:param name="SiteSpecific.contextNavigationSelectionsXMLFilePathAndName" 
77                select="concat($MenuSelectionsList.xmlFilePath, '/navigation/', $PathSegments[1], 'ContextSelection.xml')"
78        />
79        <xsl:param name="SiteSpecific.contextNavigationSelections" 
80                ibis:doc="Default context menu - static site selections list associated
81                        with the current app module.  This param can be overridden for specific
82                        context menus e.g. indicator reports, phom reports, query builder/result
83                        etc.  This mechanism also allows the java controller to inject a custom
84                        built selections list.
85                "
86        >
87                <xsl:variable name="contextSelections">
88                        <xsl:apply-templates select="document($SiteSpecific.contextNavigationSelectionsXMLFilePathAndName)/*" mode="ibis.copy"/>
89                </xsl:variable>
90                <xsl:choose>
91                        <xsl:when test="count($contextSelections/*) != 0">
92                                <xsl:copy-of select="$contextSelections"/>
93                        </xsl:when>
94                        <xsl:otherwise>
95                                <xsl:copy-of select="$SiteSpecific.siteNavigationSelections/SELECTION[NAME = $SiteSpecific.siteNavigationSelectedSelectionName]/SELECTIONS/SELECTION"/>
96                        </xsl:otherwise>
97                </xsl:choose>
98        </xsl:param>
99
100       
101        <!--
102                select="/NULL_ELEMENT"
103-->
104
105        <xsl:param name="SiteSpecific.siteAuthenticatedUserSelectionXMLFilePathAndName" 
106                select="concat($MenuSelectionsList.xmlFilePath, '/navigation/AuthenticatedUserSelection.xml')"
107        />
108        <xsl:param name="SiteSpecific.siteNonAuthenticatedUserSelectionXMLFilePathAndName" 
109                select="concat($MenuSelectionsList.xmlFilePath, '/navigation/NonAuthenticatedUserSelection.xml')"
110        />
111        <xsl:param name="SiteSpecific.siteAuthenticatedUserSelections">
112                <xsl:apply-templates select="document($SiteSpecific.siteAuthenticatedUserSelectionXMLFilePathAndName)/SELECTION/SELECTIONS" mode="ibis.copy"/>
113        </xsl:param>
114        <xsl:param name="SiteSpecific.siteNonAuthenticatedUserSelections">
115                <xsl:apply-templates select="document($SiteSpecific.siteNonAuthenticatedUserSelectionXMLFilePathAndName)/SELECTION/SELECTIONS" mode="ibis.copy"/>
116        </xsl:param>
117
118
119        <xsl:param name="SiteSpecific.printPageFooter" 
120                ibis:doc="contents of the print footer to show if media=print"
121        >
122                        The information provided above is from the New Mexico Department of
123                        Health's NM-IBIS web site
124                        (http://ibis.health.state.nm.us).  The information published on this
125                        website may be reproduced without permission. Please use the following citation:
126                        &quot;Retrieved
127                        <xsl:value-of select="ibis:getFormattedDate(current-date())"/>
128                        from New Mexico Department of Health, Indicator-Based
129                        Information System for Public Health Web site: http://ibis.health.state.nm.us&quot;.
130
131                <xsl:if test="string-length($ibis.XMLModifedDate) != 0">
132                        <br/><br/>
133                        Content updated: <xsl:value-of select="$ibis.XMLModifedDate"/>
134                </xsl:if>
135        </xsl:param>
136
137
138        <xsl:param name="SiteSpecific.logoutURL" select="concat($ibis.urlPrefix, 'user/logout')"/>
139
140
141
142        <xsl:template name="Page.banner">
143                <div id="banner">
144                        <div class="DOHBanner">
145                                <a href="http://nmhealth.org/"></a>
146                                <ul>
147                                        <li><a href="http://nmhealth.org/">Home</a></li>
148                                        <li><a href="http://nmhealth.org/about/">About</a></li>
149                                        <li><a href="http://nmhealth.org/search/topic/">Topics</a></li>
150                                        <li><a href="http://nmhealth.org/publication/">Publications</a></li>
151                                        <li><a href="http://nmhealth.org/data/">Health Data</a></li>
152                                        <li><a href="http://nmhealth.org/event/">Events</a></li>
153                                        <li><a href="http://nmhealth.org/news/">News</a></li>
154                                        <li><a href="http://nmhealth.org/location/public/">Locations</a></li>
155                                        <li><a href="http://nmhealth.org/contact/emergency/">Contact</a></li>
156                                        <li><a href="http://nmhealth.org/resource/">Resources</a></li>
157                                        <li><a href="http://nmhealth.org/help/">Help</a></li>
158                                </ul>
159                        </div>
160                </div>
161        </xsl:template>
162
163
164        <xsl:template name="Page.header" 
165                ibis:doc="State IBIS-PH specific implementation of the 'html.header'
166                        API template.  This template provides the State and DOH banners via
167                        a siteSpecific.headerBanner template call and the blue IBIS-PH
168                        graphic with site navigation menus via the siteSpecific.siteNavigation
169                        template.  To turn off the banners, simply override it with nothing."
170        >
171                <div id="header">
172                        <div class="FluidContainer">
173                                <a href="{$ibis.urlPrefix}" title="Home link"
174                                        ><img src="{$ibis.urlPrefix}image/logo.png" alt="header home"/></a>
175
176                                <!-- Google Analytics -->
177                                <script>
178                                        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
179                                        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
180                                        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
181                                        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
182                 
183                                        ga('create', 'UA-5332517-8', 'auto');
184                                        ga('send', 'pageview');
185                 
186                                </script>
187                        </div>
188
189                        <div class="FluidContainer TitleContainer">
190                                <div class="Title">New Mexico's Indicator-Based Information System (NM-IBIS)
191                                        <div>...Monitoring New Mexico's Health</div>
192                                </div>
193
194                                <div id="navigationPath" title="Navigation path to get to this page.">
195                                        Path:
196                                        <xsl:call-template name="SelectionsList.processSelections">
197                                                <xsl:with-param name="selections">
198                                                        <SELECTION>
199                                                                <TITLE><xsl:value-of select="$Page.applicationTitle"/></TITLE>
200                                                                <URL><xsl:value-of select="$ibis.urlPrefix"/></URL>
201                                                        </SELECTION>
202                                                        <xsl:copy-of select="$SiteSpecific.navigationPathSelections"/>
203                                                </xsl:with-param>
204                                        </xsl:call-template>
205                                </div>
206                        </div>
207
208                        <xsl:call-template name="SiteSpecific.siteNavigation"/>
209                </div>
210        </xsl:template>
211
212
213        <xsl:template name="SiteSpecific.siteNavigation">
214                <div id="siteNavigation">
215                        <a name="siteNavigationMenuJumpTo" title="page's site navigation menu jump to"/>
216                        <xsl:call-template name="MenuSelectionsList.columnsPanel">
217                                <xsl:with-param name="selections"     select="$SiteSpecific.siteNavigationSelections"/>
218                                <xsl:with-param name="inputName"      select="'columnPanelControl'"/>
219                                <xsl:with-param name="containerClass" select="'HorizontalMenu HorizontalTabList'"/>
220                                <xsl:with-param name="selectedSelectionName" select="$SiteSpecific.siteNavigationSelectedSelectionName"/>
221                        </xsl:call-template>
222
223                        <a name="searchJumpTo"/>
224                        <form id="siteSearch" name="siteSearch" method="get" action="http://www.google.com/search">
225                                <label for="siteSearchInput" accesskey="s" class="Hidden">Search the site:</label>
226                                <input id="siteSearchInput" name="q" 
227                                        placeholder="Search this website..."
228                                        type="text" size="70" autocomplete="on"
229                                        dir="ltr" spellcheck="false" style="outline: none;"
230                                />
231                                <input id="siteSearchSubmitButton" type="image" alt="Search" title="Search" name="submit"
232                                        src="{$ibis.urlPrefix}image/clear.gif"
233                                />
234                                <input type="hidden" name="sitesearch" value="{$ibis.remoteURLPrefix}" title="site URL to be searched"/>
235                        </form>
236                </div>
237        </xsl:template>
238
239
240        <xsl:template name="MenuSelectionsList.columnsPanelAdditionalListItem">
241                <li id="userMenu" class="{if(ibis:hasAuthorities())then 'Click Secure' else 'Click'}"> 
242                        <xsl:call-template name="MenuSelectionsList.inputControl">
243                                <xsl:with-param name="inputID"    select="'userControl'"/>
244                                <xsl:with-param name="inputName"  select="'columnPanelControl'"/>
245                                <xsl:with-param name="inputType"  select="'radio'"/>
246                                <xsl:with-param name="inputClass" select="'Control'"/>
247                                <xsl:with-param name="title"      select="'My Data'"/>
248                        </xsl:call-template>
249
250                        <div class="Container">
251                                <div class="Content">
252                                        <xsl:if test="ibis:isAuthenticated()">
253                                                Welcome <xsl:value-of select="$ibis.userProfile/FULL_NAME"/><br/>
254                                                You are logged in as: <xsl:value-of select="$ibis.userProfile/ID"/><br/>
255                                                Click <a href="{$SiteSpecific.logoutURL}" title="Click
256                                                to log off">logoff</a> if you want to logoff or switch
257                                                to another user account.
258                                                <xsl:call-template name="SelectionsList.processSelections">
259                                                        <xsl:with-param name="selections" select="$SiteSpecific.siteAuthenticatedUserSelections"/>
260                                                </xsl:call-template>
261                                        </xsl:if>
262
263                                        <xsl:if test="not(ibis:isAuthenticated())">
264                                                You are not <a href="{$ibis.urlPrefix}user/Login.html">logged
265                                                in</a> as either an authorized partner dataset user or as
266                                                a self registered user.
267                                                <xsl:call-template name="SelectionsList.processSelections">
268                                                        <xsl:with-param name="selections" select="$SiteSpecific.siteNonAuthenticatedUserSelections"/>
269                                                </xsl:call-template>
270                                        </xsl:if>
271                                </div>
272                        </div>
273                </li>
274        </xsl:template>
275
276
277        <xsl:template name="Page.content" 
278                ibis:doc="Provides the adopter specific layout by overriding the standard
279                        content container. This layout consists of two columns.  With the left
280                        section calling the 'SiteSpecific.contextNavigation' template and the
281                        right column/section being the main content. 
282                "
283        >
284                <div id="content" cellpadding="0" cellspacing="0" border="0"
285                        summary="main content container"
286                        caption="main content container"
287                >
288                        <xsl:if test="exists($SiteSpecific.contextNavigationSelections/*)">
289                                <xsl:call-template name="SiteSpecific.contextNavigation"/>
290                        </xsl:if>
291
292                        <div class="Sections">
293                                <a name="sectionsContentJumpTo" title="ADA page main content jump to"/>
294                                <xsl:call-template name="Page.sectionsHeader"/>
295                                <xsl:call-template name="Page.sectionsContent"/>
296                                <xsl:call-template name="Page.sectionsFooter"/>
297                        </div>
298                </div>
299        </xsl:template>
300
301
302        <xsl:template name="SiteSpecific.contextNavigation"
303                ibis:doc="API type call that provides for dynamic custom context menus via
304                        overriding the template.  This template defaults to using the main
305                        SECTIONS/SECTION/SELECTIONS menu elements based on the current selected
306                        section name (variable SiteSpecific.siteNavigationMenuSelectedSectionName). 
307                        This template is called by the site specific html.contentContainer.  An
308                        example of an overridden custom context menu is the indicator profile.
309
310                        NOTE: when using the panel columns SELECTIONS/SELECTION structure the
311                        select needs to start one SELECTION/SELECTIONS level lower.
312                "
313        >
314                <div id="contextNavigation">
315                        <a name="contextNavigationMenuJumpTo" title="page's site navigation menu jump to"/>
316                        <xsl:call-template name="SelectionsList.processSelections">
317                                <xsl:with-param name="selections">
318                                        <xsl:choose>
319                                                <xsl:when test="count($SiteSpecific.contextNavigationSelections/SELECTION) != 0">
320                                                        <xsl:copy-of select="$SiteSpecific.contextNavigationSelections"/>
321                                                </xsl:when>
322                                                <xsl:when test="count($SiteSpecific.contextNavigationSelections/SELECTIONS) != 0">
323                                                        <SELECTION>
324                                                                <TITLE>Page Options</TITLE>
325                                                                <xsl:copy-of select="$SiteSpecific.contextNavigationSelections"/>
326                                                        </SELECTION>
327                                                </xsl:when>
328                                        </xsl:choose>
329                                </xsl:with-param>
330                                <xsl:with-param name="containerClass" select="'VerticalMenu ExpandableList RightControl'"/>
331                                <xsl:with-param name="controlType"    select="'checkbox'"/>
332                        </xsl:call-template>
333                </div>
334        </xsl:template>
335
336
337        <xsl:template name="Page.footer"
338                ibis:doc="Contains State specific footer definitions.  Note that there are
339                        two blocks listed.  One MUST always be hidden.  If printing then hide
340                        the standard page footer and show the print version.  If not printing
341                        then hide the print version and display the standard - this is all
342                        controlled via CSS and the print media type."
343        >
344                <div id="footer">
345
346                        <div class="Section">
347                                <h3>NM IBIS</h3>
348                                <ul>
349                                        <li><a href="{$ibis.urlPrefix}about/ContactInformation.html">Contact Us</a></li>
350                                        <li><a href="{$ibis.urlPrefix}about/SiteMap.html">Site Map</a></li>
351                                        <li><a href="" onclick="window.open('?PrinterFriendly=x');">Printer Friendly</a></li>
352                                        <li><a href="{$ibis.urlPrefix}user/logout">Logout</a></li>
353                                </ul>
354                        </div>
355                        <div class="Section">
356                                <h3>NM DOH</h3>
357                                <ul>
358                                        <li><a href="http://nmhealth.org/">NM-DOH Home</a></li>
359                                        <li><a href="http://nmhealth.org/contact/general">Contact NM-DOH</a></li>
360                                        <li><a href="mailto:DOH-Webmaster@state.nm.us">Email NM-DOH</a></li>
361                                        <li><a href="http://nmhealth.org//search/topic">Topics A-Z</a></li>
362                                </ul>
363                        </div>
364                        <div class="Section">
365                                <h3>Legal</h3>
366                                <ul>
367                                        <li><a href="{$ibis.urlPrefix}about/WebCitation.html">Web Citation</a></li>
368                                        <li><a href="http://nmhealth.org/help/privacy">Privacy</a></li>
369                                        <li><a href="http://nmhealth.org/help/disclaimer">Use Disclaimer</a></li>
370                                </ul>
371                        </div>
372                        <div class="Section">
373                                <h3>Other</h3>
374                                <ul>
375                                        <li><a href="http://www.newmexico.gov/">State of NM Website</a></li>
376                                        <li><a href="http://nmtracking.org" title="NM-IBIS is produced in collaboration with the New Mexico Environmental Public Health Tracking Program">NM EPHT Tracking Website</a></li>
377                                        <li><a href="http://www.ibisph.org/">IBIS-PH Community of Practice</a></li>
378                                </ul>
379
380                                <div class="SocialMedia">
381                                        <a href="#" onclick="window.print();return false;">
382                                                <img src="{$ibis.urlPrefix}image/icon/32/printer.gif"/>
383                                        </a>
384                                        <a href="http://www.youtube.com/user/nmhealth" target="_blank">
385                                                <img src="{$ibis.urlPrefix}image/icon/32/YouTube.png" alt=""/>
386                                        </a>
387                                        <a href="https://twitter.com/nmdoh" target="_blank">
388                                                <img src="{$ibis.urlPrefix}image/icon/32/twitter-blue.png" alt=""/>
389                                        </a>
390                                        <a href="https://www.facebook.com/nmdoh" target="_blank">
391                                                <img src="{$ibis.urlPrefix}image/icon/32/facebook-blue.png" alt=""/>
392                                        </a>
393                                        <a href="https://plus.google.com/+nmhealth" target="_blank" rel="publisher">
394                                                <img src="{$ibis.urlPrefix}image/icon/32/google_plus-red.png" alt=""/>
395                                        </a>
396                                </div>
397                        </div>
398
399                        <div class="Bottom">
400                                <img src="{$ibis.urlPrefix}image/DOHLogo.png" 
401                                        onclick="javascript:location.href='http://nmhealth.org'" title="NM-DOH Link"
402                                        alt="New Mexico Department of Health Logo" 
403                                />
404
405                                <div>
406                                        The information published on this
407                                        website may be reproduced without permission. Please use the following
408                                        citation: &quot;Retrieved <xsl:value-of select="ibis:getFormattedDate(current-date())"/> 
409                                        from New Mexico Department of Health, Indicator-Based
410                                        Information System for Public Health Web site: http://ibis.health.state.nm.us&quot;
411                                        <xsl:if test="string-length($ibis.XMLModifedDate) != 0">
412                                                <div class="LastModified">Page Content Updated: <xsl:value-of select="$ibis.XMLModifedDate"/></div>
413                                        </xsl:if>
414                                </div>
415                        </div>
416                </div>
417
418                <!-- had to wrap a div within so FF would format correctly... -->
419                <div id="printPageFooter">
420                        <xsl:copy-of select="$SiteSpecific.printPageFooter"/>
421                </div>
422        </xsl:template>
423
424       
425        <xsl:template name="SelectionsList.processExpandableSelection"
426                ibis:doc="TEMP FIX UNTIL MOVE TO 3.0"
427        >
428                <xsl:param name="selection"/>
429                <xsl:param name="title"     select="$selection/TITLE"/>
430                <xsl:param name="inputType" select="'checkbox'"/>
431                <xsl:param name="inputName"/>
432                <xsl:param name="href"/>
433                <xsl:param name="id"        select="concat('ExpandableListInputControl.', generate-id(.))"/>
434                <xsl:param name="show"/>
435
436                <input id="{$id}" type="{$inputType}" title="Show/hide selection list control for {$title}">
437                        <xsl:if test="string-length($inputName) != 0">
438                                <xsl:attribute name="name" select="$inputName"/>
439                        </xsl:if>
440                        <xsl:if test="$show or exists($selection/SELECTIONS/SHOW)">
441                                <xsl:attribute name="checked" select="'checked'"/>
442                        </xsl:if>
443                </input>
444
445                <label for="{$id}" title="{if($href &gt; '')then concat('link to ', $title) else concat('show/hide the ', $title, ' selection list')}">
446                        <xsl:call-template name="SelectionsList.processSelection">
447                                <xsl:with-param name="selection" select="$selection"/>
448                                <xsl:with-param name="href"      select="$href"/>
449                        </xsl:call-template>
450                </label>
451
452        </xsl:template>
453       
454</xsl:stylesheet>
455<!-- ============================= End of File ============================= -->
456
Note: See TracBrowser for help on using the repository browser.