source: main/trunk/ibisph-view/src/main/webapp/xslt/html/community/facts/Page.xslt @ 19798

Last change on this file since 19798 was 19798, checked in by GarthBraithwaite_STG, 3 years ago

view - topic content updated for structure. NM resource html content files added. newer kendo fonts. more Panellist to megamenu and popup css updates. Some rem vs em css updates. Processing of content through ibis.copy.

File size: 11.7 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2
3<xsl:stylesheet version="3.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<!-- garth todo:
10        <xsl:import href="../../../json/Dataset.xslt"/>
11        <xsl:import href="../../../json/Kendo.xslt"/>
12-->
13        <xsl:import href="../../HTMLContentPage.xslt"/>
14        <xsl:import href="../Page.xslt"/>
15        <xsl:import href="SiteSpecific.xslt"/>
16
17
18        <ibis:doc>
19                <name>html/community/facts/Page</name>
20                <summary>
21                        Provides the Special Introduction Overrides to be able to process
22                        both the community dimension file and the 'HTML_CONTENT' file to
23                        produce the intro/quick facts page.
24                </summary>
25                <description>
26                </description>
27        </ibis:doc>
28
29
30        <xsl:param name="ShowMap" select="false"/>
31
32
33        <xsl:param name="Page.pageTitle" ibis:doc="Page's browser title text."
34                select="concat(Page.communityTitle, ' Facts')"
35        />
36        <xsl:param name="Page.contentTitle" ibis:doc="Page's content title text."
37                select="concat('Facts for ', $Page.communityTitle)"
38        />
39
40        <xsl:param name="Page.communityTitle" ibis:doc="Page's community title text."
41                select="concat(
42                        $Page.communityDimensionValue/TITLE,
43                        ' ',
44                        ibis:getDimensionTitle($Page.communityDimension)
45                )"
46        />
47
48
49        <xsl:variable name="Page.demographicPublishedIndicators" select="document( ibis:getContentPath('xml/indicator/published_indicators.xml'), /)//PUBLISHED_INDICATOR[DEMOGRAPHIC_FLAG = 'x']"/>
50        <xsl:variable name="Page.communityDemographicPublishedIndicators" select="$Page.demographicPublishedIndicators//DIMENSION_COMBINATION[(DIMENSION_1/NAME = $Page.dimensionName) and not(DIMENSION_2)]"/>
51
52
53
54        <xsl:template name="Page.contentBody" ibis:doc="HTML API template implementation
55                that provides main HTML body content for the page.  Defaults to copying
56                all elements and attributes of the the 'HTML_CONTENT/CONTENT' element."
57        >
58<style>
59        .Overview
60        {
61                max-width: 60%;
62                min-width: 300px;
63        }
64        .Overview img
65        {
66                display: inline-block;
67                float: left;
68                padding-right: 1rem;
69        }
70
71        .Overview, .GoogleMap {display: inline-block;}
72        .GoogleMap
73        {
74                max-width: 35%;
75                min-width: 350px;
76                padding: 0 2rem 0 2rem;
77        }
78
79        table.Info, .Note
80        {
81                margin-top: 1.5rem;
82        }
83        .Note ul
84        {
85                list-style: none;
86        }
87</style>
88
89                <!-- The content file contains elements that control demographic and
90                        IP set bar charts etc.
91                -->
92                <xsl:apply-templates select="HTML_CONTENT/CONTENT/(text() | *)" mode="ibis.copy"/>
93
94                <!-- standard end of page content that doesn't need to be repeated in
95                        the content file.
96                -->
97                <div class="Note">
98                        <h3>Data Sources and Limitations</h3>
99                        <ul>
100                                <li><sup class="Bold">¥</sup> IHS Final User Population Estimate-FY2013 memo 12/20/2013</li>
101                                <li><sup class="Bold">±</sup> Based on information extracted from the Tribe's
102                                        electronic health record management system may not be a true
103                                        reflection of all the Tribal members that reside in the Tribe's
104                                        CHSDA.
105                                </li>
106                                <li><sup class="Bold">*</sup> US Census Bureau data used to generate the data.
107                                        Compares AI/AN alone, AI/AN alone or in combination with other
108                                        races, and White non-Hispanic groups at the CHSDA county level.
109                                        US Census Bureau Data are self-reported and not collected based
110                                        on Tribal membership.
111                                </li>
112                                <li><sup class="Bold">^</sup> Represents the All Races Population within counties
113                                        that make up the Tribe's CHSDA. Centers for Disease Control and
114                                        Prevention, National Center for Health Statistics. Compressed
115                                        Death File 1999-2009. CDC WONDER Online Database, compiled from
116                                        Compressed Death File 1999-2009 Series 20 No. 2O, 2012. Accessed
117                                        at <a href="http:/ABM/wonder.cdc.gov/cmf-icd10.html">http:/ABM/wonder.cdc.gov/cmf-icd10.html</a>
118                                        on Jan 4, 2013 10:09:58 AM
119                                </li>
120                        </ul>
121                </div>
122
123        </xsl:template>
124
125
126
127        <xsl:template match="ibis:Page.demographicIndicators" mode="ibis.copy">
128
129                <table class="Info" title="table of demographics for this community">
130                        <thead><tr>
131                                <th>Demographics</th>
132                                <th class="Value"><xsl:value-of select="$Page.communityTitle"/></th>
133                                <th class="Value"><xsl:value-of select="$Page.stateTitle"/></th>
134                                <th class="Value">U.S.</th>
135                        </tr></thead>
136
137                        <xsl:for-each select="$Page.demographicPublishedIndicators">
138                                <xsl:sort select="SORT_ORDER" data-type="number" order="ascending"/>
139                                <xsl:sort select="NAME" data-type="text" order="ascending"/>
140
141                                <xsl:variable name="indicator" select="document(concat($Page.indicatorProfileXMLFilePath, '/', NAME, '.xml'), /)/INDICATOR"/>
142                                <xsl:variable name="indicatorComparisonValues">
143                                        <xsl:call-template name="ComparisonValues.getIndicatorStateUSComparisonValues">
144                                                <xsl:with-param name="indicator"  select="$indicator"/>
145                                                <xsl:with-param name="dimensions" select="$Page.dimensions"/>
146                                                <xsl:with-param name="measures"   select="$Page.measures"/>
147                                                <xsl:with-param name="valueTypes" select="$Page.valueTypes"/>
148                                                <xsl:with-param name="communityDimensionName"  select="$Page.dimensionName"/>
149                                                <xsl:with-param name="communityDimensionValue" select="$Page.dimensionValue"/>
150                                        </xsl:call-template>
151                                </xsl:variable>
152
153<xsl:message select="concat('============indicatorComparisonValues:', NAME, ', indicatorComparisonValues below:')"/>
154<xsl:message select="$indicatorComparisonValues"/>
155
156                        <tr class="Value">
157                                <th><xsl:value-of select="$indicator/TITLE"/> (<xsl:value-of select="$indicatorComparisonValues/PERIOD_DIMENSION/VALUE/TITLE"/>) </th>
158                                <td><xsl:value-of select="$indicatorComparisonValues/COMMUNITY/VALUE/TITLE"/></td>
159                                <td><xsl:value-of select="$indicatorComparisonValues/STATE/VALUE/TITLE"/></td>
160                                <td><xsl:value-of select="$indicatorComparisonValues/US/VALUE/TITLE"/>
161<!-- xsl:copy-of select="$indicatorComparisonValues"/ -->
162
163                                </td>
164                        </tr>
165                </xsl:for-each>
166                </table>
167        </xsl:template>
168
169
170
171
172        <xsl:template match="ibis:Page.indicatorsChart" mode="ibis.copy">
173                <xsl:param name="chartName"   select="CHART_NAME"/>
174                <xsl:param name="measureName" select="MEASURE_NAME"/>
175                <xsl:param name="indicatorSetName" select="INDICATOR_SET_NAME"/>
176
177                <xsl:apply-templates select="HEADER_CONTENT/*" mode="ibis.copy"/>
178                <div class="Graphic">
179                        <h3><xsl:value-of select="TITLE"/></h3>
180                        <div id="{GRAPHIC_ID}" class="{GRAPHIC_CSS_CLASS}">
181                        </div>
182                </div>
183                <xsl:apply-templates select="FOOTER_CONTENT/*" mode="ibis.copy"/>
184
185
186                <xsl:variable name="indicatorSet" select="document( ibis:getContentPath('xml/indicator/indicator_sets.xml'), /)//INDICATOR_SET[NAME = $Page.indicatorSetName]"/>
187                <xsl:variable name="values">
188                        <xsl:for-each select="$indicatorSet/INDICATOR_TO_INDICATOR_SETS/INDICATOR_TO_INDICATOR_SET/INDICATOR_NAME">
189                                <xsl:sort select="SORT_ORDER" data-type="number" order="ascending"/>
190                                <xsl:sort select="INDICATOR_NAME" data-type="text" order="ascending"/>
191
192                                <xsl:call-template name="indicatorProfileRow">
193                                        <xsl:with-param name="indicatorName" select="current()"/>
194                                        <xsl:with-param name="measureName"  select="/HTML_CONTENT/PARAMETERS/PARAMETER[NAME='MeasureName']/VALUE"/>
195                                </xsl:call-template>
196                        </xsl:for-each>
197                </xsl:variable>
198
199                <xsl:variable name="communityCSV">
200                        <xsl:for-each select="$values/INDICATOR_RECORD/COMMUNITY/VALUE/text()">
201                                <xsl:if test="position() != 1">, </xsl:if>
202                                <xsl:value-of select="."/>
203                        </xsl:for-each>
204                </xsl:variable>
205                <xsl:variable name="stateCSV">
206                        <xsl:for-each select="$values/INDICATOR_RECORD/STATE/VALUE/text()">
207                                <xsl:if test="position() != 1">, </xsl:if>
208                                <xsl:value-of select="."/>
209                        </xsl:for-each>
210                </xsl:variable>
211                <xsl:variable name="usCSV">
212                        <xsl:for-each select="$values/INDICATOR_RECORD/US/VALUE/text()">
213                                <xsl:if test="position() != 1">, </xsl:if>
214                                <xsl:value-of select="."/>
215                        </xsl:for-each>
216                </xsl:variable>
217
218                <xsl:variable name="indicatorTitleCSV">
219                        <xsl:for-each select="$values/INDICATOR_RECORD/TITLE">
220                                <xsl:if test="position() != 1">, </xsl:if>
221                                "<xsl:value-of select="."/>"
222                        </xsl:for-each>
223                </xsl:variable>
224
225                <script>
226                        var kendoChartConstructorJSON = $.extend(true
227                                ,{}
228                                ,<xsl:call-template name="Kendo.namedConfigurationJSON">
229                                        <xsl:with-param name="configurationName" select="/HTML_CONTENT/PARAMETERS/PARAMETER[NAME='ChartName']/VALUE"/>
230                                </xsl:call-template>
231                                ,{
232                                        "title":
233                                        {
234                                                "text": "<xsl:value-of select="$indicatorSet/TITLE"/>"
235                                        }
236                                        ,"series":
237                                        [
238                                                {
239                                                        "name": "<xsl:value-of select="distinct-values($values/INDICATOR_RECORD/COMMUNITY/TITLE)"/>"
240                                                        ,"data": [<xsl:value-of select="$communityCSV"/>]
241                                                }
242                                                ,{
243                                                        "name": "<xsl:value-of select="distinct-values($values/INDICATOR_RECORD/STATE/TITLE)"/>"
244                                                        ,"data": [<xsl:value-of select="$stateCSV"/>]
245                                                }
246                                                ,{
247                                                        "name": "<xsl:value-of select="distinct-values($values/INDICATOR_RECORD/US/TITLE)"/>"
248                                                        ,"data": [<xsl:value-of select="$usCSV"/>]
249                                                }
250                                        ]
251                                        ,"valueAxis":
252                                        {
253                                                "title": {"text": "<xsl:value-of select="$values/INDICATOR_RECORD[1]/MEASURE/TITLE"/>"}
254                                        }
255                                        ,"categoryAxis":
256                                        {
257                                                "categories": [<xsl:value-of select="$indicatorTitleCSV"/>]
258                                        }
259                                }
260                        );
261
262                        $(document).ready(
263                                function()
264                                {
265                                        console.log(kendoChartConstructorJSON);
266                                        $("#chart").kendoChart(kendoChartConstructorJSON);
267                                }
268                        );             
269           </script>
270
271        </xsl:template>
272
273
274
275        <xsl:template name="indicatorProfileRow"
276                ibis:doc="Handles the xml/community/DIMENSION.xml type file.  Which is of
277                        the struct: COMMUNITY_PROFILE, OVERVIEWS, DIMENSION, INDICATOR_PROFILES
278                        /INDICATOR_PROFILE/COMPARATIVE_VALUES/COMPARATIVE_VALUE/ TYPE, SERIES,
279                        CAT.
280                "
281        >
282                <xsl:param name="indicatorName"/>
283                <xsl:param name="indicator" select="document(concat($Page.indicatorProfileXMLFilePath, '/', $indicatorName, '.xml'), /)/INDICATOR"/>
284                <xsl:param name="measureName"/>
285
286                <xsl:if test="not($indicator/*)"><xsl:message select="concat('IP NOT FOUND: ', $indicatorName)"/></xsl:if>
287                <xsl:if test="$indicator/*">
288                        <xsl:variable name="indicatorComparisonValues">
289                                <xsl:call-template name="ComparisonValues.getIndicatorStateUSComparisonValues">
290                                        <xsl:with-param name="indicator"  select="$indicator"/>
291                                        <xsl:with-param name="communityDimensionName"  select="$Page.dimensionName"/>
292                                        <xsl:with-param name="communityDimensionValue" select="$Page.dimensionValue"/>
293                                        <xsl:with-param name="measureName"/>
294                                        <xsl:with-param name="dimensions" select="$Page.dimensions"/>
295                                        <xsl:with-param name="measures"   select="$Page.measures"/>
296                                        <xsl:with-param name="valueTypes" select="$Page.valueTypes"/>
297                                </xsl:call-template>
298                        </xsl:variable>
299
300                        <xsl:if test="$indicatorComparisonValues/*">
301                                <INDICATOR_RECORD>
302                                        <xsl:copy-of select="$indicator/TITLE"/>
303                                        <xsl:copy-of select="$indicatorComparisonValues"/>
304                                </INDICATOR_RECORD>
305                        </xsl:if>
306                </xsl:if>
307        </xsl:template>
308
309
310        <xsl:template match="ibis:Page.indicatorSetsSelection" mode="ibis.copy">
311GARTH: <xsl:value-of select="$Page.indicatorSetName"/>
312                <select name="indicatorSetName" id="indicatorSetName" 
313                        onchange="requestDifferentIndicatorSet()"
314                >
315                        <xsl:for-each select="$Page.communityIndicatorSet">
316                                <xsl:sort select="SORT_ORDER" data-type="number" order="ascending"/>
317                                <xsl:sort select="TITLE" order="ascending"/>
318                                <option value="{NAME}">
319                                        <xsl:if test="NAME = $Page.indicatorSetName">
320                                                <xsl:attribute name="selected" select="'selected'"/>
321                                        </xsl:if>
322                                        <xsl:value-of select="TITLE"/>
323                                </option>
324                        </xsl:for-each>
325                </select>
326        </xsl:template>
327
328</xsl:stylesheet>
329<!-- ============================= End of File ============================= -->
Note: See TracBrowser for help on using the repository browser.