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

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

db, admin, view, java - Added INITIATIVE GOAL and BASELINE values to the db and beans. Added ability to publish the raw INITs. Added updated kendo code to deal with some charts not expanding to 100% when contained within a hidden block. Also added window event to resize the chart. Fixed chart title adding mult \n when grid sort clicked. Added inputOnChangeAttribute to the ContentContainer?.xslt to allow js event handling on expand/collapse. Updated IP and QM result script generations to be similar.

File size: 23.6 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                <xsl:variable name="dimensionUsages" 
212                        ibis:doc="Builds a dim usages struct like:
213                                DIMENSION_USAGES
214                                        DIMENSION_USAGE
215                                                USAGE category
216                                                NAME Year
217                                                VALUES
218                                                        VALUE 2012
219                                                        VALUE 2011
220                                                        VALUE 2010
221                                                        ...
222                                        DIMENSION_USAGE
223                                                ...
224                        "
225                >
226                        <xsl:call-template name="getDimensionUsage">
227                                <xsl:with-param name="datasetRecords" select="$datasetRecords"/>
228                                <xsl:with-param name="usage" select="'category'"/>
229                                <xsl:with-param name="dimensionName" select="$request/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
230                        </xsl:call-template>
231                        <xsl:call-template name="getDimensionUsage">
232                                <xsl:with-param name="datasetRecords" select="$datasetRecords"/>
233                                <xsl:with-param name="usage" select="'series'"/>
234                                <xsl:with-param name="dimensionName" select="$request/ACTUAL_GROUP_BY/SERIES_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="'constant'"/>
239                                <xsl:with-param name="dimensionName" select="$request/ACTUAL_GROUP_BY/CONSTANT_DIMENSION_NAME"/>
240                        </xsl:call-template>
241                </xsl:variable>
242
243                <xsl:variable name="recordDimensionFields">
244                        <xsl:call-template name="Interactive.getRecordDimensionFields">
245                                <xsl:with-param name="dimensions"      select="$dimensions"/>
246                                <xsl:with-param name="dimensionUsages" select="$dimensionUsages"/>
247                        </xsl:call-template>
248                </xsl:variable>
249
250                <xsl:variable name="recordAncillaryValueFields">
251                        <xsl:call-template name="Interactive.getQueryRecordAncillaryValueFields">
252                                <xsl:with-param name="ancillaryValueUsage" select="$configuration/ANCILLARY_VALUE_USAGES"/>
253                                <xsl:with-param name="ancillaryValues"     select="$Result.ancillaryValues"/>
254                                <xsl:with-param name="valueTypes"          select="$Result.valueTypes"/>
255                                <xsl:with-param name="measureValueFormatPattern" select="$measureValueFormatPattern"/>
256                        </xsl:call-template>
257                </xsl:variable>
258
259                <!-- tried doing jsonp tech but callback func must be defined before doing the script jsonp
260                        so you'd have the variable = null, call back, end of script, include jsonp, then contructor
261                        script.  Very messy - decided just to do simple var and include it.
262                -->
263                <xsl:if test="$showMap">
264                        <xsl:call-template name="Graphic.choroplethMapJavaScript"/>
265                </xsl:if>
266                <script type="text/javascript" src="{$ibis.urlPrefix}js/jszip.js"/>
267                <script type="text/javascript">
268                        var records =
269                        [<xsl:text>&#10;</xsl:text>
270                                <xsl:call-template name="Dataset.getDatasetRecordsJSON">
271                                        <xsl:with-param name="dimensions"                 select="$dimensions"/>
272                                        <xsl:with-param name="datasetRecords"             select="$datasetRecords"/>
273                                        <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
274                                        <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
275                                        <xsl:with-param name="measureValueFormatPattern"  select="$measureValueFormatPattern"/>
276                                </xsl:call-template>
277                        ];
278
279                        var kendoDataSource = new kendo.data.DataSource(
280                                <xsl:call-template name="Kendo.dataSourceConstructorJSON">
281                                        <xsl:with-param name="javascriptRecordArrayVariableName" select="'records'"/>
282                                        <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
283                                        <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
284                                </xsl:call-template>
285                        );
286
287                        <xsl:variable name="recordDimensionCount" select="count($recordDimensionFields/RECORD_DIMENSION_FIELD[VALUE_COUNT != 0])"/>
288                        <xsl:variable name="grandTotalDatasetRecord" select="$datasetRecords//RECORD[$recordDimensionCount  = count(DIMENSIONS/DIMENSION[VALUE/text() = $Result.ibisqAllValue])]"/>
289                        var kendoGridConstructorJSON = $.extend
290                                (true, {}
291                                        ,<xsl:call-template name="Kendo.baseGridJSON"/>
292                                        ,<xsl:call-template name="Kendo.namedConfigurationJSON">
293                                                <xsl:with-param name="configurationName" select="'IndicatorProfileGrid'"/>
294                                        </xsl:call-template>
295                                        ,<xsl:call-template name="Kendo.requestGridJSON">
296                                                <xsl:with-param name="kendoDataSourceJavascriptVariableName" select="'kendoDataSource'"/>
297                                                <xsl:with-param name="measure" select="$measure"/>
298                                                <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
299                                                <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
300                                                <xsl:with-param name="footerValues">
301                                                        <VALUE><xsl:value-of select="ibis:getFormattedNumber($grandTotalDatasetRecord/MEASURE/VALUE, $measureValueFormatPattern)"/></VALUE>
302                                                        <xsl:for-each select="$recordAncillaryValueFields/RECORD_ANCILLARY_VALUE_FIELD">
303                                                                <VALUE><xsl:value-of select="ibis:getFormattedNumber($grandTotalDatasetRecord/ANCILLARY_VALUES/ANCILLARY_VALUE[NAME = current()/NAME]/VALUE, current()/XSLT_FORMAT_PATTERN)"/></VALUE>
304                                                        </xsl:for-each>
305                                                </xsl:with-param>
306<xsl:with-param name="showValueAttributeColumn" select="0 != count($datasetRecords/RECORD/VALUE_ATTRIBUTE_NAME)"/>
307                                                <xsl:with-param name="showNoteColumn"  select="false()"/>
308                                                <xsl:with-param name="showLabelColumn" select="false()"/>
309                                        </xsl:call-template>
310                                );
311
312                        <xsl:if test="$showMap">
313                        var leafletMapConstructorJSON = $.extend
314                                (true, {}
315                                        ,<xsl:call-template name="LeafletMap.baseJSON"/>
316                                        ,<xsl:call-template name="LeafletMap.namedConfigurationJSON">
317                                                <xsl:with-param name="configurationName" select="$configuration/MAP_NAME"/>
318                                        </xsl:call-template>
319                                        ,<xsl:call-template name="LeafletMap.requestJSON"> 
320<xsl:with-param name="mapType"       select="'choropleth'"/>
321                                        </xsl:call-template>
322
323                                        ,<xsl:call-template name="LeafletMap.choroplethJSON">
324                                                <xsl:with-param name="javascriptRecordArrayVariableName" select="'records'"/>
325<xsl:with-param name="geoJSONName" select="$request/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
326
327<xsl:with-param name="geoIDFieldName"   select="'Category'"/> 
328<xsl:with-param name="geoIDFieldValuePrefixToRemove"   select="concat($request/ACTUAL_GROUP_BY/CATEGORY_DIMENSION_NAME, '.')"/>
329<xsl:with-param name="measureValueFieldName" select="'MeasureValue'"/>
330<xsl:with-param name="legendTitle"   select="$measure/TITLE"/>
331<xsl:with-param name="geoTypeTitle"  select="ibis:getDimensionTitle($queryModule//DIMENSIONS/DIMENSION[NAME = $configuration/MAP_DIMENSION_NAME])"/>
332<xsl:with-param name="reverseColors" select="$measure/DESIRABLE_VALUE = 1"/>
333<xsl:with-param name="desirableIndexValue" select="$measure/DESIRABLE_VALUE"/>
334<xsl:with-param name="comparisonValue" select="$datasetRecords/RECORD[ DIMENSIONS[ (2 = count(DIMENSION)) and DIMENSION[(NAME = $Result.comparisonDimensionName) and (VALUE = $Result.comparisonDimensionValue)]]]/MEASURE/VALUE"/>
335                                        </xsl:call-template>
336                                );
337                        </xsl:if>
338
339                        <xsl:if test="$showChart">
340                        var kendoChartConstructorJSON = $.extend
341                                (true, {}
342                                        ,<xsl:call-template name="Kendo.baseChartJSON"/>
343                                        ,<xsl:call-template name="Kendo.namedConfigurationJSON">
344                                                <xsl:with-param name="configurationName" select="$request/CHART_NAME"/>
345                                        </xsl:call-template>
346                                        ,<xsl:call-template name="Kendo.requestChartJSON">
347                                                <xsl:with-param name="kendoDataSourceJavascriptVariableName" select="'kendoDataSource'"/>
348                                                <xsl:with-param name="seriesTitle"   select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/TITLE"/>
349                                                <xsl:with-param name="categoryTitle" select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='category']/TITLE"/>
350                                                <xsl:with-param name="valueTitle"    select="$measure/TITLE"/>
351
352                                                <xsl:with-param name="seriesFieldName"    select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/NAME"/>
353                                                <xsl:with-param name="categoryFieldName"  select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='category']/NAME"/>
354
355                                                <xsl:with-param name="includeDatasetSeries" select="1 &lt; $recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/VALUE_COUNT"/>
356                                                <xsl:with-param name="recordAncillaryValueFields"  select="$recordAncillaryValueFields"/>
357                                        </xsl:call-template>
358                                );
359
360                        $(window).resize(resizeKendoChart);
361                        </xsl:if>
362
363
364                        var $kendoGrid;
365                        var $kendoChart;
366                        var $leafletMap;
367                        $(document).ready(function()
368                        {
369                        <xsl:if test="$showMap">
370                                $leafletMap = $("#map").leaflet(leafletMapConstructorJSON);
371                        </xsl:if>
372                        <xsl:if test="$showChart">
373                                $kendoChart = $("#chart").kendoChart(kendoChartConstructorJSON);
374                        </xsl:if>
375                                $kendoGrid  = $("#grid").kendoGrid (kendoGridConstructorJSON);
376
377                                // "read" fires the "change" event of the dataSource and any objects
378                                // that ref the data source will be bound.  This needs to occur
379                                // after the grid and chart are created because .autoBind = false.
380                                // Can also fire load by issuing a sort:
381                                // $kendoGrid.getKendoGrid().dataSource.sort({field: "CategorySortOrder", dir: "asc"});
382                                kendoDataSource.read();
383                        }); //~~~~~~~~~~~~~~~~~~~~ End of Ready Function ~~~~~~~~~~~~~~~~~~~
384
385
386                        // Called via the chart's expandable content input element's onchange
387                        // firing this code.  Also bound to the windonws resize event to
388                        // properly resize the chart to fit the container.
389                        function resizeKendoChart()
390                        {
391                                $kendoChart.getKendoChart().resize();
392                        } //~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~
393
394                        var baseExportFilename = "<xsl:value-of select="$configuration/TITLE"/>";
395                        function exportGrid()
396                        {
397                                var grid = $("#grid").getKendoGrid();
398                                grid.options.excel.fileName = baseExportFilename + " - data.xlsx";
399                                grid.saveAsExcel();
400                        } //~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~
401                        function exportChart()
402                        {
403                                var chart = $("#chart").getKendoChart();
404
405<!--
406                                chart.exportImage().done
407                                (
408                                        function(data)
409                                        {
410                                                kendo.saveAs
411                                                ({
412                                                        dataURI: data
413                                                        ,fileName: baseExportFilename + ".png"
414                                                });
415                                        }
416                                );
417
418/* doesn't work
419                                chart.saveAsPDF();
420                                chart.exportPDF().done( function(data) { kendo.saveAs(); } );
421dataURI: "data:text/plain,Report title and text",
422*/
423-->
424                                chart.exportPDF().done
425                                (
426                                        function(data)
427                                        {
428                                                kendo.saveAs
429                                                ({
430                                                        dataURI: data
431                                                        ,fileName: baseExportFilename + " - chart.pdf"
432                                                });
433                                        }
434                                );
435                        } //~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~
436
437                        function exportMap()
438                        {
439                                alert("Map export is not current supported.");
440                        } //~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~
441                </script>
442        </xsl:template>
443
444
445        <xsl:template name="getDimensionUsage">
446                <xsl:param name="datasetRecords"/>
447                <xsl:param name="usage"/>
448                <xsl:param name="dimensionName"/>
449
450                <xsl:if test="0 != string-length($dimensionName)">
451                        <DIMENSION_USAGE>
452                                <USAGE><xsl:value-of select="$usage"/></USAGE>
453                                <NAME><xsl:value-of select="$dimensionName"/></NAME>
454                                <VALUES>
455                        <xsl:for-each select="distinct-values($datasetRecords/RECORD/DIMENSIONS/DIMENSION[NAME = $dimensionName]/VALUE/text()[1])">
456                                        <VALUE><xsl:value-of select="."/></VALUE>
457                        </xsl:for-each>
458                                </VALUES>
459                        </DIMENSION_USAGE>
460                </xsl:if>
461        </xsl:template>
462
463</xsl:stylesheet>
464<!-- ============================= End of File ============================= -->
465<!--
466        <xsl:param name="Page.dimensions" select="$Page.queryModule/DIMENSIONS"/>
467
468
469        <xsl:param name="Page.queryAncillaryValueNames" select="$Page.configuration/ANCILLARY_VALUE_NAMES/ANCILLARY_VALUE_NAME"/>
470        <xsl:param name="Page.ancillaryValues" select="$Result.ancillaryValues/ANCILLARY_VALUE[(NAME = $Page.queryAncillaryValueNames) and (ACTIVE_FLAG = 'x')]"/>
471
472        <xsl:param name="Page.queryValueTypeNames" select="$measure/VALUE_TYPE_NAME union $Result.ancillaryValues/VALUE_TYPE_NAME"/>
473        <xsl:param name="Page.valueTypes" select="$ValueTypes//VALUE_TYPE[NAME = $Page.queryValueTypeNames]"/>
474
475        <xsl:param name="Page.valueAttributes" select="$ValueAttributes/VALUE_ATTRIBUTES"/>
476        <xsl:param name="Page.valueAttributes" select="$Page.valueAttributes/VALUE_ATTRIBUITES/VALUE_ATTRIBUITE[NAME = 'x']"/>
477
478        <xsl:param name="Page.queryAncillaryValueNames" select="$Page.configuration/ANCILLARY_VALUE_NAMES/ANCILLARY_VALUE_NAME"/>
479        <xsl:param name="Page.ancillaryValues" select="$Result.ancillaryValues/ANCILLARY_VALUE[(NAME = $Page.queryAncillaryValueNames) and (ACTIVE_FLAG = 'x')]"/>
480
481        <xsl:param name="Page.queryValueTypeNames" select="$measure/VALUE_TYPE_NAME union $Result.ancillaryValues/VALUE_TYPE_NAME"/>
482
483        <xsl:param name="Page.valueAttributes" select="$ValueAttributes/VALUE_ATTRIBUTES"/>
484        <xsl:param name="Page.valueAttributes" select="$Page.valueAttributes/VALUE_ATTRIBUITES/VALUE_ATTRIBUITE[NAME = 'x']"/>
485
486<xsl:message select="$datasetRecords"/>
487
488<xsl:message select="concat('~~~~~~~~~~~~~~~~~~~~Page.leafletKendoScript - Records count: ', count($datasetRecords/*), ', recordDimensionFields: ', count($recordDimensionFields/*))"/>
489<xsl:message select="$recordDimensionFields"/>
490
491<xsl:message select="'============= start of IV Interactive.'"/>
492<xsl:message select="$recordDimensionFields"/>
493<xsl:message select="'============= end of IV Interactive.'"/>
494
495<xsl:message select="$Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME"/>
496<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME])"/>
497<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME])"/>
498<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]])"/>
499<xsl:message select="$Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME"/>
500<xsl:message select="concat('Interactive - Show Map: ', $Interactive.showMap, ', geoDimensionName:', $geoDimensionName)"/>
501
502<xsl:message select="'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX interact.xslt'"/>
503<xsl:message select="$Page.comparisonDimensionName"/>
504<xsl:message select="$Page.comparisonDimensionValue"/>
505<xsl:message select="$indicatorViewInteractive./RECORD"/>
506
507<xsl:message select="'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX interact.xslt'"/>
508<xsl:message select="$indicatorView/MAP_DIMENSION_NAME"/>
509<xsl:message select="$recordDimensionFields/RECORD_DIMENSION_FIELD[DIMENSION_NAMES/DIMENSION_NAME = $indicatorView/MAP_DIMENSION_NAME]/NAME"/> 
510
511-->
Note: See TracBrowser for help on using the repository browser.