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

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

view, content - updated all topic pages to html5. Removed context nav xmls. Unversioned all QMs. xslt and css sectionsContent to contentBody. Changed panel css back to megamenu. Moved all input control xslt code to the selectionlist.xslt. Removed Click css class and moved all to Popup. ip/page.xslt to include basic control. Changed chart container from div to figure. Updated error jsp.

File size: 24.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<xsl:stylesheet version="3.0"
3        xmlns:xsl ="http://www.w3.org/1999/XSL/Transform"
4        xmlns:ibis="http://www.ibisph.org"
5
6        exclude-result-prefixes="ibis"
7>
8        <ibis:doc>
9                <name>html/query/result/Result</name>
10                <summary>query result variables</summary>
11                <description>
12                        Contains the query result variable definitions.
13                </description>
14        </ibis:doc>
15
16        <!-- ~~~~~~~~~~~~~~~~~~~~~~~ PARAMS / VARIABLES ~~~~~~~~~~~~~~~~~~~~~~~~ -->
17
18        <xsl:param name="Result.useExternalXML" select="true()"
19                ibis:doc="Controls where the supplemental XML data resides.  If true then
20                        the XML to be referenced is an external XML file.  If false then the
21                        XML resides within the IP XML file.  For adopters that want 100%
22                        self contained IP XML set this to false.  For database/centralized
23                        data referencing set to true.
24                "
25        />
26        <xsl:param name="AncillaryValues"/>
27        <xsl:param name="Result.ancillaryValues" select="if($Result.useExternalXML) then $AncillaryValues/ANCILLARY_VALUES else queryModule/ANCILLARY_VALUES"/>
28        <xsl:param name="DataSources"/>
29        <xsl:param name="Result.dataSources"     select="if($Result.useExternalXML) then $DataSources/DATA_SOURCES else queryModule/DATA_SOURCES"/>
30        <xsl:param name="Dimensions"/>
31        <xsl:param name="Result.dimensions"      select="if($Result.useExternalXML) then $Dimensions/DIMENSIONS else queryModule/DIMENSIONS"/>
32        <xsl:param name="Measures"/>
33        <xsl:param name="Result.measure"         select="if($Result.useExternalXML) then $Measures/MEASURES/MEASURE[NAME=queryModule/MEASURE_NAME] else queryModule/MEASURES/MEASURE[NAME=queryModule/MEASURE_NAME]"/>
34        <xsl:param name="ValueTypes"/>
35        <xsl:param name="Result.valueTypes"      select="if($Result.useExternalXML) then $ValueTypes/VALUE_TYPES else queryModule/VALUE_TYPES"/>
36        <xsl:param name="ValueAttributes"/>
37        <xsl:param name="Result.valueAttributes" select="if($Result.useExternalXML) then $ValueAttributes/VALUE_ATTRIBUTES else queryModule/VALUE_ATTRIBUTES"/>
38
39<!-- CLEAN UP ONCE DETERMINE USAGE
40        <xsl:param name="Page.dimensions" select="$Page.queryModule/DIMENSIONS"/>
41
42        <xsl:param name="Page.queryAncillaryValueNames" select="$Page.configuration/ANCILLARY_VALUE_NAMES/ANCILLARY_VALUE_NAME"/>
43        <xsl:param name="Page.ancillaryValues" select="$Result.ancillaryValues/ANCILLARY_VALUE[(NAME = $Page.queryAncillaryValueNames) and (ACTIVE_FLAG = 'x')]"/>
44
45        <xsl:param name="Page.queryValueTypeNames" select="$measure/VALUE_TYPE_NAME union $Result.ancillaryValues/VALUE_TYPE_NAME"/>
46        <xsl:param name="Page.valueTypes" select="$ValueTypes//VALUE_TYPE[NAME = $Page.queryValueTypeNames]"/>
47
48        <xsl:param name="Page.valueAttributes" select="$ValueAttributes/VALUE_ATTRIBUTES"/>
49        <xsl:param name="Page.valueAttributes" select="$Page.valueAttributes/VALUE_ATTRIBUITES/VALUE_ATTRIBUITE[NAME = 'x']"/>
50
51        <xsl:param name="Page.queryAncillaryValueNames" select="$Page.configuration/ANCILLARY_VALUE_NAMES/ANCILLARY_VALUE_NAME"/>
52        <xsl:param name="Page.ancillaryValues" select="$Result.ancillaryValues/ANCILLARY_VALUE[(NAME = $Page.queryAncillaryValueNames) and (ACTIVE_FLAG = 'x')]"/>
53
54        <xsl:param name="Page.queryValueTypeNames" select="$measure/VALUE_TYPE_NAME union $Result.ancillaryValues/VALUE_TYPE_NAME"/>
55
56        <xsl:param name="Page.valueAttributes" select="$ValueAttributes/VALUE_ATTRIBUTES"/>
57        <xsl:param name="Page.valueAttributes" select="$Page.valueAttributes/VALUE_ATTRIBUITES/VALUE_ATTRIBUITE[NAME = 'x']"/>
58-->
59
60<!-- GARTH TODO: this needs to be made easier????? -->
61        <xsl:param name="Result.comparisonDimensionName"  select="'GeoState'"/>
62        <xsl:param name="Result.comparisonDimensionValue" select="'35'"/>
63
64
65        <xsl:param name="ShowDimensionValues" select="''"
66                ibis:doc="if t, y, or x then shows the dim value in a column for sorting."
67        />
68        <xsl:param name="Result.showDimensionValueColumn" select="ibis:isFirstLetter_T_or_Y_or_X($ShowDimensionValues)"/>
69
70
71        <!-- value which contains the character that represents an IBISQ total value or an all value. -->
72        <xsl:param name="Result.ibisqAllValue" select="'.'"
73                ibis:doc="Provides a variable to localize the IBISQ total value
74                        which is typically the '.' character."
75        />
76
77
78
79        <xsl:param name="Result.supressedCellsMessage" 
80                ibis:doc="Text message to be displayed when cell supression value found.
81                        This is implemented as a global var for site specific override.  This
82                        message text also depends on a template that uses it.  If an adopter
83                        needs better format control then they will override the data table
84                        footnote template which will likely not reference this parameter value.
85GARTH TODO: Remove this stuff...
86                "
87        >
88                <xsl:variable name="countEndsWithStar"     select="count(/QUERY_MODULE/IBISQ_QUERY_RESULT/RECORDS/RECORD/MEASURE[ends-with(VALUE,  '*')])"/>
89                <xsl:variable name="countEndsWithStarStar" select="count(/QUERY_MODULE/IBISQ_QUERY_RESULT/RECORDS/RECORD/MEASURE[ends-with(VALUE, '**')])"/>
90                <xsl:if test="($countEndsWithStar != 0) and ($countEndsWithStar != $countEndsWithStarStar)">
91                        *Use caution in interpreting, the estimate has a relative standard
92                        error greater than 30% and does not meet UDOH standards for reliability.
93                        Consider aggregating years to decrease the relative standard error and
94                        improve the reliability of the estimate.
95                </xsl:if>
96
97                <!-- tried adding this inside both with br and whitespace and ignored.
98                -->
99                <xsl:if test="$countEndsWithStarStar != 0">
100                        <xsl:if test="$countEndsWithStar != $countEndsWithStarStar"><br/><br/></xsl:if>
101                        **The estimate has been suppressed because 1) The relative standard error
102                        is greater than 50% or when the relative standard error can't be determined.
103                        Consider aggregating years to decrease the relative standard error and improve
104                        the reliability of the estimate.  2) the observed number
105                        of events is very small and not appropriate for publication, or 3) it could be
106                        used to calculate the number in a cell that has been suppressed.
107                </xsl:if>
108        </xsl:param>
109
110        <xsl:param name="Result.requestErrorMessageContent">
111                <div class="Error">
112                        <h2>Error: <xsl:value-of select="/QUERY_MODULE/REQUEST/ERROR/TITLE"/></h2>
113
114                        There is a problem getting the specified query data from the
115                        database.  This error could be a temporary issue either with
116                        the servers or the network.  Please wait a few minutes and try
117                        your query again.  If the problem persists, please report this
118                        problem to us (<a href="{$ibis.contextPath}about/ContactInformation.html">contact information</a>).
119                        The nature of the problem is shown below and will be helpful
120                        when reporting the problem.  We apologize for any inconveniences
121                        and appreciate your patience and help.
122
123                        <div class="Note" style="margin-top: 1em;" title="{/QUERY_MODULE/REQUEST/ERROR/TITLE}">
124                                <h3>Error Details:</h3>
125                                <xsl:value-of select="/QUERY_MODULE/REQUEST/ERROR/DESCRIPTION"/>
126                        </div>
127                </div><br/>
128        </xsl:param>
129
130        <xsl:param name="Result.resultErrorMessageContent">
131                <div class="Error">
132                        <h2>SAS/CGI System Error:</h2>
133                        There is a problem getting the specified query data from the
134                        database.  Please report this problem to us (<a href="{$ibis.contextPath}about/ContactInformation.html">contact information</a>).
135                        The nature of the problem is shown below and will be helpful
136                        when reporting the problem.  We apologize for any inconveniences
137                        and appreciate your patience and help.
138                        <br/><br/>
139
140                        <div class="Note" title="{/QUERY_MODULE/REQUEST/ERROR/TITLE}">
141                                <h3>More Error Detail:</h3>
142                                <xsl:value-of select="/QUERY_MODULE/REQUEST/ERROR"/>
143                        </div>
144                </div><br/>
145        </xsl:param>
146
147        <xsl:param name="Result.pleaseWaitMessageContent">
148                <div class="PleaseWait">
149                        <h2>Please wait.  Processing query.</h2>
150                        The system is processing your data request.  Your browser should
151                        be actively trying to load a page.  This is typically indicated by
152                        your browser showing something spinning the browser tab.  If this
153                        is not the case click on this <a href="{$Page.resultURL}" title="Resubmit query">get
154                        query results</a> link.  Otherwise be patient as your data will be
155                        displayed as soon as they are available.
156                </div><br/>
157        </xsl:param>
158
159        <xsl:param name="Result.resultNoDataMessageContent">
160                <div class="Note">
161                        <h2>Sorry, no data were returned for your query.</h2>
162                        The filtering criteria was too specific or no data exists in
163                        the dataset.  If you feel that your query should have worked,
164                        please contact us and let us know about the problem. Otherwise,
165                        please go back and modify your query using less specific
166                        filtering criteria.
167                </div><br/>
168        </xsl:param>
169
170
171
172        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEMPLATES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
173
174        <xsl:template name="Result.dataTableValuesFootnote" 
175                ibis:doc="Text message to be displayed when cell supression value found.
176                        This template is implemented to interact with a parameter so that the
177                        message can be inject.  See the template below if you need to have
178                        fine grained control over formatting and putting in html links etc.
179                "
180        >
181                <xsl:if test="string-length($Result.supressedCellsMessage) != 0">
182                        <xsl:call-template name="ContentContainer.fixed">
183                                <xsl:with-param name="content" select="$Result.supressedCellsMessage"/>
184                                <xsl:with-param name="additionalClasses" select="'SupressedCellMessage'"/>
185                                <xsl:with-param name="addWikiAttribute"  select="false()"/>
186                        </xsl:call-template>
187                </xsl:if>
188        </xsl:template>
189
190
191<xsl:template name="Result.dataTableValuesFootnote-AnotherVersion" 
192                ibis:doc="template with ability to control text better..."
193        >
194                <xsl:if test="exists(//RECORDS/RECORD/MEASURE[ends-with(VALUE, '*')])">
195                        <div class="SupressedCellMessage">
196                                * Use caution in interpreting, the estimate has a relative standard
197                                error greater than 30% and does not meet UDOH standards for reliability.
198                                Consider aggregating years to decrease the relative standard error and
199                                improve the reliability of the estimate.
200                                <br/><br/>
201
202                        <xsl:if test="exists(//RECORDS/RECORD/MEASURE[VALUE = '**'])">
203                                ** The estimate has been suppressed because 1) The relative standard error
204                                is greater than 50% or when the relative standard error can't be determined.
205                                Consider aggregating years to decrease the relative standard error and improve
206                                the reliability of the estimate. 2) the observed number of events is very small
207                                and not appropriate for publication, or 3) it could be used to calculate the
208                                number in a cell that has been suppressed.
209                        </xsl:if>
210                        </div>
211                </xsl:if>
212        </xsl:template>
213
214
215
216        <xsl:template name="Result.leafletKendoScript" ibis:doc="Provides the kendo and leaflet javascript.">
217                <xsl:param name="queryModule"/>
218                <xsl:param name="configuration"/>
219                <xsl:param name="request"/>
220                <xsl:param name="showMap"/>
221                <xsl:param name="showChart"/>
222                <xsl:param name="showValueAttributeColumn" select="false()"/>
223
224                <xsl:param name="measure" select="$Result.measure"/>
225                <xsl:param name="datasetRecords" select="$queryModule/IBISQ_QUERY_RESULT/RECORDS"/>
226
227                <xsl:param name="ancillaryValueNames" select="$configuration/ANCILLARY_VALUE_USAGES/ANCILLARY_VALUE_USAGE/NAME"/>
228                <xsl:param name="ancillaryValues" select="$Result.ancillaryValues/ANCILLARY_VALUE[(NAME = $ancillaryValueNames) and (ACTIVE_FLAG = 'x')]"/>
229
230                <xsl:param name="dimensions" select="$Result.dimensions"/>
231
232                <xsl:param name="measureValueFormatPattern" select="($Result.valueTypes/VALUE_TYPE[NAME = $measure/VALUE_TYPE_NAME]/XSLT_FORMAT_PATTERN)[1]"/>
233
234
235                <xsl:variable name="dimensionUsages" 
236                        ibis:doc="Builds a dim usages struct like:
237                                DIMENSION_USAGES
238                                        DIMENSION_USAGE
239                                                USAGE category
240                                                NAME Year
241                                                VALUES
242                                                        VALUE 2012
243                                                        VALUE 2011
244                                                        VALUE 2010
245                                                        ...
246                                        DIMENSION_USAGE
247                                                ...
248                        "
249                >
250                        <xsl:call-template name="getDimensionUsage">
251                                <xsl:with-param name="datasetRecords" select="$datasetRecords"/>
252                                <xsl:with-param name="usage" select="'category'"/>
253                                <xsl:with-param name="dimensionName" select="$request/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
254                        </xsl:call-template>
255                        <xsl:call-template name="getDimensionUsage">
256                                <xsl:with-param name="datasetRecords" select="$datasetRecords"/>
257                                <xsl:with-param name="usage" select="'series'"/>
258                                <xsl:with-param name="dimensionName" select="$request/ACTUAL_GROUP_BY/SERIES_DIMENSION_NAME"/>
259                        </xsl:call-template>
260                        <xsl:call-template name="getDimensionUsage">
261                                <xsl:with-param name="datasetRecords" select="$datasetRecords"/>
262                                <xsl:with-param name="usage" select="'constant'"/>
263                                <xsl:with-param name="dimensionName" select="$request/ACTUAL_GROUP_BY/CONSTANT_DIMENSION_NAME"/>
264                        </xsl:call-template>
265                </xsl:variable>
266
267                <xsl:variable name="recordDimensionFields">
268                        <xsl:call-template name="Interactive.getRecordDimensionFields">
269                                <xsl:with-param name="dimensions"      select="$dimensions"/>
270                                <xsl:with-param name="dimensionUsages" select="$dimensionUsages"/>
271                        </xsl:call-template>
272                </xsl:variable>
273
274                <xsl:variable name="recordAncillaryValueFields">
275                        <xsl:call-template name="Interactive.getQueryRecordAncillaryValueFields">
276                                <xsl:with-param name="ancillaryValueUsage" select="$configuration/ANCILLARY_VALUE_USAGES"/>
277                                <xsl:with-param name="ancillaryValues"     select="$Result.ancillaryValues"/>
278                                <xsl:with-param name="valueTypes"          select="$Result.valueTypes"/>
279                                <xsl:with-param name="measureValueFormatPattern" select="$measureValueFormatPattern"/>
280                        </xsl:call-template>
281                </xsl:variable>
282
283                <!-- tried doing jsonp tech but callback func must be defined before doing the script jsonp
284                        so you'd have the variable = null, call back, end of script, include jsonp, then contructor
285                        script.  Very messy - decided just to do simple var and include it.
286                -->
287                <xsl:if test="$showMap">
288                        <xsl:call-template name="Graphic.choroplethMapJavaScript"/>
289                </xsl:if>
290                <script type="text/javascript" src="{$ibis.contextPath}js/jszip.js"/>
291                <script type="text/javascript">
292                        var records =
293                        [<xsl:text>&#10;</xsl:text>
294                                <xsl:call-template name="Dataset.getDatasetRecordsJSON">
295                                        <xsl:with-param name="dimensions"                 select="$dimensions"/>
296                                        <xsl:with-param name="datasetRecords"             select="$datasetRecords"/>
297                                        <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
298                                        <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
299                                        <xsl:with-param name="measureValueFormatPattern"  select="$measureValueFormatPattern"/>
300                                </xsl:call-template>
301                        ];
302
303                        var kendoDataSource = new kendo.data.DataSource(
304                                <xsl:call-template name="Kendo.dataSourceConstructorJSON">
305                                        <xsl:with-param name="javascriptRecordArrayVariableName" select="'records'"/>
306                                        <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
307                                        <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
308                                </xsl:call-template>
309                        );
310
311                        <xsl:variable name="recordDimensionCount" select="count($recordDimensionFields/RECORD_DIMENSION_FIELD[VALUE_COUNT != 0])"/>
312                        <xsl:variable name="grandTotalDatasetRecord" select="$datasetRecords//RECORD[$recordDimensionCount  = count(DIMENSIONS/DIMENSION[VALUE/text() = $Result.ibisqAllValue])]"/>
313                        var kendoGridConstructorJSON = $.extend
314                                (true, {}
315                                        ,<xsl:call-template name="Kendo.baseGridJSON"/>
316                                        ,<xsl:call-template name="Kendo.namedConfigurationJSON">
317                                                <xsl:with-param name="configurationName" select="'IndicatorProfileGrid'"/>
318                                        </xsl:call-template>
319                                        ,<xsl:call-template name="Kendo.requestGridJSON">
320                                                <xsl:with-param name="kendoDataSourceJavascriptVariableName" select="'kendoDataSource'"/>
321                                                <xsl:with-param name="measure" select="$measure"/>
322                                                <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
323                                                <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
324                                                <xsl:with-param name="footerValues">
325                                                        <VALUE><xsl:value-of select="ibis:getFormattedNumber($grandTotalDatasetRecord/MEASURE/VALUE, $measureValueFormatPattern)"/></VALUE>
326                                                        <xsl:for-each select="$recordAncillaryValueFields/RECORD_ANCILLARY_VALUE_FIELD">
327                                                                <VALUE><xsl:value-of select="ibis:getFormattedNumber($grandTotalDatasetRecord/ANCILLARY_VALUES/ANCILLARY_VALUE[NAME = current()/NAME]/VALUE, current()/XSLT_FORMAT_PATTERN)"/></VALUE>
328                                                        </xsl:for-each>
329                                                </xsl:with-param>
330                                                <xsl:with-param name="showValueAttributeColumn" select="$showValueAttributeColumn"/>
331                                                <xsl:with-param name="showNoteColumn"  select="false()"/>
332                                                <xsl:with-param name="showLabelColumn" select="false()"/>
333                                        </xsl:call-template>
334                                );
335
336                        <xsl:if test="$showMap">
337                        var leafletMapConstructorJSON = $.extend
338                                (true, {}
339                                        ,<xsl:call-template name="LeafletMap.baseJSON"/>
340                                        ,<xsl:call-template name="LeafletMap.namedConfigurationJSON">
341                                                <xsl:with-param name="configurationName" select="$configuration/MAP_NAME"/>
342                                        </xsl:call-template>
343                                        ,<xsl:call-template name="LeafletMap.requestJSON"> 
344<xsl:with-param name="mapType"       select="'choropleth'"/>
345                                        </xsl:call-template>
346
347                                        ,<xsl:call-template name="LeafletMap.choroplethJSON">
348                                                <xsl:with-param name="javascriptRecordArrayVariableName" select="'records'"/>
349<xsl:with-param name="geoJSONName" select="$request/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
350
351<xsl:with-param name="geoIDFieldName"  select="'Category'"/> 
352<xsl:with-param name="geoIDFieldValuePrefixToRemove" select="concat($request/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME, '.')"/>
353<xsl:with-param name="legendTitle"     select="$measure/TITLE"/>
354<xsl:with-param name="geoTypeTitle"    select="ibis:getDimensionTitle($queryModule//DIMENSIONS/DIMENSION[NAME = $configuration/MAP_DIMENSION_NAME])"/>
355<xsl:with-param name="reverseColors"   select="$measure/DESIRABLE_VALUE = 'HIGH'"/>
356<xsl:with-param name="desirableValue"  select="$measure/DESIRABLE_VALUE"/>
357<xsl:with-param name="comparisonValue" select="$datasetRecords/RECORD[ DIMENSIONS[ (2 = count(DIMENSION)) and DIMENSION[(NAME = $Result.comparisonDimensionName) and (VALUE = $Result.comparisonDimensionValue)]]]/MEASURE/VALUE"/>
358                                        </xsl:call-template>
359                                );
360                        </xsl:if>
361
362                        <xsl:if test="$showChart">
363                        var kendoChartConstructorJSON = $.extend
364                                (true, {}
365                                        ,<xsl:call-template name="Kendo.baseChartJSON"/>
366                                        ,<xsl:call-template name="Kendo.namedConfigurationJSON">
367                                                <xsl:with-param name="configurationName" select="$request/CHART_NAME"/>
368                                        </xsl:call-template>
369                                        ,<xsl:call-template name="Kendo.requestChartJSON">
370                                                <xsl:with-param name="kendoDataSourceJavascriptVariableName" select="'kendoDataSource'"/>
371                                                <xsl:with-param name="seriesTitle"   select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/TITLE"/>
372                                                <xsl:with-param name="categoryTitle" select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='category']/TITLE"/>
373                                                <xsl:with-param name="valueTitle"    select="$measure/TITLE"/>
374
375                                                <xsl:with-param name="seriesFieldName"    select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/NAME"/>
376                                                <xsl:with-param name="categoryFieldName"  select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='category']/NAME"/>
377
378                                                <xsl:with-param name="includeDatasetSeries" select="1 &lt; $recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/VALUE_COUNT"/>
379                                                <xsl:with-param name="recordAncillaryValueFields"  select="$recordAncillaryValueFields"/>
380                                        </xsl:call-template>
381                                );
382
383                        $(window).resize(resizeKendoChart);
384                        </xsl:if>
385
386
387                        var $kendoGrid;
388                        var $kendoChart;
389                        var $leafletMap;
390                        $(document).ready(function()
391                        {
392                        <xsl:if test="$showMap">
393                                $leafletMap = $("#map").leaflet(leafletMapConstructorJSON);
394                        </xsl:if>
395                        <xsl:if test="$showChart">
396                                $kendoChart = $("#chart").kendoChart(kendoChartConstructorJSON);
397                        </xsl:if>
398                                $kendoGrid  = $("#grid").kendoGrid (kendoGridConstructorJSON);
399
400                                // "read" fires the "change" event of the dataSource and any objects
401                                // that ref the data source will be bound.  This needs to occur
402                                // after the grid and chart are created because .autoBind = false.
403                                // Can also fire load by issuing a sort:
404                                // $kendoGrid.getKendoGrid().dataSource.sort({field: "CategorySortOrder", dir: "asc"});
405                                kendoDataSource.read();
406                        }); //~~~~~~~~~~~~~~~~~~~~ End of Ready Function ~~~~~~~~~~~~~~~~~~~
407
408
409                        // Called via the chart's expandable content input element's onchange
410                        // firing this code.  Also bound to the windonws resize event to
411                        // properly resize the chart to fit the container.
412                        function resizeKendoChart()
413                        {
414                                $kendoChart.getKendoChart().resize();
415                        } //~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~
416
417                        var baseExportFilename = "<xsl:value-of select="$configuration/TITLE"/>";
418                        function exportGrid()
419                        {
420                                var grid = $("#grid").getKendoGrid();
421                                grid.options.excel.fileName = baseExportFilename + " - data.xlsx";
422                                grid.saveAsExcel();
423                        } //~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~
424                        function exportChart()
425                        {
426                                var chart = $("#chart").getKendoChart();
427
428<!--
429                                chart.exportImage().done
430                                (
431                                        function(data)
432                                        {
433                                                kendo.saveAs
434                                                ({
435                                                        dataURI: data
436                                                        ,fileName: baseExportFilename + ".png"
437                                                });
438                                        }
439                                );
440
441/* doesn't work
442                                chart.saveAsPDF();
443                                chart.exportPDF().done( function(data) { kendo.saveAs(); } );
444dataURI: "data:text/plain,Report title and text",
445*/
446-->
447                                chart.exportPDF().done
448                                (
449                                        function(data)
450                                        {
451                                                kendo.saveAs
452                                                ({
453                                                        dataURI: data
454                                                        ,fileName: baseExportFilename + " - chart.pdf"
455                                                });
456                                        }
457                                );
458                        } //~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~
459
460                        function exportMap()
461                        {
462                                alert("Map export is not current supported.");
463                        } //~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~
464                </script>
465        </xsl:template>
466
467
468        <xsl:template name="getDimensionUsage">
469                <xsl:param name="datasetRecords"/>
470                <xsl:param name="usage"/>
471                <xsl:param name="dimensionName"/>
472
473                <xsl:if test="0 != string-length($dimensionName)">
474                        <DIMENSION_USAGE>
475                                <USAGE><xsl:value-of select="$usage"/></USAGE>
476                                <NAME><xsl:value-of select="$dimensionName"/></NAME>
477                                <VALUES>
478                        <xsl:for-each select="distinct-values($datasetRecords/RECORD/DIMENSIONS/DIMENSION[NAME = $dimensionName]/VALUE/text()[1])">
479                                        <VALUE><xsl:value-of select="."/></VALUE>
480                        </xsl:for-each>
481                                </VALUES>
482                        </DIMENSION_USAGE>
483                </xsl:if>
484        </xsl:template>
485
486</xsl:stylesheet>
487<!-- ============================= End of File ============================= -->
488<!--
489
490<xsl:message select="$datasetRecords"/>
491
492<xsl:message select="concat('~~~~~~~~~~~~~~~~~~~~Page.leafletKendoScript - Records count: ', count($datasetRecords/*), ', recordDimensionFields: ', count($recordDimensionFields/*))"/>
493<xsl:message select="$recordDimensionFields"/>
494
495<xsl:message select="'============= start of IV Interactive.'"/>
496<xsl:message select="$recordDimensionFields"/>
497<xsl:message select="'============= end of IV Interactive.'"/>
498
499<xsl:message select="$Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME"/>
500<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME])"/>
501<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME])"/>
502<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]])"/>
503<xsl:message select="$Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME"/>
504<xsl:message select="concat('Interactive - Show Map: ', $Interactive.showMap, ', geoDimensionName:', $geoDimensionName)"/>
505
506<xsl:message select="'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX interact.xslt'"/>
507<xsl:message select="$Page.comparisonDimensionName"/>
508<xsl:message select="$Page.comparisonDimensionValue"/>
509<xsl:message select="$indicatorViewInteractive./RECORD"/>
510
511<xsl:message select="'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX interact.xslt'"/>
512<xsl:message select="$indicatorView/MAP_DIMENSION_NAME"/>
513<xsl:message select="$recordDimensionFields/RECORD_DIMENSION_FIELD[DIMENSION_NAMES/DIMENSION_NAME = $indicatorView/MAP_DIMENSION_NAME]/NAME"/> 
514
515-->
Note: See TracBrowser for help on using the repository browser.