source: main/trunk/ibisph-view/src/main/webapp/xslt/html/query/module/result/Page.xslt @ 19879

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

view - footer updates. text sections limited to 700px. Page content formatting and changes. Added goto submit for qm result. Fixed top margin for chart and maps. Limited MM css video to 400px. Changed org unit to authoring. Kendo template for table index page to change search placeholder to filter.

File size: 15.0 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:xs  ="http://www.w3.org/2001/XMLSchema"
6        xmlns:ibis="http://www.ibisph.org"
7
8        exclude-result-prefixes="ibis xs xsl"
9>
10        <xsl:import href="../Page.xslt"/>
11
12        <xsl:import href="../../../../xml/Interactive.xslt"/>
13        <xsl:import href="../../../../json/Dataset.xslt"/>
14        <xsl:import href="../../../../json/Kendo.xslt"/>
15        <xsl:import href="../../../../json/LeafletMap.xslt"/>
16
17        <xsl:import href="../../../Graphic.xslt"/>
18        <xsl:import href="UserSelections.xslt"/>
19        <xsl:import href="Result.xslt"/>
20
21        <ibis:doc>
22                <name>html/query/result/interactive/Page</name>
23                <summary>Default core code that produces the interactive query result page</summary>
24                <description>
25                        Contains the templates that create the interactive data table, chart 
26                        and map module query results page.  This page differs from the basic
27                        parent query result page code in that it uses the Kendo and Leaflet     
28                        javascript to display interactive charts, data tables, and maps.
29                </description>
30        </ibis:doc>
31
32<!-- GARTH TODO: use or remove
33        <xsl:param name="DataSources"/>
34        <xsl:param name="Page.dataSources" select="$DataSources/DATA_SOURCES"/>
35-->
36
37       
38        <xsl:param name="Page.configurationTitle" select="/QUERY_MODULE/CONFIGURATIONS/CONFIGURATION[NAME=/QUERY_MODULE/REQUEST/CONFIGURATION_NAME]/TITLE"/>
39        <xsl:param name="Page.pageTitle" ibis:doc="Page's title text which is based on the '/QUERY_MODULE/TITLE' element.">
40                Query Result - <xsl:value-of select="/QUERY_MODULE/TITLE"/> - <xsl:value-of select="$Page.configurationTitle"/>
41        </xsl:param>
42        <xsl:param name="Page.contentTitle" ibis:doc="Page's content title text which is based on the '/QUERY_MODULE/TITLE' element.">
43                Query Results for <xsl:value-of select="/QUERY_MODULE/TITLE"/> - <xsl:value-of select="$Page.configurationTitle"/>
44        </xsl:param>
45
46        <xsl:param name="Page.dataSourceDelimiter" select="';&#160;'"
47                ibis:doc="value to be used when separating the data source values."
48        />
49
50        <xsl:param name="Page.resultURL" select="concat($ibis.contextPath, 'query/result/', /QUERY_MODULE/REQUEST/CONFIGURATION_PATH, '.html')"/>
51
52        <xsl:param name="Page.dimensions" select="/QUERY_MODULE/DIMENSIONS"/>
53
54        <xsl:param name="Page.showMap" select="ibis:Graphic.showMap(
55                        /QUERY_MODULE/REQUEST/MAP_NAME,
56                        /QUERY_MODULE/REQUEST/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME,
57                        /QUERY_MODULE/REQUEST/ACTUAL_GROUP_BY/SERIES_DIMENSION_NAME,
58                        $Page.dimensions
59                )"
60        />
61        <xsl:param name="Page.showChart" select="ibis:Graphic.showChart(/QUERY_MODULE/REQUEST/CHART_NAME)"/>
62
63
64
65        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEMPLATES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
66        <xsl:template name="Page.specificHeadContent"
67                ibis:doc="If no query result element present then this page needs to
68                        issue a query result request which the controller will then build
69                        the query URL, call the Query app, and return to this page again
70                        but with a result which this page will then display.  This function
71                        used to be done with a confirmation page and separate controller but
72                        was combined 1/10/08."
73        >
74                <xsl:if test="not(exists(/QUERY_MODULE/IBISQ_QUERY_RESULT)) and not(exists(/QUERY_MODULE/REQUEST/ERROR))">
75                        <meta http-equiv="refresh" content="0;URL={$Page.resultURL}"/>
76                </xsl:if>
77
78                <xsl:call-template name="Page.metaNoCacheControl"/>
79        </xsl:template>
80
81
82
83        <xsl:template name="Page.contentBody" ibis:doc="Main interactive sections content template.">
84                <xsl:param name="queryModule" select="/QUERY_MODULE"/>
85
86                <xsl:param name="rowDimensionName"    select="$queryModule/REQUEST/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
87                <xsl:param name="colDimensionName"    select="$queryModule/REQUEST/ACTUAL_GROUP_BY/SERIES_DIMENSION_NAME"/>
88                <xsl:param name="otherDimensionName"  select="$queryModule/REQUEST/ACTUAL_GROUP_BY/OTHER_DIMENSION_NAME"/>
89                <xsl:param name="rowDimensionTitle"   select="$queryModule/DIMENSIONS/DIMENSION[NAME=$rowDimensionName]/TITLE"/>
90                <xsl:param name="colDimensionTitle"   select="$queryModule/DIMENSIONS/DIMENSION[NAME=$colDimensionName]/TITLE"/>
91                <xsl:param name="otherDimensionTitle" select="$queryModule/DIMENSIONS/DIMENSION[NAME=$otherDimensionName]/TITLE"/>
92                <xsl:param name="recordCount"         select="count($queryModule/IBISQ_QUERY_RESULT/RECORDS/RECORD)"/>
93
94                <xsl:param name="configuration" select="$queryModule/CONFIGURATIONS/CONFIGURATION[NAME=/QUERY_MODULE/REQUEST/CONFIGURATION_NAME]"/>
95
96                <div class="ContentOptions">
97                        <h3><xsl:value-of select="'Query Result Page Options'"/></h3>
98
99                        <div class="Container Buttons">
100                                <button type="button" accesskey="B" id="modifyButton" 
101                                        onclick="location.href='{$SiteSpecific.builderURL}'"
102                                >
103                                        Modify Query
104                                        <xsl:call-template name="Help.content">
105                                                <xsl:with-param name="help">
106                                                        <TEXT>
107                                                                Not seeing what you want? Click this to go to the
108                                                                query definition commonly called the query builder
109                                                                page. This page allows you to change filtering
110                                                                criteria, how your data is grouped, and the selection
111                                                                of an optional data visualization chart and/or map.
112                                                        </TEXT>
113                                                </xsl:with-param>
114                                        </xsl:call-template>
115                                </button>
116
117                                <button type="button" accesskey="D" id="defaultQuery" 
118                                        onclick="location.href='{concat($ibis.contextPath, 'query/result/', /QUERY_MODULE/REQUEST/CONFIGURATION_PATH, '.html?Reload=x')}'"
119                                >
120                                        Run Default Query
121                                        <xsl:call-template name="Help.content">
122                                                <xsl:with-param name="help">
123                                                        <TEXT>
124                                                                Resets your query definition to the default selections
125                                                                and settings and runs the query. 
126                                                        </TEXT>
127                                                </xsl:with-param>
128                                        </xsl:call-template>
129                                </button>
130
131                                <button type="button" accesskey="M" id="selectQueryMeasure" 
132                                        onclick="location.href='{concat($ibis.contextPath, /QUERY_MODULE/QUERY_CONFIGURATION_SELECTION/LOCAL_URL)}'"
133                                >
134                                        Select Query Measure
135                                        <xsl:call-template name="Help.content">
136                                                <xsl:with-param name="help">
137                                                        <TEXT>
138                                                                Allows you to change the dataset measure to be queried. 
139                                                        </TEXT>
140                                                </xsl:with-param>
141                                        </xsl:call-template>
142                                </button>
143
144                                <button type="button" accesskey="D" id="saveDefinition" 
145                                        onclick="location.href='{concat($ibis.contextPath, 'query/definition/from/result')}'"
146                                >
147                                        Save Query Definition
148                                        <xsl:call-template name="Help.content">
149                                                <xsl:with-param name="help">
150                                                        <TEXT>
151                                                                Allows you to save your current filtering criteria and
152                                                                display selections.  These saved query definitions can
153                                                                then be ran later and can even be shared with others.
154
155                                                                NOTE: you will need to have either a free self registered
156                                                                user account or a secure DOH account to be able to save
157                                                                your definitions.
158                                                        </TEXT>
159                                                </xsl:with-param>
160                                        </xsl:call-template>
161                                </button>
162
163                                <button type="button" accesskey="D" id="loadDefinition" 
164                                        onclick="location.href='{concat($ibis.contextPath, 'query/definition/index/MyDefinitions.html')}'"
165                                >
166                                        Load Query Definition
167                                        <xsl:call-template name="Help.content">
168                                                <xsl:with-param name="help">
169                                                        <TEXT>
170                                                                Takes you to a page that shows a list of all of your
171                                                                saved query defintions.  You can then choose several
172                                                                options to run the definition, refine it, or delete it.
173
174                                                                NOTE: you will need to be logged in to be able to see
175                                                                your definitions.
176                                                        </TEXT>
177                                                </xsl:with-param>
178                                        </xsl:call-template>
179                                </button>
180                        </div>
181                </div>
182
183                <xsl:call-template name="UserSelections.criteria">
184                        <xsl:with-param name="queryModule"   select="$queryModule"/>
185                        <xsl:with-param name="criteriaTitle" select="concat('Query Criteria for the ', $configuration/TITLE, ' Measure')"/>
186                        <xsl:with-param name="criteriaDescription" 
187                                select="if(exists($configuration/DESCRIPTION))
188                                        then $configuration/DESCRIPTION
189                                        else 'User query criteria includes filtering and how the data are grouped'
190                                "
191                        />
192                        <xsl:with-param name="rowDimensionTitle"   select="$rowDimensionTitle"/>
193                        <xsl:with-param name="colDimensionTitle"   select="$colDimensionTitle"/>
194                        <xsl:with-param name="otherDimensionTitle" select="$otherDimensionTitle"/>
195                </xsl:call-template>
196
197                <xsl:choose>
198                        <xsl:when test="exists($queryModule/REQUEST/ERROR)">
199                                <xsl:copy-of select="$Result.requestErrorMessageContent"/>
200                        </xsl:when>
201
202                        <xsl:when test="exists($queryModule/IBISQ_QUERY_RESULT/ERROR)">
203                                <xsl:copy-of select="$Result.resultErrorMessageContent"/>
204                        </xsl:when>
205
206                        <xsl:when test="not(exists($queryModule/IBISQ_QUERY_RESULT))">
207                                <xsl:copy-of select="$Result.pleaseWaitMessageContent"/>
208                        </xsl:when>
209
210                        <xsl:when test="$recordCount = 0">
211                                <xsl:copy-of select="$Result.resultNoDataMessageContent"/>
212                        </xsl:when>
213
214                        <!-- If records, then display the data list table. -->
215                        <xsl:otherwise>
216                                <xsl:call-template name="Page.dataContent">
217                                        <xsl:with-param name="queryModule" select="$queryModule"/>
218                                </xsl:call-template>
219                        </xsl:otherwise>
220                </xsl:choose>
221
222                <h3>Query Date Time Stamp</h3>
223                These data were queried on: <xsl:value-of select="$queryModule/REQUEST/FINISHED_DATE"/>
224                <xsl:if test="boolean($queryModule/IBISQ_QUERY_RESULT/DATASET/MODIFIED_DATE)">
225                        <br/>
226                        The dataset was last updated on:  <xsl:value-of select="$queryModule/IBISQ_QUERY_RESULT/DATASET/MODIFIED_DATE"/>
227                </xsl:if>
228                <br/><br/>
229
230                <a href="#" class="Top">Top</a>
231                <br/><br/>
232        </xsl:template>
233
234
235
236        <xsl:template name="Page.dataContent" 
237                ibis:doc="Standard/basic map, chart, data table, and meta data.  This
238                        allows sub result type pages to Override this standard data content
239                        with different content.
240                "
241        >
242                <xsl:param name="queryModule"   select="/QUERY_MODULE"/>
243                <xsl:param name="configuration" select="$queryModule/CONFIGURATIONS/CONFIGURATION[NAME=$queryModule/REQUEST/CONFIGURATION_NAME]"/>
244                <xsl:param name="request"       select="$queryModule/REQUEST"/>
245                <xsl:param name="dimensions"    select="$queryModule/DIMENSIONS"/>
246
247                <xsl:if test="$Page.showMap">
248                        <xsl:call-template name="ContentContainer.expandable">
249                                <xsl:with-param name="title" select="'Map'"/>
250                                <xsl:with-param name="content">
251                                        <xsl:call-template name="Graphic.mapContainer">
252                                                <xsl:with-param name="containerID" select="'map'"/>
253<xsl:with-param name="title" select="''"/>
254                                        </xsl:call-template>
255                                        <xsl:call-template name="ContentContainer.contentBlock">
256<xsl:with-param name="content" select="MAP_NARRATIVE"/>
257                                                <xsl:with-param name="contentBlockType" select="'fixed'" tunnel="yes"/>
258                                        </xsl:call-template>
259                                </xsl:with-param>
260                                <xsl:with-param name="show" select="true()"/>
261                                <xsl:with-param name="addWikiAttribute" select="false()"/>
262                                <xsl:with-param name="description" select="'Choropleth/thematic map.'"/>
263                        </xsl:call-template>
264                </xsl:if>
265
266                <xsl:if test="$Page.showChart">
267                        <xsl:call-template name="ContentContainer.expandable">
268                                <xsl:with-param name="title" select="if('Line'=$request/CHART_NAME)then 'Trend' else 'Chart'"/>
269                                <xsl:with-param name="content">
270                                        <xsl:call-template name="Graphic.chartContainer">
271                                                <xsl:with-param name="containerID" select="'chart'"/>
272                                        </xsl:call-template>
273                                        <xsl:call-template name="ContentContainer.contentBlock">
274<xsl:with-param name="content" select="CHART_NARRATIVE/text()"/>
275                                                <xsl:with-param name="contentBlockType" select="'fixed'" tunnel="yes"/>
276                                        </xsl:call-template>
277                                </xsl:with-param>
278                                <xsl:with-param name="show" select="true()"/>
279                                <xsl:with-param name="addWikiAttribute" select="false()"/>
280                        </xsl:call-template>
281                </xsl:if>
282
283                <!-- Data Table -->
284                <xsl:variable name="valueAttributeNames" select="distinct-values($queryModule/IBISQ_QUERY_RESULT/RECORDS/RECORD/VALUE_ATTRIBUTE_NAME)"/>
285                <xsl:call-template name="ContentContainer.expandable">
286                        <xsl:with-param name="title" select="'Data Table'"/>
287                        <xsl:with-param name="content">
288                                <div class="Graphic Grid ScrollableContainer">
289                                        <div id="grid"></div>
290                                        <xsl:call-template name="Graphic.valueAttributeFootnote">
291                                                <xsl:with-param name="valueAttributeNames" select="$valueAttributeNames"/>
292                                                <xsl:with-param name="valueAttributes"     select="$Result.valueAttributes"/>
293                                        </xsl:call-template>
294                                </div>
295                        </xsl:with-param>
296                        <xsl:with-param name="show" select="true()"/>
297                        <xsl:with-param name="addWikiAttribute" select="false()"/>
298                </xsl:call-template>
299
300
301                <xsl:call-template name="ContentContainer.expandable">
302                        <xsl:with-param name="title" select="'Data Notes'"/>
303                        <xsl:with-param name="content">
304
305                                <!-- Data Notes -->
306                                <xsl:call-template name="ContentContainer.contentBlockWithDelimitedTitleTextsNodesets">
307                                        <xsl:with-param name="title" select="'Data Notes'"/>
308                                        <xsl:with-param name="titleAndTextsNodeset" select="$configuration/DATA_NOTES/DATA_NOTE"/>
309                                        <xsl:with-param name="addWikiAttribute"     select="true()"/>
310                                </xsl:call-template>
311
312                                <!-- Data Sources -->
313                                <xsl:call-template name="ContentContainer.contentBlock">
314                                        <xsl:with-param name="title" select="'Data Sources'"/>
315                                        <xsl:with-param name="content">
316GARTH TODO:
317                                        <ul>
318<xsl:for-each select="$configuration/DATA_SOURCES/DATA_SOURCE">
319                                                        <xsl:sort select="SORT_ODRER" order="ascending" data-type="number"/>
320                                                        <li><xsl:value-of select="TEXT"/></li>
321                                                </xsl:for-each>
322                                                </ul>
323                                        </xsl:with-param>
324                                </xsl:call-template>
325
326                                <!-- Data Issues -->
327                                <xsl:call-template name="ContentContainer.contentBlockWithDelimitedTitleTextsNodesets">
328                                        <xsl:with-param name="title" select="'Data Issues'"/>
329                                        <xsl:with-param name="titleAndTextsNodeset" select="$configuration/DATA_ISSUES/DATA_ISSUE"/>
330                                        <xsl:with-param name="addWikiAttribute"     select="true()"/>
331                                </xsl:call-template>
332
333                                <xsl:call-template name="ContentContainer.expandable">
334                                        <xsl:with-param name="title" select="'Data Definitions &amp; Sources'"/>
335<xsl:with-param name="content" select="JUNK">
336<!--
337GARTH TODO:
338<xsl:call-template name="Indicator.definition"/>
339<xsl:call-template name="Indicator.howCalculated"/>
340<xsl:call-template name="Indicator.dataSources"/>
341-->
342                                        </xsl:with-param>
343                                        <xsl:with-param name="show"        select="false()"/>
344                                        <xsl:with-param name="description" select="'Metadata for this dataset.'"/>
345                                </xsl:call-template>
346
347                        </xsl:with-param>
348                </xsl:call-template>
349
350                <xsl:call-template name="Result.leafletKendoScript">
351                        <xsl:with-param name="queryModule"   select="$queryModule"/>
352                        <xsl:with-param name="configuration" select="$configuration"/>
353                        <xsl:with-param name="request"       select="$request"/>
354                        <xsl:with-param name="showMap"       select="$Page.showMap"/>
355                        <xsl:with-param name="showChart"     select="$Page.showChart"/>
356                        <xsl:with-param name="showValueAttributeColumn" select="0 != count($valueAttributeNames)"/>
357                </xsl:call-template>
358        </xsl:template>
359
360</xsl:stylesheet>
361<!-- ============================= End of File ============================= -->
Note: See TracBrowser for help on using the repository browser.