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

Last change on this file since 21167 was 21167, checked in by GarthBraithwaite_STG, 7 weeks ago

view - temp commit to save QD save direct from result page.

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