source: main/trunk/ibisph-view/src/main/webapp/xslt/html/indicator/profile/view/Page.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: 25.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2
3<xsl:stylesheet version="3.0" 
4        xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" 
5        xmlns:xs  ="http://www.w3.org/2001/XMLSchema"
6        xmlns:ibis="http://www.ibisph.org"
7
8        exclude-result-prefixes="ibis xs xsl"
9>
10        <xsl:import href="../../../../xml/Interactive.xslt"/>
11        <xsl:import href="../../../../json/Dataset.xslt"/>
12        <xsl:import href="../../../../json/Kendo.xslt"/>
13        <xsl:import href="../../../../json/LeafletMap.xslt"/>
14        <xsl:import href="../../../Graphic.xslt"/>
15        <xsl:import href="../Indicator.xslt"/>
16        <xsl:import href="../Page.xslt"/>
17
18
19        <ibis:doc>
20                <name>html/indicator/profile/view/Page</name>
21                <summary>Interactive indicator profile view page</summary>
22                <description>
23                        Specific XSLT used to create the indicator profile view page.
24                </description>
25        </ibis:doc>
26
27
28
29        <xsl:param name="Page.pageTitle" ibis:doc="Page's title text based on the 'INDICATOR/TITLE' element.">
30                Health Indicator Report - <xsl:value-of select="ibis:getCompleteIndicatorViewTitle($indicator, $indicatorView, $Indicator.dimensions)"/> 
31        </xsl:param>
32        <xsl:param name="Page.sectionsTitle" ibis:doc="Page's content block title text based on the 'INDICATOR/TITLE' element.">
33                Health Indicator Report of <xsl:value-of select="ibis:getCompleteIndicatorViewTitle($indicator, $indicatorView, $Indicator.dimensions)"/> 
34        </xsl:param>
35
36        <xsl:param name="Page.comparisonDimensionName"  select="'GeoState'"/>
37        <xsl:param name="Page.comparisonDimensionValue" select="'35'"/>
38
39        <xsl:param name="Page.showMap" select="ibis:Graphic.showMap(
40                        /INDICATOR_VIEW/MAP_NAME,
41                        /INDICATOR_VIEW/DIMENSION_USAGES/DIMENSION_USAGE[USAGE='category']/NAME,
42                        /INDICATOR_VIEW/DIMENSION_USAGES/DIMENSION_USAGE[USAGE='series']/NAME,
43                        '',
44                        $Indicator.dimensions
45                )"
46        /> 
47        <xsl:param name="Page.showChart" select="ibis:Graphic.showChart(/INDICATOR_VIEW/CHART_NAME)"/>
48
49        <xsl:param name="Indicator.contentBlockType" select="'fixed'"/>
50        <xsl:param name="Indicator.contentBlockTitleLevel" select="3"/>
51
52
53
54        <xsl:template name="Page.sectionsContent" ibis:doc="Main page content template that determines if IP or Surrogate.">
55                <xsl:choose>
56                        <xsl:when test="0 = string-length($indicatorView/SURROGATE_VIEW_URL)">
57                                <xsl:call-template name="Page.interativeContent">
58                                        <xsl:with-param name="indicator"     select="$indicator"/>
59                                        <xsl:with-param name="indicatorView" select="$indicatorView"/>
60                                </xsl:call-template>
61                        </xsl:when>
62                        <xsl:otherwise>
63                                <xsl:call-template name="Page.insertAJAXContent">
64                                        <xsl:with-param name="sourceContentURL" select="$indicatorView/SURROGATE_VIEW_URL"/>
65                                </xsl:call-template>
66                        </xsl:otherwise>
67                </xsl:choose>
68        </xsl:template>
69
70
71        <xsl:template name="Page.interativeContent"
72                ibis:doc="Main interactive sections content template."
73        >
74                <xsl:param name="indicator"/>
75                <xsl:param name="indicatorView"/>
76
77                <xsl:variable name="measureName" select="$indicatorView/MEASURE_NAME"/>
78                <xsl:variable name="measure"     select="($indicator//MEASURE[NAME = $measureName])[1]"/>
79
80                <xsl:call-template name="ContentContainer.expandable">
81                        <xsl:with-param name="title"   select="'Why Is This Important?'"/>
82                        <xsl:with-param name="content" select="$indicator/WHY_IMPORTANT"/>
83                        <xsl:with-param name="description" select="'Text that describes why this indicator is important to the populations overall health'"/>
84                        <xsl:with-param name="show"    select="true()"/>
85                        <xsl:with-param name="additionalClasses" select="'Text'"/>
86                        <xsl:with-param name="addWikiAttribute"  select="true()"/>
87                </xsl:call-template>
88<!-- GARTH TODO: remove
89<xsl:message select="$indicatorView/MAP_NAME"/>
90<xsl:message select="$indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[USAGE='category']/NAME"/>
91<xsl:message select="$indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[USAGE='series']/NAME"/>
92<xsl:message select="$indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[USAGE='constant']/NAME"/>
93<xsl:message select="$Page.showMap"/>
94-->
95
96                <xsl:if test="$Page.showMap">
97                        <xsl:call-template name="ContentContainer.expandable">
98                                <xsl:with-param name="title" select="'Map'"/>
99                                <xsl:with-param name="content">
100                                        <xsl:call-template name="Graphic.mapContainer">
101                                                <xsl:with-param name="containerID" select="'map'"/>
102                                                <xsl:with-param name="title" select="ibis:getIndicatorViewMapTitle($indicator, $indicatorView, $Indicator.dimensions)"/>
103                                        </xsl:call-template>
104                                        <xsl:call-template name="Indicator.contentBlock">
105                                                <xsl:with-param name="content" select="$indicatorView/MAP_NARRATIVE"/>
106                                                <xsl:with-param name="contentBlockType" select="'fixed'" tunnel="yes"/>
107                                        </xsl:call-template>
108                                </xsl:with-param>
109                                <xsl:with-param name="show" select="true()"/>
110                                <xsl:with-param name="addWikiAttribute" select="false()"/>
111                                <xsl:with-param name="description" select="'Choropleth/thematic map.'"/>
112                        </xsl:call-template>
113                </xsl:if>
114
115                <xsl:if test="$Page.showChart">
116                        <xsl:call-template name="ContentContainer.expandable">
117                                <xsl:with-param name="title" select="if('Line'=$indicatorView/CHART_NAME) then 'Trend' else 'Chart'"/>
118                                <xsl:with-param name="content">
119                                        <xsl:call-template name="Graphic.chartContainer">
120                                                <xsl:with-param name="containerID" select="'chart'"/>
121                                        </xsl:call-template>
122                                        <xsl:call-template name="Indicator.contentBlock">
123                                                <xsl:with-param name="content" select="$indicatorView/CHART_NARRATIVE"/>
124                                                <xsl:with-param name="contentBlockType" select="'fixed'" tunnel="yes"/>
125                                        </xsl:call-template>
126                                </xsl:with-param>
127                                <xsl:with-param name="show" select="not($Page.showMap)"/>
128                                <xsl:with-param name="addWikiAttribute" select="false()"/>
129                        </xsl:call-template>
130                </xsl:if>
131
132                <xsl:call-template name="ContentContainer.expandable">
133                        <xsl:with-param name="title" select="'Supplemental Graphic'"/>
134                        <xsl:with-param name="content">
135                                <xsl:call-template name="Indicator.supplementalImage">
136                                        <xsl:with-param name="indicatorView" select="$indicatorView"/>
137                                </xsl:call-template>
138                        </xsl:with-param>
139                        <xsl:with-param name="show" select="true()"/>
140                        <xsl:with-param name="addWikiAttribute" select="false()"/>
141                </xsl:call-template>
142
143                <xsl:call-template name="ContentContainer.expandable">
144                        <xsl:with-param name="title" select="'Data Notes'"/>
145                        <xsl:with-param name="content">
146                                <xsl:call-template name="Indicator.dataNotes">
147                                        <xsl:with-param name="title"         select="''"/>
148                                        <xsl:with-param name="measure"       select="$Indicator.measure"/>
149                                        <xsl:with-param name="indicatorView" select="$indicatorView"/>
150                                </xsl:call-template>
151                        </xsl:with-param>
152                        <xsl:with-param name="show" select="true()"/>
153                </xsl:call-template>
154
155                <xsl:call-template name="ContentContainer.expandable">
156                        <xsl:with-param name="title" select="'Data Table'"/>
157                        <xsl:with-param name="content">
158                                <div class="Graphic Grid ScrollableContainer">
159                                        <div id="grid"></div>
160<br/><br/>
161GARTH TODO: Data table footnote needs to include the VALUE ATTRIBUTE codes and titles.
162<br/><br/>
163                                </div>
164                        </xsl:with-param>
165                        <xsl:with-param name="show" select="false()"/>
166                        <xsl:with-param name="addWikiAttribute" select="false()"/>
167                </xsl:call-template>
168
169
170                <xsl:call-template name="ContentContainer.expandable">
171                        <xsl:with-param name="title" select="'Data Definitions &amp; Sources'"/>
172                        <xsl:with-param name="content">
173                                <xsl:call-template name="Indicator.definition"/>
174                                <xsl:call-template name="Indicator.howCalculated"/>
175                                <xsl:call-template name="Indicator.dataSources"/>
176                        </xsl:with-param>
177                        <xsl:with-param name="show"        select="false()"/>
178                        <xsl:with-param name="description" select="'Metadata for this health indicator.'"/>
179                </xsl:call-template>
180
181
182                <xsl:call-template name="ContentContainer.expandable">
183                        <xsl:with-param name="title" select="'Health Objectives and Targets'"/>
184                        <xsl:with-param name="content">
185                                <xsl:call-template name="Indicator.initiatives"/>
186                                <xsl:call-template name="Indicator.otherObjectives"/>
187                        </xsl:with-param>
188                        <xsl:with-param name="description" select="'Goals and objectives for this health indicator.'"/>
189                </xsl:call-template>
190
191                <xsl:call-template name="ContentContainer.expandable">
192                        <xsl:with-param name="title" select="'Current Outlook'"/>
193                        <xsl:with-param name="content">
194                                <xsl:call-template name="Indicator.howDoing"/>
195                                <xsl:call-template name="Indicator.howCompare"/>
196                        </xsl:with-param>
197                        <xsl:with-param name="description" select="'How are we doing, how do we compare.'"/>
198                </xsl:call-template>
199
200                <xsl:call-template name="ContentContainer.expandable">
201                        <xsl:with-param name="title" select="'Health Improvement Resources'"/>
202                        <xsl:with-param name="content">
203                                <xsl:call-template name="Indicator.whatDoing"/>
204                                <xsl:call-template name="Indicator.evidenceBasedPractices"/>
205                                <xsl:call-template name="Indicator.availableServices"/>
206                                <xsl:call-template name="Indicator.moreResources"/>
207                                <xsl:call-template name="Indicator.otherInformation"/>
208                        </xsl:with-param>
209                        <xsl:with-param name="description" select="'Other related information and resources.'"/>
210                </xsl:call-template>
211
212                <xsl:call-template name="ContentContainer.expandable">
213                        <xsl:with-param name="title" select="'References'"/>
214                        <xsl:with-param name="content">
215                                <xsl:call-template name="Indicator.footnoteReferences"/>
216                        </xsl:with-param>
217                        <xsl:with-param name="description" select="'References that may / might not be cited on this page.'"/>
218                </xsl:call-template>
219
220                <xsl:call-template name="Indicator.allDates"/>
221
222                <xsl:call-template name="Page.leafletKendoScript">
223                        <xsl:with-param name="indicatorView" select="$indicatorView"/>
224                        <xsl:with-param name="measure"       select="$Indicator.measure"/>
225                        <xsl:with-param name="showMap"       select="$Page.showMap"/>
226                        <xsl:with-param name="baseExportFilename" select="ibis:getCompleteIndicatorViewTitle($indicator, $indicatorView, $Indicator.dimensions)"/> 
227                </xsl:call-template>
228        </xsl:template>
229
230
231
232        <xsl:template name="Page.leafletKendoScript" ibis:doc="Provides the kendo and leaflet javascript.">
233                <xsl:param name="indicatorView"/>
234                <xsl:param name="measure"/>
235                <xsl:param name="showMap"/> 
236                <xsl:param name="baseExportFilename" select="$indicatorView/TITLE"/> 
237
238                <xsl:if test="$showMap">
239                        <xsl:call-template name="Graphic.choroplethMapJavaScript"/>
240                </xsl:if>
241
242                <xsl:variable name="measureValueFormatPattern" select="($Indicator.valueTypes/VALUE_TYPE[NAME = $measure/VALUE_TYPE_NAME]/XSLT_FORMAT_PATTERN)[1]"/>
243                <xsl:variable name="ancillaryValueNames" select="distinct-values($indicator/DATASETS/DATASET[NAME = $indicatorView/DATASET_NAMES/DATASET_NAME]/ANCILLARY_VALUE_USAGES/ANCILLARY_VALUE_USAGE/NAME)"/>
244                <xsl:variable name="recordAncillaryValueFields">
245                        <xsl:call-template name="Interactive.getIndicatorRecordAncillaryValueFields">
246                                <xsl:with-param name="indicator"     select="$indicator"/>
247                                <xsl:with-param name="indicatorView" select="$indicatorView"/>
248                                <xsl:with-param name="ancillaryValueNames" select="$ancillaryValueNames"/>
249                                <xsl:with-param name="ancillaryValues" select="$Indicator.ancillaryValues"/>
250                                <xsl:with-param name="valueTypes"      select="$Indicator.valueTypes"/>
251                                <xsl:with-param name="measureValueFormatPattern" select="$measureValueFormatPattern"/>
252                        </xsl:call-template>
253                </xsl:variable>
254<!-- GARTH TODO: remove
255<xsl:message select="'xxxxxxxxxxxxxxxxxxxxxxx'"/>
256<xsl:message select="$recordAncillaryValueFields"/>
257-->
258
259                <xsl:variable name="recordDimensionFields">
260                        <xsl:call-template name="Interactive.getRecordDimensionFields">
261                                <xsl:with-param name="dimensions"      select="$Indicator.dimensions"/>
262                                <xsl:with-param name="dimensionUsages" select="$indicatorView/DIMENSION_USAGES"/>
263                        </xsl:call-template>
264                </xsl:variable>
265                <xsl:variable name="datasetRecords" select="$indicator/DATASETS/DATASET[NAME = $indicatorView/DATASET_NAMES/DATASET_NAME]/RECORDS"/>
266                <xsl:variable name="indicatorViewDatasetRecords">
267                        <xsl:call-template name="Interactive.getIndicatorViewDatasetRecords">
268                                <xsl:with-param name="datasetRecords"  select="$datasetRecords"/>
269                                <xsl:with-param name="dimensionUsages" select="$indicatorView/DIMENSION_USAGES"/>
270                                <xsl:with-param name="recordDimensionFields" select="$recordDimensionFields"/>
271                        </xsl:call-template>
272                </xsl:variable>
273
274                <!-- tried doing jsonp tech but callback func must be defined before doing the script jsonp
275                        so you'd have the variable = null, call back, end of script, include jsonp, then contructor
276                        script.  Very messy - decided just to do simple var and include it.
277                -->
278                <script type="text/javascript" src="{$ibis.urlPrefix}js/jszip.js"/>
279                <script type="text/javascript">
280                        var records =
281                        [<xsl:text>&#10;</xsl:text>
282                                <xsl:call-template name="Dataset.getDatasetRecordsJSON">
283                                        <xsl:with-param name="dimensions"                 select="$Indicator.dimensions"/>
284                                        <xsl:with-param name="datasetRecords"             select="$indicatorViewDatasetRecords"/>
285                                        <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
286                                        <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
287                                        <xsl:with-param name="measureValueFormatPattern"  select="$measureValueFormatPattern"/>
288                                </xsl:call-template>
289                        ];
290
291                        var kendoDataSource = new kendo.data.DataSource(
292                                <xsl:call-template name="Kendo.dataSourceConstructorJSON">
293                                        <xsl:with-param name="javascriptRecordArrayVariableName" select="'records'"/>
294                                        <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
295                                        <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
296                                </xsl:call-template>
297                        );
298
299                        var kendoGridConstructorJSON = $.extend
300                        (true, {}
301                                ,<xsl:call-template name="Kendo.baseGridJSON"/>
302                                ,<xsl:call-template name="Kendo.namedConfigurationJSON">
303                                        <xsl:with-param name="configurationName" select="'IndicatorProfileGrid'"/>
304                                </xsl:call-template>
305                                ,<xsl:call-template name="Kendo.requestGridJSON">
306                                        <xsl:with-param name="kendoDataSourceJavascriptVariableName" select="'kendoDataSource'"/>
307                                        <xsl:with-param name="measure" select="$measure"/>
308                                        <xsl:with-param name="recordDimensionFields"      select="$recordDimensionFields"/>
309                                        <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
310<!-- GARTH TODO: note, label and VALUE ATTRIBUTE columns
311-->
312<xsl:with-param name="showValueAttributeColumn" select="exists($indicatorViewDatasetRecords/RECORD[0 != string-length(VALUE_ATTRIBUTE_NAME)])"/>
313<xsl:with-param name="showLabelColumn"          select="exists($indicatorViewDatasetRecords/RECORD[0 != string-length(LABEL)])"/>
314<xsl:with-param name="showNoteColumn"           select="exists($indicatorViewDatasetRecords/RECORD[0 != string-length(NOTE)])"/>
315                                </xsl:call-template>
316                        );
317
318<xsl:message select="'gggggggggggggg'"/>
319<xsl:message select="count($indicatorViewDatasetRecords/RECORD[0 != string-length(LABEL)])"/>
320<xsl:message select="exists($indicatorViewDatasetRecords/RECORD[0 != string-length(LABEL)])"/>
321<xsl:message select="$indicatorViewDatasetRecords/RECORD[0 != string-length(LABEL)]"/>
322<xsl:message select="'xxxxxxxxxxxx'"/>
323<xsl:message select="count($indicatorViewDatasetRecords/RECORD[0 != string-length(NOTE)])"/>
324<xsl:message select="'zzzzzzzzzz'"/>
325<xsl:message select="string-length($indicatorViewDatasetRecords/RECORD/NOTE)"/>
326
327
328                        var kendoChartConstructorJSON = $.extend
329                        (true, {}
330                                ,<xsl:call-template name="Kendo.baseChartJSON"/>
331                                ,<xsl:call-template name="Kendo.namedConfigurationJSON">
332                                        <xsl:with-param name="configurationName" select="$indicatorView/CHART_NAME"/>
333                                </xsl:call-template>
334                                ,<xsl:call-template name="Kendo.requestChartJSON">
335                                        <xsl:with-param name="kendoDataSourceJavascriptVariableName" select="'kendoDataSource'"/>
336                                        <xsl:with-param name="title"         select="ibis:getIndicatorViewChartTitle($indicator, $indicatorView, $Indicator.dimensions)"/>
337                                        <xsl:with-param name="seriesTitle"   select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/TITLE"/>
338                                        <xsl:with-param name="categoryTitle" select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='category']/TITLE"/>
339                                        <xsl:with-param name="valueTitle"    select="$measure/TITLE"/>
340
341                                        <xsl:with-param name="seriesFieldName"    select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/NAME"/>
342                                        <xsl:with-param name="categoryFieldName"  select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='category']/NAME"/>
343
344                                        <xsl:with-param name="includeDatasetSeries" select="1 &lt; $recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']/VALUE_COUNT"/>
345                                        <xsl:with-param name="recordAncillaryValueFields" select="$recordAncillaryValueFields"/>
346                                </xsl:call-template>
347                        );
348                        console.debug("IP.Page.xslt (%o, kendoChartConstructorJSON, (JSON.stringify(kendoChartConstructorJSON):");
349                        console.debug("%o", kendoChartConstructorJSON);
350                        console.debug(JSON.stringify(kendoChartConstructorJSON,null,2)); 
351
352                        var $kendoGrid;
353                        var $kendoChart;
354                        var $leafletMap;
355                        $(document).ready(function()
356                        {
357                                $kendoGrid  = $("#grid").kendoGrid (kendoGridConstructorJSON);
358                                $kendoChart = $("#chart").kendoChart(kendoChartConstructorJSON);
359                                kendoDataSource.read();         // have to have after grid and chart because .autoBind = false.
360//                              $kendoChart.width(1000);
361//                              $kendoChart.chartArea.width(1000);
362//                              $kendoChart.resize();
363                               
364/* GARTH TODO:
365$("#grid tr[role='row']").on("mouseenter mouseover", function () {
366        var row = $("#grid").data("kendoGrid").dataItem(this); //get the data item attached to this row being hovered
367        chart.toggleHighlight(true,
368                function(point)
369                {
370                        return point.dataItem.Id === row.rowID;
371                }
372        ); //show the tooltip for the point where the Ids match
373});
374*/
375
376
377<!-- =====================================================
378
379GARTH TODO:
380
381// var firstSlot = $kendoChart.getKendoChart()._plotArea.axes[0].getSlot(0);
382// alert("first slot width" + firstSlot.width());
383
384<xsl:variable name="geoDimensionName" select="
385        if(0 != string-length($indicatorView/DEFAULT_GEOGRAPHY_DIM_NAME))
386        then $indicatorView/DEFAULT_GEOGRAPHY_DIM_NAME
387        else ($Indicator.dimensions/DIMENSION[
388                        exists(GEOGRAPHY_FLAG)
389                        and
390                        NAME = $indicatorView//DIMENSION_USAGE/NAME
391                ])[1]/NAME"
392/>
393
394<xsl:message select="$Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME"/>
395<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME])"/>
396<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME])"/>
397<xsl:message select="exists($indicatorView/DIMENSION_USAGES/DIMENSION_USAGE[DIMENSION_NAME = $Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]])"/>
398<xsl:message select="$Indicator.dimensions/DIMENSION[exists(GEOGRAPHY_FLAG)]/NAME"/>
399<xsl:message select="concat('Interactive - Show Map: ', $showMap, ', geoDimensionName:', $geoDimensionName)"/>
400
401<xsl:message select="'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX interact.xslt'"/>
402<xsl:message select="$Page.comparisonDimensionName"/>
403<xsl:message select="$Page.comparisonDimensionValue"/>
404<xsl:with-param name="comparisonValue" select="$indicatorViewDatasetRecords/RECORD[ DIMENSIONS[ (2 = count(DIMENSION)) and DIMENSION[(NAME = $Page.comparisonDimensionName)     and (VALUE = $Page.comparisonDimensionValue)]]]/MEASURE/VALUE"/>
405
406Stuff to try when doing dashboard
407function dataSource_change(e) {
408  console.log(e);
409}
410kendoDataSource.bind("change", dataSource_change);
411select="$indicatorViewDatasetRecords/RECORD[ DIMENSIONS[ (2 = count(DIMENSION)) and DIMENSION[(NAME = $Page.comparisonDimensionName)     and (VALUE = $Page.comparisonDimensionValue)]]]/MEASURE/VALUE"/>
412
413**********************************************
414
415PROBLEM: "CATEGORY":"GeoCnty.4"
416                                                <xsl:with-param name="geoJSONName"      select="$indicatorView/MAP_DIMENSION_NAME"/>
417                                               
418******************
419probably need to geojson to have the geodim name + . + geodim value to uniquely ID the area.
420
421************ PROBLEM is that the QM only returns 1..31 and not GeoCnty.1
422
423The IP and QM dimension files are all 1..31
424
425So, need the field name then use the geotype and parse the .XXX from the end.
426Then in the QM will need to build the JSON fields the same way as we do with
427the IP - which is the right way to do it anyway so fields can be combined???
428
429*** also have issues with if 2d and 3d...
430        if mult series then drop down for that.
431        if mult constants then drop down for that as well.
432        when changed regen map.
433        Need to specify the category field name and value
434        Need to specify the series field name and value
435        Need to specify the constant field name and value
436       
437        GeoJSON GeoID Prefix to add when doing comparison???
438
439        <xsl:variable name="communityDatasets" select="$indicator/DATASETS/DATASET[DIMENSION_COMBINATIONS/DIMENSION_COMBINATION[not(DIMENSION_2/NAME) and DIMENSION_1/NAME = $communityDimensionName]]"/>
440        <xsl:variable name="communityDataset"  select="$communityDatasets[(MEASURE_NAME = $measureName) and DIMENSION_COMBINATIONS/DIMENSION_COMBINATION[PERIOD_DIMENSION/NAME = $periodName]]"/>
441        <xsl:variable name="stateRecord"       select="$communityDataset/RECORDS/RECORD[ DIMENSIONS[ (2 = count(DIMENSION)) and DIMENSION[(NAME = $stateDimensionName)     and (VALUE = $stateDimensionValue)]     and DIMENSION[(NAME = $periodName) and (VALUE = $periodValue)]]]"/>
442
443
444GARTH TODO:
445        <xsl:message select="'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'"/>
446<xsl:message select="$indicatorViewDatasetRecords[1]"/>
447
448
449
450<xsl:with-param name="dimensionFieldInclusionCriteria">
451records have the field names to filter.
452to include need field name and value.
453
454specifies the records held constant - This is to filter out not matching constant records
455
456for mouse overs, the title needs specifics - dimension title and dimension value title.
457        <DIMENSION><NAME>CONSTANT</NAME><VALUE>YearAll.2014</VALUE><TITLE>Year</TITLE><VALUE_TITLE>2014</VALUE_TITLE></DIMENSION>
458        <DIMENSION><NAME>SERIES</NAME><VALUE>Sex.1</VALUE><TITLE>Sex</TITLE><VALUE_TITLE>Male</VALUE_TITLE></DIMENSION>
459</xsl:with-param>
460
461==========================================================================
462<xsl:message select="$indicatorViewDatasetRecords/RECORD"/>
463
464<xsl:message select="'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX interact.xslt'"/>
465<xsl:message select="$indicatorView/MAP_DIMENSION_NAME"/>
466<xsl:message select="$recordDimensionFields/RECORD_DIMENSION_FIELD[DIMENSION_NAMES/DIMENSION_NAME = $indicatorView/MAP_DIMENSION_NAME]/NAME"/> 
467-->
468
469                        <xsl:if test="$Page.showMap">
470                                var leafletMapConstructorJSON = $.extend
471                                (true, {}
472,<xsl:call-template name="LeafletMap.baseJSON"/>
473,<xsl:call-template name="LeafletMap.namedConfigurationJSON">
474        <xsl:with-param name="configurationName" select="$indicatorView/MAP_NAME"/>
475</xsl:call-template>
476,<xsl:call-template name="LeafletMap.requestJSON"> 
477<!--    <xsl:with-param name="mapTitle"      select="'Choropleth'"/> -->
478        <xsl:with-param name="mapType"       select="'choropleth'"/>
479</xsl:call-template>
480,<xsl:call-template name="LeafletMap.choroplethJSON">
481        <xsl:with-param name="javascriptRecordArrayVariableName" select="'records'"/>
482        <xsl:with-param name="geoJSONName"      select="$indicatorView/MAP_DIMENSION_NAME"/>
483        <xsl:with-param name="geoIDFieldName"   select="$recordDimensionFields/RECORD_DIMENSION_FIELD[DIMENSION_NAMES/DIMENSION_NAME = $indicatorView/MAP_DIMENSION_NAME]/NAME"/> 
484        <xsl:with-param name="geoIDFieldValuePrefixToRemove"   select="concat($indicatorView/MAP_DIMENSION_NAME, '.')"/>
485        <xsl:with-param name="measureValueFieldName" select="'MeasureValue'"/>
486        <xsl:with-param name="legendTitle"   select="$measure/TITLE"/>
487        <xsl:with-param name="geoTypeTitle"  select="ibis:getDimensionTitle($indicator//DIMENSIONS/DIMENSION[NAME = $indicatorView/MAP_DIMENSION_NAME])"/>
488        <xsl:with-param name="reverseColors" select="$measure/DESIRABLE_VALUE = 1"/>
489        <xsl:with-param name="desirableIndexValue" select="$measure/DESIRABLE_VALUE"/>
490
491<xsl:with-param name="comparisonValue" select="$indicatorViewDatasetRecords/RECORD[ DIMENSIONS[ (2 = count(DIMENSION)) and DIMENSION[(NAME = $Page.comparisonDimensionName)     and (VALUE = $Page.comparisonDimensionValue)]]]/MEASURE/VALUE"/>
492
493</xsl:call-template>
494                                );
495                                $leafletMap = $("#map").leaflet(leafletMapConstructorJSON);
496                        </xsl:if>
497
498                        }); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
499
500
501                        var baseExportFilename = "<xsl:value-of select="$baseExportFilename"/>";
502
503                        function exportGrid()
504                        {
505                                var grid = $("#grid").getKendoGrid();
506                                grid.options.excel.fileName = baseExportFilename + " - data.xlsx";
507                                grid.saveAsExcel();
508                        } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
509
510                        function exportChart()
511                        {
512                                var chart = $("#chart").getKendoChart();
513
514<!--
515                                chart.exportImage().done
516                                (
517                                        function(data)
518                                        {
519                                                kendo.saveAs
520                                                ({
521                                                        dataURI: data
522                                                        ,fileName: baseExportFilename + ".png"
523                                                });
524                                        }
525                                );
526
527/* doesn't work
528                                chart.saveAsPDF();
529                                chart.exportPDF().done( function(data) { kendo.saveAs(); } );
530dataURI: "data:text/plain,Report title and text",
531*/
532-->
533                                chart.exportPDF().done
534                                (
535                                        function(data)
536                                        {
537                                                kendo.saveAs
538                                                ({
539                                                        dataURI: data
540                                                        ,fileName: baseExportFilename + " - chart.pdf"
541                                                });
542                                        }
543                                );
544
545                        } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546
547                        function exportMap()
548                        {
549                                alert("Map export is not current supported.");
550                        } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
551                </script>
552
553        </xsl:template>
554
555</xsl:stylesheet>
556<!-- ============================= End of File ============================= -->
Note: See TracBrowser for help on using the repository browser.