source: main/adopters/hi/branches/2.3/src/main/webapps/ibisph-view/xslt/html/query/module/result/interactive/SiteSpecific.xslt @ 21049

Last change on this file since 21049 was 21049, checked in by Paul Leo, 2 months ago

Hawaii Query Results xslt files
Death queries were giving errors when displaying by geography but choosing State Geos.
Move the test to not display maps when Geo was the display by, but the value was a State overall/occurence/etc.
In order to make the fix, I had to version Interactive.xslt. In order to update, first rename Interactive.xslt to Interactive.Core.xslt and then update ibisph-view/xslt/html/query/module/result/interactive directory.

File size: 16.7 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        <xsl:import href="../SiteSpecific.xslt"/>
10
11        <ibis:doc>
12                <name>html/query/result/interactive/SiteSpecific</name>
13                <summary>Provides adopter 'query/result' site specific template overrides</summary>
14                <description>
15                        Provides an overridden 'siteSpecific.topMenu'
16                        API template call so that the banner can be turned off.  This
17                        template also includes the 'css/query.css' links and other adopter specific
18                        code.
19                </description>
20
21                <author>Garth Braithwaite</author>
22                <company>Software Technology Group/CDC/Utah Department of Health</company>
23        </ibis:doc>
24
25
26        <!-- ~~~~~~~~~~~~~~~~~~~~~~~ PARAMS / VARIABLES ~~~~~~~~~~~~~~~~~~~~~~~~ -->
27        <xsl:param name="SiteSpecific.contextNavigationSelections"
28                ibis:doc="Query Result left nav menu - specific to the current module config."
29        >
30                <SELECTIONS>
31                        <TITLE>Result Options</TITLE>
32
33                        <SELECTION>
34                                <URL><xsl:value-of select="$SiteSpecific.builderURL"/></URL>
35                                <DESCRIPTION>Not seeing what you want? Click this to go to the query builder page.</DESCRIPTION>
36                                <TITLE>Modify Query Definition</TITLE>
37                        </SELECTION>
38
39                <xsl:if test="not($Result.configuration/CRITERIA/EXCLUDE/CHART_NAMES/ALL_FLAG)">
40                        <SELECTION>
41                                <DESCRIPTION>Display Chart</DESCRIPTION>
42                                <TITLE>Chart Options</TITLE>
43                                <SELECTIONS>
44                                        <xsl:for-each select="$Page.charts/CHART[
45                                                (NAME != $Result.queryModule/REQUEST/CHART_NAME) and
46                                                not(NAME = $Result.configuration/CRITERIA/EXCLUDE/CHART_NAMES/CHART_NAME)]"
47                                        >
48                                                <xsl:sort select="SORT_ODRER" order="ascending" data-type="number"/>
49
50                                                <SELECTION>
51                                                        <URL>?ChartName=<xsl:value-of select="NAME"/></URL>
52                                                        <DESCRIPTION>Display the data in a <xsl:value-of select="TITLE"/> chart graph</DESCRIPTION>
53                                                        <TITLE><xsl:value-of select="TITLE"/></TITLE>
54                                                </SELECTION>
55                                        </xsl:for-each>
56                                </SELECTIONS>
57                        </SELECTION>
58                </xsl:if>
59                <!-- HAWAII MODS - 31Aug2015 - Not wanting alternate measures
60                <xsl:if test="(count($Page.displayableMeasures) &gt; 1)">
61                        <SELECTION>
62                                <DESCRIPTION>Select different data measure</DESCRIPTION>
63                                <TITLE>Alternate Values</TITLE>
64                                <SELECTIONS>
65                                        <xsl:for-each select="$Page.displayableMeasures">
66
67                                                <xsl:if test="current()/NAME != /QUERY_MODULE/REQUEST/MEASURE_NAME">
68                                                        <SELECTION>
69                                                                <URL>?MeasureName=<xsl:value-of select="NAME"/></URL>
70                                                                <DESCRIPTION>Display the <xsl:value-of select="TITLE"/> data measure</DESCRIPTION>
71                                                                <TITLE><xsl:value-of select="TITLE"/></TITLE>
72                                                        </SELECTION>
73                                                </xsl:if>
74                                        </xsl:for-each>
75                                </SELECTIONS>
76                        </SELECTION>
77                </xsl:if>
78                -->
79                        <SELECTION>
80                                <URL><xsl:value-of select="concat($ibis.urlPrefix, /QUERY_MODULE/QUERY_CONFIGURATION_SELECTION/LOCAL_URL)"/></URL>
81                                <DESCRIPTION>Choose different query dataset/indicator.</DESCRIPTION>
82                                <TITLE>Select Different Indicator</TITLE>
83                        </SELECTION>
84
85                        <SELECTION>
86                                <URL><xsl:value-of select="concat($ibis.urlPrefix, 'query/result/', /QUERY_MODULE/REQUEST/CONFIGURATION_PATH, '.html?Reload=x')"/></URL>
87                                <DESCRIPTION>Runs the query using default criteria.</DESCRIPTION>
88                                <TITLE>Reset Query Definition</TITLE>
89                        </SELECTION>
90
91                        <SELECTION>
92                                <URL><xsl:value-of select="concat($ibis.urlPrefix, 'query/definition/from/result')"/></URL>
93                                <DESCRIPTION>Click this button to define a saved query result definition.</DESCRIPTION>
94                                <TITLE>Save Query Definition</TITLE>
95                        </SELECTION>
96                        <SELECTION>
97                                <URL><xsl:value-of select="concat($ibis.urlPrefix, 'query/definition/index/MyDefinitions.html')"/></URL>
98                                <DESCRIPTION>Click this button to access all query definitions.</DESCRIPTION>
99                                <TITLE>My Saved Query Definitions</TITLE>
100                        </SELECTION>
101
102                        <SELECTION>
103                                <URL>
104                                        <xsl:value-of select="concat(replace($Result.resultURL, '.html', '.xls'), '?PrinterFriendly=x&amp;ShowDimensionValues=', $ShowDimensionValues)"/>
105                                </URL>
106                                <DESCRIPTION>Click this button to have this page automatically put into Microsoft Excel.</DESCRIPTION>
107                                <TITLE>Export to Excel</TITLE>
108                        </SELECTION>
109                        <SELECTION>
110                                <URL><xsl:value-of select="concat($ibis.urlPrefix, 'query/configuration/', /QUERY_MODULE/REQUEST/CONFIGURATION_PATH, '.xml')"/></URL>
111                                <DESCRIPTION>Click this button to get the raw module data as XML.</DESCRIPTION>
112                                <TITLE>View Query Definition XML</TITLE>
113                        </SELECTION>
114
115                </SELECTIONS>
116        </xsl:param>
117       
118        <!-- HAWAII MOD - PGL 10/20/2016 - CHANGE DEFAULT VALUE of UCI and LCI if they don't exist from 'none' to 'n/a' -->
119
120        <xsl:template name="Interactive.queryResultDataArrayJSON"
121                ibis:doc="Produces an query result javascript data list.
122                        NOTES:
123                        - Missing values must be coded as 'null' - blank does not work.
124                        - * and ** will be coded as 99999 for now???
125                        - Loop for all geo dimension records
126                        - If different group by's besides the one geo dim then need to grab the
127                                total dim. 
128                "
129        >
130                <xsl:param name="queryModule"/>
131                <xsl:param name="cleanedNameAndActualNameDimensions"/>
132                <xsl:param name="measures"/>
133                <xsl:param name="distinctRecordDimensionValues" select="distinct-values($queryModule/IBISQ_QUERY_RESULT/RECORDS//DIMENSIONS/DIMENSION/VALUE/text())"/>
134
135<xsl:text>[</xsl:text>
136                <xsl:for-each select="$queryModule/IBISQ_QUERY_RESULT/RECORDS/RECORD[not(DIMENSIONS/DIMENSION/VALUE/text() = '.')]">
137                        <xsl:variable name="record" select="."/>
138                        <xsl:variable name="rowID"  select="position()"/>
139                        <xsl:if test="position() != 1">,</xsl:if>{
140        rowID:<xsl:value-of select="$rowID"/>
141                        <xsl:for-each select="$record/DIMENSIONS/DIMENSION[NAME = $cleanedNameAndActualNameDimensions/DIMENSION/ACTUAL_NAME]">
142                                <xsl:variable name="dimension"      select="$cleanedNameAndActualNameDimensions/DIMENSION[ACTUAL_NAME = current()/NAME]"/>
143                                <xsl:variable name="dimensionValue" select="$dimension/VALUES/VALUE[text() = current()/VALUE/text()]"/>
144<!--
145<xsl:message select="concat('record dim value: ', VALUE/text(), ', index of: ', index-of($distinctRecordDimensionValues, VALUE/text()))"/>
146-->
147                                <xsl:if test="(string-length($dimensionValue) = 0) and not($dimension/DYNAMIC_VALUES_FLAG)">
148                                        <xsl:message>
149                                                WARNING: Query result record dimension name <xsl:value-of select="current()/NAME"/> 
150                                                with value: <xsl:value-of select="current()/VALUE/text()"/> does NOT have a matching DIMENSION//VALUE record. 
151                                                Version 3 might not allow this and could throw an error.
152                                                Current query config: <xsl:value-of select="$queryModule/REQUEST/CONFIGURATION_PATH"/>.
153                                        </xsl:message>
154                                </xsl:if>
155
156        ,"<xsl:value-of select="$dimension/NAME"/>":"<xsl:value-of select="current()/VALUE/text()"/>"
157        ,"<xsl:value-of select="$dimension/NAME"/>Title":"<xsl:value-of select="if(string-length($dimensionValue/TITLE) != 0) then $dimensionValue/TITLE else current()/VALUE/text()"/>"
158        ,"<xsl:value-of select="$dimension/NAME"/>SortOrder": <xsl:value-of select="
159                if(string-length($dimensionValue/SORT_ORDER) != 0)
160                then $dimensionValue/SORT_ORDER
161                else index-of($distinctRecordDimensionValues, VALUE/text())"
162        />
163                        </xsl:for-each>
164                        <xsl:for-each select="$measures/MEASURE">
165                                <xsl:variable name="recordMeasure" select="$record/MEASURES/MEASURE[NAME = current()/NAME]"/>
166        ,"<xsl:value-of select="NAME"/>":                 <xsl:value-of select="ibis:getJavaScriptValue($recordMeasure/VALUE)"/>
167        ,"<xsl:value-of select="NAME"/>Title":           "<xsl:value-of select="ibis:getFormattedValue ($recordMeasure/VALUE, XSLT_FORMAT_PATTERN, '')"/>"
168        ,"<xsl:value-of select="NAME"/>LowerLimit":       <xsl:value-of select="ibis:getJavaScriptValue($recordMeasure/LOWER_CONFIDENCE_LIMIT)"/>
169        ,"<xsl:value-of select="NAME"/>LowerLimitTitle": "<xsl:value-of select="ibis:getFormattedValue ($recordMeasure/LOWER_CONFIDENCE_LIMIT, XSLT_FORMAT_PATTERN, 'n/a')"/>"
170        ,"<xsl:value-of select="NAME"/>UpperLimit":       <xsl:value-of select="ibis:getJavaScriptValue($recordMeasure/UPPER_CONFIDENCE_LIMIT)"/>
171        ,"<xsl:value-of select="NAME"/>UpperLimitTitle": "<xsl:value-of select="ibis:getFormattedValue ($recordMeasure/UPPER_CONFIDENCE_LIMIT, XSLT_FORMAT_PATTERN, 'n/a')"/>"
172        ,"<xsl:value-of select="NAME"/>Numerator":        <xsl:value-of select="ibis:getJavaScriptValue($recordMeasure/NUMERATOR)"/>
173        ,"<xsl:value-of select="NAME"/>NumeratorTitle":  "<xsl:value-of select="ibis:getFormattedValue ($recordMeasure/NUMERATOR, NUMERATOR/XSLT_FORMAT_PATTERN, 'n/a')"/>"
174        ,"<xsl:value-of select="NAME"/>Denominator":      <xsl:value-of select="ibis:getJavaScriptValue($recordMeasure/DENOMINATOR)"/>
175        ,"<xsl:value-of select="NAME"/>DenominatorTitle":"<xsl:value-of select="ibis:getFormattedValue ($recordMeasure/DENOMINATOR, DENOMINATOR/XSLT_FORMAT_PATTERN, 'n/a')"/>"
176                        </xsl:for-each>
177}
178                </xsl:for-each>
179<xsl:text>]</xsl:text>
180        </xsl:template> 
181        <!-- END of HAWAII MOD to change default values of UCI and LCI if non-existent -->
182
183
184        <!-- HAWAII MOD - CHANGE ORDER OF DATA Sources and DATA Issues AND don't display map if ACTUAL GROUP BY DIMENSION begins with State -->
185        <!-- HAWAII MOD - NEED TO VERIFY that this template does not change in  Core  \ibisph-view\xslt\html\query\module\result\interactive\Page.xslt -->
186       
187        <xsl:template name="Page.sectionsContent"
188                ibis:doc="Main page content template that creates the selections
189                        section, the optional graphic, optional 2-d table, data list table."
190        >
191                <!-- really vars but implemented as params - just in case... -->
192                <xsl:param name="recordCount"         select="count($Result.queryResult/RECORDS/RECORD)"/>
193                <xsl:param name="chartName"         select="$Result.queryModule/REQUEST/CHART_NAME"/>
194
195                <a name="top"></a>
196
197                <!-- Display the data.  If no records are available then provide the user
198                        with a message on what is possibly going on.
199                -->
200                <xsl:choose>
201                        <xsl:when test="exists($Result.queryModule/REQUEST/ERROR)">
202                                <xsl:copy-of select="$Result.requestErrorMessageContent"/>
203                        </xsl:when>
204
205                        <xsl:when test="exists($Result.queryResult/ERROR)">
206                                <xsl:copy-of select="$Result.resultErrorMessageContent"/>
207                        </xsl:when>
208
209                        <xsl:when test="not(exists($Result.queryResult))">
210                                <xsl:copy-of select="$Result.pleaseWaitMessageContent"/>
211                        </xsl:when>
212
213                        <xsl:when test="not(exists($Result.queryResult)) or ($recordCount = 0)">
214                                <xsl:copy-of select="$Result.resultNoDataMessageContent"/>
215                        </xsl:when>
216                </xsl:choose>
217
218
219                <!-- If records, then display the data list table. -->
220                <xsl:call-template name="UserSelections.criteria">
221                        <xsl:with-param name="queryModule"   select="$Result.queryModule"/>
222                        <xsl:with-param name="criteriaTitle" select="'Query Criteria'"/>
223                        <xsl:with-param name="criteriaDescription" 
224                                select="if(exists($Result.configuration/DESCRIPTION))
225                                        then $Result.configuration/DESCRIPTION
226                                        else 'User query criteria includes filtering and how the data are grouped'
227                                "
228                        />
229                        <xsl:with-param name="contentBlockType"      select="$Page.contentBlockType"/>
230                        <xsl:with-param name="expandableContentShow" select="true()"/>
231                </xsl:call-template>
232
233                <xsl:if test="($chartName != 'None')">
234                        <xsl:call-template name="ContentContainer.contentBlock">
235                                <xsl:with-param name="title" select="'Chart'"/>
236                                <xsl:with-param name="content">
237                                        <xsl:call-template name="Kendo.chartContainer">
238                                                <xsl:with-param name="containerID" select="'chart'"/>
239                                                <xsl:with-param name="defaultContent">
240                                                        <xsl:copy-of select="$Page.nonChartableMessageContent"/>
241                                                </xsl:with-param>
242                                        </xsl:call-template>
243                                </xsl:with-param>
244                                <xsl:with-param name="contentBlockType" select="$Page.contentBlockType"/>
245                                <xsl:with-param name="expandableContentShow" select="true()"/>
246                        </xsl:call-template>
247                </xsl:if>
248
249                <xsl:call-template name="ContentContainer.contentBlock">
250                        <xsl:with-param name="title" select="'Data Table'"/>
251                        <xsl:with-param name="content">
252                                <div class="Graphic Grid ScrollableContainer">
253                                        <div id="grid"></div>
254                                        <xsl:call-template name="Result.dataTableValuesFootnote"/>
255                                </div>
256                        </xsl:with-param>
257                        <xsl:with-param name="contentBlockType" select="$Page.contentBlockType"/>
258                        <xsl:with-param name="expandableContentShow" select="true()"/>
259                </xsl:call-template>
260
261                <!-- Debug     
262                         xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
263                         <xsl:value-of select="$Result.queryModule/REQUEST/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME"/><br/>
264                 -->
265                <!-- HI MODS 5/7/2018 - If REQUEST/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME starts with State then don't display map -->
266                                <!-- <xsl:if test="$LeafletMap.showMap and not($Result.queryModule/REQUEST/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME='StateOverall')"> -->
267                                <!-- <xsl:if test="$LeafletMap.showMap"> this was the original-->
268               
269<!-- 7/18/2020 Under some conditions the test below did not work correctly, the fix was to version Interactive.xslt and add
270                 and not(starts-with($Result.queryModule/REQUEST/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME, 'State'))">
271        to the test on current line 229 of Interactive.xslt in this directory
272-->
273               
274               
275                <xsl:if test="$LeafletMap.showMap and not(starts-with($Result.queryModule/REQUEST/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME, 'State'))">
276
277                        <xsl:call-template name="ContentContainer.contentBlock">
278                                <xsl:with-param name="title" select="'Map - NOTE: A color coded data map is shown only when County or Island (if available) is selected in Geography step, and if all data has not been supressed
279                                '"/>
280                                <xsl:with-param name="content">
281                                        <xsl:choose>
282                                                <xsl:when test="string-length($Result.queryModule/REQUEST/ACTUAL_GROUP_BY/SERIES_DIMENSION_NAME) != 0">
283                                                        <xsl:copy-of select="$Page.nonMapableMessageContent"/>
284                                                </xsl:when>
285                                                <xsl:otherwise>
286                                                        <xsl:call-template name="LeafletMap.mapContainer">
287                                                                <xsl:with-param name="containerID" select="'map'"/>
288                                                                <xsl:with-param name="title"       select="''"/>
289                                                        </xsl:call-template>
290                                                </xsl:otherwise>
291                                        </xsl:choose>
292                                </xsl:with-param>
293                                <xsl:with-param name="contentBlockType" select="$Page.contentBlockType"/>
294                                <xsl:with-param name="expandableContentShow" select="true()"/>
295                        </xsl:call-template>
296                </xsl:if>
297               
298                <xsl:call-template name="Interactive.leafletKendoScript">
299                        <xsl:with-param name="queryModule" select="$Result.queryModule"/>
300                </xsl:call-template>
301               
302                <!-- Data Notes -->
303                <xsl:call-template name="ContentContainer.contentBlockWithDelimitedTitleTextsNodesets">
304                        <xsl:with-param name="title"                select="'Data Notes'"/>
305                        <xsl:with-param name="titleAndTextsNodeset" select="$Result.configuration/DATA_NOTES/DATA_NOTE"/>
306                        <xsl:with-param name="contentBlockType"     select="$Page.contentBlockType"/>
307                        <xsl:with-param name="addWikiAttribute"     select="true()"/>
308                </xsl:call-template>
309
310                <!-- Data Issues -->
311                <xsl:call-template name="ContentContainer.contentBlockWithDelimitedTitleTextsNodesets">
312                        <xsl:with-param name="title"                select="'Data Issues'"/>
313                        <xsl:with-param name="titleAndTextsNodeset" select="$Result.configuration/DATA_ISSUES/DATA_ISSUE"/>
314                        <xsl:with-param name="contentBlockType"     select="$Page.contentBlockType"/>
315                        <xsl:with-param name="addWikiAttribute"     select="true()"/>
316                </xsl:call-template>
317
318                <!-- Data Sources -->
319                <xsl:call-template name="ContentContainer.contentBlock">
320                        <xsl:with-param name="title" select="'Data Sources'"/>
321                        <xsl:with-param name="content">
322                                <ul>
323                                <xsl:for-each select="$Result.configuration/DATA_SOURCES/DATA_SOURCE">
324                                        <xsl:sort select="SORT_ODRER" order="ascending" data-type="number"/>
325                                        <li><xsl:value-of select="TEXT"/></li>
326                                </xsl:for-each>
327                                </ul>
328                        </xsl:with-param>
329                        <xsl:with-param name="contentBlockType" select="$Page.contentBlockType"/>
330                </xsl:call-template>
331
332                <xsl:call-template name="ContentContainer.contentBlock">
333                        <xsl:with-param name="title" select="'Query Date Time Stamp'"/>
334                        <xsl:with-param name="content">
335                                These data were queried on: <xsl:value-of select="/QUERY_MODULE/REQUEST/FINISHED_DATE"/>
336                                <xsl:if test="boolean(/QUERY_MODULE/IBISQ_QUERY_RESULT/DATASET/MODIFIED_DATE)">
337                                        <br/>
338                                        The dataset was last updated on:  <xsl:value-of select="/QUERY_MODULE/IBISQ_QUERY_RESULT/DATASET/MODIFIED_DATE"/>
339                                </xsl:if>
340                        </xsl:with-param>
341                        <xsl:with-param name="contentBlockType" select="$Page.contentBlockType"/>
342                        <xsl:with-param name="expandableContentShow" select="true()"/>
343                </xsl:call-template>
344                <br/>
345
346                <a href="#top" class="Top">Top</a>
347
348<xsl:call-template name="SiteSpecific.showAnnouncement"/>               
349
350        </xsl:template>
351
352
353        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEMPLATES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
354
355</xsl:stylesheet>
356<!-- ============================= End of File ============================= -->
357
Note: See TracBrowser for help on using the repository browser.