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

Last change on this file since 21106 was 21106, checked in by GarthBraithwaite_STG, 2 months ago

view - temp commit of query def mods so far - before implementing saved query def popup dialog. Added demographic IP index.

File size: 14.4 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="../../../../xml/Interactive.xslt"/>
11        <xsl:import href="../../UserSelections.xslt"/>
12        <xsl:import href="../Page.xslt"/>
13        <xsl:import href="Result.xslt"/>
14
15        <ibis:doc>
16                <name>html/query/result/Page</name>
17                <summary>Default core code that produces the interactive query result page</summary>
18                <description>
19                        Contains the templates that create the interactive data table, chart 
20                        and map module query results page.  This page differs from the basic
21                        parent query result page code in that it uses the Kendo and Leaflet     
22                        javascript to display interactive charts, data tables, and maps.
23                </description>
24        </ibis:doc>
25
26       
27        <xsl:param name="Page.queryConfigurationTitle" select="$Page.queryConfiguration/TITLE"/>
28        <xsl:param name="Page.pageTitle" ibis:doc="Page's title text which is based on the '/QUERY_MODULE/TITLE' element.">
29                Query Result - <xsl:value-of select="/QUERY_MODULE/TITLE"/> - <xsl:value-of select="$Page.queryConfigurationTitle"/>
30        </xsl:param>
31        <xsl:param name="Page.contentTitle" ibis:doc="Page's content title text which is based on the '/QUERY_MODULE/TITLE' element.">
32                Query Results for <xsl:value-of select="/QUERY_MODULE/TITLE"/> - <xsl:value-of select="$Page.queryConfigurationTitle"/>
33        </xsl:param>
34
35        <xsl:param name="Page.dataSourceDelimiter" select="';&#160;'"
36                ibis:doc="value to be used when separating the data source values."
37        />
38
39        <xsl:param name="Page.builderURL" select="concat($Page.queryBaseRequestPath, 'builder/', /QUERY_MODULE/REQUEST/CONFIGURATION_PATH, '.html')"/>
40        <xsl:param name="Page.resultURL"  select="concat($Page.queryBaseRequestPath, 'result/',  /QUERY_MODULE/REQUEST/CONFIGURATION_PATH, '.html')"/>
41
42
43        <xsl:param name="Page.requestErrorMessageContent">
44                <div class="Error">
45                        <h2>Error: <xsl:value-of select="/QUERY_MODULE/REQUEST/ERROR/TITLE"/></h2>
46
47                        There is a problem getting the specified query data from the
48                        database.  This error could be a temporary issue either with
49                        the servers or the network.  Please wait a few minutes and try
50                        your query again.  If the problem persists, please report this
51                        problem to us (<a href="{$ibis.baseRequestPath}about/ContactInformation.html">contact information</a>).
52                        The nature of the problem is shown below and will be helpful
53                        when reporting the problem.  We apologize for any inconveniences
54                        and appreciate your patience and help.
55
56                        <div class="Note" style="margin-top: 1em;" title="{/QUERY_MODULE/REQUEST/ERROR/TITLE}">
57                                <h3>Error Details:</h3>
58                                <xsl:value-of select="/QUERY_MODULE/REQUEST/ERROR/DESCRIPTION"/>
59                        </div>
60                </div><br/>
61        </xsl:param>
62
63        <xsl:param name="Page.resultErrorMessageContent">
64                <div class="Error">
65                        <h2>SAS/CGI System Error:</h2>
66                        There is a problem getting the specified query data from the
67                        database.  Please report this problem to us (<a href="{$ibis.baseRequestPath}about/ContactInformation.html">contact information</a>).
68                        The nature of the problem is shown below and will be helpful
69                        when reporting the problem.  We apologize for any inconveniences
70                        and appreciate your patience and help.
71                        <br/><br/>
72
73                        <div class="Note" title="{/QUERY_MODULE/REQUEST/ERROR/TITLE}">
74                                <h3>More Error Detail:</h3>
75                                <xsl:value-of select="/QUERY_MODULE/REQUEST/ERROR"/>
76                        </div>
77                </div><br/>
78        </xsl:param>
79
80        <xsl:param name="Page.pleaseWaitMessageContent">
81                <div class="PleaseWait">
82                        <h2>Please wait.  Processing query.</h2>
83                        The system is processing your data request.  Your browser should
84                        be actively trying to load a page.  This is typically indicated by
85                        your browser showing something spinning the browser tab.  If this
86                        is not the case click on this <a href="{$Page.resultURL}" title="Resubmit query">get
87                        query results</a> link.  Otherwise be patient as your data will be
88                        displayed as soon as they are available.
89                </div><br/>
90        </xsl:param>
91
92        <xsl:param name="Page.resultNoDataMessageContent">
93                <div class="Note">
94                        <h2>Sorry, no data were returned for your query.</h2>
95                        The filtering criteria was too specific or no data exists in
96                        the dataset.  If you feel that your query should have worked,
97                        please contact us and let us know about the problem. Otherwise,
98                        please go back and modify your query using less specific
99                        filtering criteria.
100                </div><br/>
101        </xsl:param>
102
103
104
105        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEMPLATES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
106        <xsl:template name="Page.specificHeadContent"
107                ibis:doc="If no query result element present then this page needs to
108                        issue a query result request which the controller will then build
109                        the query URL, call the Query app, and return to this page again
110                        but with a result which this page will then display.  This function
111                        used to be done with a confirmation page and separate controller but
112                        was combined 1/10/08."
113        >
114                <xsl:if test="not(exists(/QUERY_MODULE/IBISQ_QUERY_RESULT)) and not(exists(/QUERY_MODULE/REQUEST/ERROR))">
115                        <meta http-equiv="refresh" content="0;URL={$Page.resultURL}"/>
116                </xsl:if>
117
118                <xsl:call-template name="Page.metaNoCacheControl"/>
119        </xsl:template>
120
121
122        <xsl:template name="Page.contentBody" ibis:doc="Main interactive sections content template.">
123                <xsl:param name="queryModule"                   select="$Result.queryModule"/>
124                <xsl:param name="queryConfiguration"    select="$Result.queryConfiguration"/>
125                <xsl:param name="recordCount"                   select="count($queryModule/IBISQ_QUERY_RESULT/RECORDS/RECORD)"/>
126
127                <xsl:call-template name="Page.contentOptions"/>
128                <br/>
129
130                <h2>Query Criteria for the <xsl:value-of select="$queryConfiguration/TITLE"/> Measure</h2>
131                <table id="userCriteria" class="Info"
132                        summary="The first column is a title of that type of selection with
133                                the next column showing a list of selected values.
134                        "
135                        caption="Result table that shows selected dimensions and group by selections."
136                >
137                        <xsl:call-template name="UserSelections.selectedDimensionsCriteriaTableRows">
138                                <xsl:with-param name="selectedDimensions" select="$queryModule//SECTION//SELECTED_DIMENSIONS"/>
139                                <xsl:with-param name="dimensions" select="$Result.dimensions"/>
140                        </xsl:call-template>
141
142                        <xsl:call-template name="UserSelections.dataGroupedByTableRow">
143                                <xsl:with-param name="rowDimensionTitle"   select="ibis:getDimensionTitle($Result.dimensions/DIMENSION[NAME=$queryModule/REQUEST/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME])"/>
144                                <xsl:with-param name="colDimensionTitle"   select="ibis:getDimensionTitle($Result.dimensions/DIMENSION[NAME=$queryModule/REQUEST/ACTUAL_GROUP_BY/SERIES_DIMENSION_NAME])"/>
145                                <xsl:with-param name="otherDimensionTitle" select="ibis:getDimensionTitle($Result.dimensions/DIMENSION[NAME=$queryModule/REQUEST/ACTUAL_GROUP_BY/OTHER_DIMENSION_NAME])"/>
146                        </xsl:call-template>
147                </table>
148
149                <xsl:choose>
150                        <xsl:when test="exists($queryModule/REQUEST/ERROR)">
151                                <xsl:copy-of select="$Page.requestErrorMessageContent"/>
152                        </xsl:when>
153
154                        <xsl:when test="exists($queryModule/IBISQ_QUERY_RESULT/ERROR)">
155                                <xsl:copy-of select="$Page.resultErrorMessageContent"/>
156                        </xsl:when>
157
158                        <xsl:when test="not(exists($queryModule/IBISQ_QUERY_RESULT))">
159                                <xsl:copy-of select="$Page.pleaseWaitMessageContent"/>
160                        </xsl:when>
161
162                        <xsl:when test="$recordCount = 0">
163                                <xsl:copy-of select="$Page.resultNoDataMessageContent"/>
164                        </xsl:when>
165
166                        <!-- If records, then display the data list table. -->
167                        <xsl:otherwise>
168                                <xsl:call-template name="Page.dataContent">
169                                        <xsl:with-param name="queryModule"                      select="$queryModule"/>
170                                        <xsl:with-param name="queryConfiguration"       select="$queryConfiguration"/>
171                                </xsl:call-template>
172                        </xsl:otherwise>
173                </xsl:choose>
174
175                <h3>Query Date Time Stamp</h3>
176                These data were queried on: <xsl:value-of select="$queryModule/REQUEST/FINISHED_DATE"/>
177                <xsl:if test="boolean($queryModule/IBISQ_QUERY_RESULT/DATASET/MODIFIED_DATE)">
178                        <br/>
179                        The dataset was last updated on:  <xsl:value-of select="$queryModule/IBISQ_QUERY_RESULT/DATASET/MODIFIED_DATE"/>
180                </xsl:if>
181                <br/><br/>
182
183                <a href="#" class="Top">Top</a>
184                <br/><br/>
185
186                <xsl:call-template name="Page.usageAgreement"/>
187        </xsl:template>
188
189
190        <xsl:template name="Page.dataContent" 
191                ibis:doc="Standard/basic map, chart, data table, and meta data.  This
192                        allows sub result type pages to Override this standard data content
193                        with different content.
194                "
195        >
196                <xsl:param name="queryModule"                   select="/QUERY_MODULE"/>
197                <xsl:param name="queryConfiguration"    select="$Page.queryConfiguration"/>
198                <xsl:param name="queryRequest"                  select="$queryModule/REQUEST"/>
199
200                <xsl:variable name="dataVizContainerIDPrefix" select="ibis:firstLetterLowerCase( replace($queryRequest/CONFIGURATION_PATH, '/', '_') )"/>
201                <xsl:variable name="dataVizObjectName"        select="concat($dataVizContainerIDPrefix, 'DataViz')"/>
202
203                <xsl:if test="$Result.showMap">
204                        <xsl:call-template name="ContentContainer.expandable">
205                                <xsl:with-param name="title" select="'Map'"/>
206                                <xsl:with-param name="content">
207                                        <xsl:call-template name="DataViz.mapContainer">
208                                                <xsl:with-param name="containerID"   select="concat($dataVizContainerIDPrefix, '_map')"/>
209                                                <xsl:with-param name="footerContent" select="$queryConfiguration/MAP_NARRATIVE"/>
210                                        </xsl:call-template>
211                                </xsl:with-param>
212                                <xsl:with-param name="show" select="true()"/>
213                                <xsl:with-param name="addWikiAttribute" select="false()"/>
214                                <xsl:with-param name="description" select="'Choropleth/thematic map.'"/>
215                        </xsl:call-template>
216                </xsl:if>
217
218                <xsl:if test="$Result.showChart">
219                        <xsl:call-template name="ContentContainer.expandable">
220                                <xsl:with-param name="title" select="if('Line'=$queryRequest/CHART_NAME)then 'Trend' else 'Chart'"/>
221                                <xsl:with-param name="content">
222                                        <xsl:call-template name="DataViz.chartContainer">
223                                                <xsl:with-param name="containerID"   select="concat($dataVizContainerIDPrefix, '_chart')"/>
224                                                <xsl:with-param name="footerContent" select="$queryConfiguration/CHART_NARRATIVE/text()"/>
225                                        </xsl:call-template>
226                                </xsl:with-param>
227                                <xsl:with-param name="show" select="true()"/>
228                                <xsl:with-param name="addWikiAttribute" select="false()"/>
229                        </xsl:call-template>
230                </xsl:if>
231
232                <xsl:call-template name="ContentContainer.expandable">
233                        <xsl:with-param name="title" select="'Data Table'"/>
234                        <xsl:with-param name="content">
235                                <xsl:call-template name="DataViz.gridContainer">
236                                        <xsl:with-param name="containerID"         select="concat($dataVizContainerIDPrefix, '_grid')"/>
237                                        <xsl:with-param name="valueAttributeNames" select="$Result.valueAttributeNames"/>
238                                        <xsl:with-param name="valueAttributes"     select="$Result.valueAttributes"/>
239                                </xsl:call-template>
240                        </xsl:with-param>
241                        <xsl:with-param name="show" select="true()"/>
242                        <xsl:with-param name="addWikiAttribute" select="false()"/>
243                </xsl:call-template>
244
245                <xsl:call-template name="ContentContainer.expandable">
246                        <xsl:with-param name="title" select="'Technical Notes'"/>
247                        <xsl:with-param name="content">
248                                <xsl:call-template name="Result.dataNotes"/>
249                                <xsl:call-template name="Result.dataSources"/>
250                                <xsl:call-template name="Result.dataIssues"/>
251                        </xsl:with-param>
252                        <xsl:with-param name="show" select="true()"/>
253                </xsl:call-template>
254
255                <xsl:if test="$Result.showMap">
256                        <xsl:call-template name="DataViz.choroplethMapJavaScript"/>
257                </xsl:if>
258                <script id="{$dataVizContainerIDPrefix}_script">
259                        <xsl:call-template name="Result.queryResultKendoLeafletDataVizObject">
260                                <xsl:with-param name="dataVizObjectName"        select="$dataVizObjectName"/>
261                                <xsl:with-param name="dataVizContainerIDPrefix" select="$dataVizContainerIDPrefix"/>
262
263                                <xsl:with-param name="queryModule"                      select="$queryModule"/>
264                                <xsl:with-param name="queryConfiguration"       select="$queryConfiguration"/>
265                                <xsl:with-param name="queryRequest"                     select="$queryRequest"/>
266                        </xsl:call-template>
267
268                        $(document).ready(function()
269                        {
270                                <xsl:value-of select="$dataVizObjectName"/>.init();
271                        });
272
273                        <xsl:if test="$Result.showChart">
274                        $(window).resize(function () {
275                                <xsl:value-of select="$dataVizObjectName"/>.resizeKendoChart();
276                        });
277                        </xsl:if>
278                </script>
279
280        </xsl:template>
281
282
283        <xsl:template name="Page.contentOptions">
284                <div class="ContentOptions">
285                        <h3><xsl:value-of select="'Query Result Page Options'"/></h3>
286
287                        <div class="Container Buttons">
288                                <button type="button" accesskey="B" id="modifyButton" 
289                                        onclick="location.href='{$Page.builderURL}'"
290                                >
291                                        Modify Query
292                                        <xsl:call-template name="Help.popup">
293                                                <xsl:with-param name="content" select="$Page.modifyQueryHelpContent"/>
294                                        </xsl:call-template>
295                                </button>
296
297                                <button type="button" accesskey="D" id="defaultQuery" 
298                                        onclick="location.href='{$Page.queryBaseRequestPath}result/{/QUERY_MODULE/REQUEST/CONFIGURATION_PATH}.html?Reload=x'"
299                                >
300                                        Run Default Query
301                                        <xsl:call-template name="Help.popup">
302                                                <xsl:with-param name="content" select="$Page.runDefaultQueryHelpContent"/>
303                                        </xsl:call-template>
304                                </button>
305
306                                <button type="button" accesskey="M" id="selectQueryMeasure" 
307                                        onclick="location.href='{concat($ibis.baseRequestPath, /QUERY_MODULE/QUERY_CONFIGURATION_SELECTION/LOCAL_URL)}'"
308                                >
309                                        Select Different Measure
310                                        <xsl:call-template name="Help.popup">
311                                                <xsl:with-param name="content" select="$Page.changeDatasetMeasureHelpContent"/>
312                                        </xsl:call-template>
313                                </button>
314
315                                <button type="button" accesskey="D" id="saveDefinition" 
316                                        onclick="location.href='{concat($ibis.baseRequestPath, 'query/definition/from/result')}'"
317                                >
318                                        Save Query Definition
319                                        <xsl:call-template name="Help.popup">
320                                                <xsl:with-param name="content" select="$Page.saveQueryDefinitionHelpContent"/>
321                                        </xsl:call-template>
322                                </button>
323
324                                <button type="button" accesskey="E" id="openInExcel" 
325                                        onclick="location.href='{$Page.queryBaseRequestPath}result/{/QUERY_MODULE/REQUEST/CONFIGURATION_PATH}.xls'"
326                                >
327                                        Output to Excel
328                                        <xsl:call-template name="Help.popup">
329                                                <xsl:with-param name="content" select="$Page.openInExcelHelpContent"/>
330                                        </xsl:call-template>
331                                </button>
332                        </div>
333                </div>
334        </xsl:template>
335
336</xsl:stylesheet>
337<!-- ============================= End of File ============================= -->
Note: See TracBrowser for help on using the repository browser.