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

Last change on this file since 17710 was 17710, checked in by GarthBraithwaite_STG, 8 months ago

view - Updated kendo js and css. Updated jquery to 3.3. Tweaks to the CP xslt code. Added community TITLE to the compare XML. Added support for IP useExternalXML. Started grid VA support.

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