Changeset 21448 in main


Ignore:
Timestamp:
09/02/20 22:44:54 (2 weeks ago)
Author:
GarthBraithwaite_STG
Message:

view - Added static values to maps. Query builder cleanup - removed exclude from charts and maps (can do specific includes for this), added request group bys to builder dims so can specify group by without having to have a section with proxy value, turned off chart and map selections if no values, turned off series selection if multiple dims, removed html title attrs from selection help elements. Result changed query criteria title back to simple, moved dialogs to end of data section so doesn't show up if error. Turned off kendo grid total row if no measure values - via Interactive.xslt no DATASET_RECORD_TOTAL_VALUE element if blank/non existent measure value.

Location:
trunk/ibisph-view/src/main/webapp
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/ibisph-view/src/main/webapp/js/L.Control.Choropleth.js

    r20243 r21448  
    6363                                        ,"BetterWorse":           {"title": "Better, Similar, Worse",  "description": "Uses the area's lower and upper confidence values compared against a single comparison value."}
    6464                                        ,"UniqueValues":          {"title": "Unique Values", "description": "Grouped by unique values"}
     65/* likely shouldn't be a selection this is special case for like ranks etc.
     66                                        ,"StaticValues":          {"title": "Static Values", "description": "Grouped by list of static values"}
     67*/
    6568                                }
    6669                                ,"jenksLowSampleSizeDataClass": "UniqueValues"
     
    8285                        }
    8386
    84                         // these values are typically built by the code with only the [0]
    85                         // value specified.  Put in the options for future static usage e.g
    86                         // if a user wanted to have set boundaries with certain legend titles.
    87                         // Note for this to happen another class and code to handle is needed.
     87                        // These values are typically built by the code with only the [0]
     88                        // value specified.  When the type is StaticValues then this array
     89                        // needs to be fully populated with the approrite values. 
    8890                        ,"rangeValues":                         // [0] is not used - provides an example and makes for 1 based indexing.
    8991                        [
     
    320322                }
    321323
     324                else if("StaticValues" == this.options.dataClasses.type.value)
     325                {
     326                        numberOfGroups = this.options.dataClasses.rangeValues.length - 1;
     327                }
     328
    322329                // Better Worse processing is NOT possible with geostats which uses
    323330                // boundary determinantValues.  HLS is simplay a categorization based on
     
    331338
    332339                // Do number of groups basic range testing/adjusting if needed.
     340                // If static values do not process.  Null the determin values even though
     341                // should already be null.  This skips setting up the range values as they
     342                // already exist by definition.
     343                if("StaticValues" == this.options.dataClasses.type.value)
     344                        determinantValues = null;
     345
    333346                // Better Worse/HLS can only have 3 or 4 groupings. If to small set
    334347                // to 3 else if to large set to 4.
    335                 if("BetterWorse" == this.options.dataClasses.type.value)
     348                else if("BetterWorse" == this.options.dataClasses.type.value)
    336349                {
    337350                        if(3 > numberOfGroups)
     
    356369                        }
    357370                        this._setupChoroplethGroupRangeValues(determinantValues);
    358                         console.debug("L.Control.Chorpleth._update - type: " + this.options.dataClasses.type.value + ", numberOfGroups: " + numberOfGroups + ", determinantValues: " + determinantValues + ", actual Values: " + this._geoStats.getSortedlist());
     371                        console.debug("L.Control.Chorpleth._update - type: " + this.options.dataClasses.type.value
     372                                + ", numberOfGroups: " + numberOfGroups
     373                                + ", determinantValues: " + determinantValues
     374                                + ", actual Values: " + this._geoStats.getSortedlist()
     375                        );
    359376                }
    360377
     
    459476                valuesHTML += "</ul>";
    460477
    461 
    462478                // if show legend then set to the full html.  If not show then still need
    463479                // to display the measure title and grouping type.
     
    511527        } //~~~~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    512528
     529
    513530        // Builds the dataClassIndex's legend range title
    514531        ,_getDataClassesRangeTitle: function(dataClassIndex)
     
    519536                        var numberOfGroups = this.options.dataClasses.numberOfGroups.value;
    520537                        return(this.options.dataClasses.betterWorse.legendValueTitles[numberOfGroups][dataClassIndex]);
     538                }
     539
     540                // if static and start = end then use the assoc index starting value title.
     541                else if(("StaticValues" == this.options.dataClasses.type.value)
     542                        && (this.options.dataClasses.rangeValues[dataClassIndex].startValue == this.options.dataClasses.rangeValues[dataClassIndex].endValue))
     543                {
     544                        return(this.options.dataClasses.rangeValues[dataClassIndex].startValueTitle);
    521545                }
    522546
     
    604628                var classIndex = this.getChoroplethIndex(geoID);
    605629                var classColor = this.getChoroplethColor(classIndex);
     630// console.log("******** .getChoroplethIndexAndColor, geoID: " + geoID + ", class index: " + classIndex + ", class color: " + classColor);
    606631                return( {"classIndex": classIndex, "classColor": classColor} );
    607632        } //~~~~~~~~~~~~~~~~~~~~~~~~~~~ End of Function ~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    617642                var choroplethLayerValues = this.choroplethLayerDataValues.valuesByGeoID[geoID];
    618643                var dataValue = choroplethLayerValues.measureValue;
     644                if((null == dataValue) || (undefined == dataValue)) return(0);
    619645
    620646                // NOTE: The HLS values do match the color array values and are not
     
    676702                }
    677703
     704                // static values are by definition the correct range.  As such test within.
     705                else if("StaticValues" == this.options.dataClasses.type.value)
     706                {
     707                        for(var i=1; i < this.options.dataClasses.rangeValues.length; i++)
     708                        {
     709                                if( (dataValue >= this.options.dataClasses.rangeValues[i].startValue) &&
     710                                        (dataValue <= this.options.dataClasses.rangeValues[i].endValue)
     711                                ) return(i);
     712                        }
     713                }
     714
    678715                // else not HLS or unique - determine which boundary group the value is
    679716                // in. geostas array is 0:n-1.  Since 0 is the null value the IBIS color
     
    683720                // value even if determin values and actual values are set to the same
    684721                // precision vis toFixed(n). 
    685                 else if((null != dataValue) && (undefined != dataValue))
     722                else
    686723                {
    687724                        for(var i=1; i < this.options.dataClasses.rangeValues.length; i++)
  • trunk/ibisph-view/src/main/webapp/xsd/query_module.xsd

    r21322 r21448  
    293293                                                                        <xsd:sequence>
    294294                                                                                <xsd:element name="SUBMIT_JAVASCRIPT_FUNCTION_CALL" type="xsd:string" minOccurs="0"/>
    295 MAP NAMES
    296 CHART NAMES
     295
    297296                                                                                <xsd:element name="EXCLUDE" minOccurs="0">
    298297                                                                                        <xsd:complexType>
     
    319318                                                                                                                </xsd:complexType>
    320319                                                                                                        </xsd:element>
     320
     321<!-- GARTH TODO: Do away - include handles everything... -->
    321322                                                                                                        <xsd:element name="DIMENSION_NAMES" minOccurs="0">
    322323                                                                                                                <xsd:complexType>
     
    327328                                                                                                        </xsd:element>
    328329
    329 implement these maybe as a simple list of values that the XSLT uses.  Then could
    330 simply do the approp include and not have to mess with excludes. 
    331 ************ ALL Excludes should probably work this way and leverage the
    332 condiational config name ibis:include.
    333 <xsd:element name="CHART_NAMES" minOccurs="0">
    334         <xsd:complexType>
    335                 <xsd:choice>
    336                         <xsd:element name="ALL_FLAG" type="xsd:string" minOccurs="0"/>
    337                         <xsd:sequence>
    338                                 <xsd:element name="CHART_NAME" maxOccurs="unbounded"/>
    339                         </xsd:sequence>
    340                 </xsd:choice>
    341         </xsd:complexType>
    342 </xsd:element>
    343 <xsd:element name="MAP_NAMES" minOccurs="0">
    344         <xsd:complexType>
    345                 <xsd:choice>
    346                         <xsd:element name="ALL_FLAG" type="xsd:string" minOccurs="0"/>
    347                         <xsd:sequence>
    348                                 <xsd:element name="MAP_NAME" maxOccurs="unbounded"/>
    349                         </xsd:sequence>
    350                 </xsd:choice>
    351         </xsd:complexType>
    352 </xsd:element>
    353 
    354330                                                                                                </xsd:all>
    355331                                                                                        </xsd:complexType>
     
    378354
    379355                                <xsd:element ref="OVERVIEWS" minOccurs="0"/>
    380 
    381                                
    382 MAP NAMES - not part of the criiteria == builder...
    383 CHART NAMES
    384 MAYBE DIMENSIONS - NO BECAUSE CRITERIA IS THE BUILDER
    385356
    386357                                <xsd:element name="SECTIONS">
  • trunk/ibisph-view/src/main/webapp/xslt/html/community/indicator/Page.xslt

    r20667 r21448  
    77        exclude-result-prefixes="ibis"
    88>
    9 <!-- garth todo: remove?
     9<!-- GARTH TODO: remove this entire XSLT page???  If not remove then decide what
     10        it should be...
     11
    1012        <xsl:import href="../../../json/Dataset.xslt"/>
    1113        <xsl:import href="../../../json/Kendo.xslt"/>
     
    494496                <xsl:value-of select="$indicator/DATA_AS_OF_DATE"/><br/>
    495497        </xsl:template>
     498
     499
     500        <!-- code that was in the ss.xslt but moved here just in case this feature
     501                is resurrected.
     502        -->
     503        <xsl:template name="Page.contentOptions">
     504                <xsl:variable name="currentIndicatorName"  select="$Page.indicatorSet/INDICATOR_TO_INDICATOR_SETS/INDICATOR_TO_INDICATOR_SET[INDICATOR_NAME = $IndicatorName]"/>
     505                <xsl:variable name="previousIndicatorName" select="$currentIndicatorName/preceding-sibling::*[1]/INDICATOR_NAME"/>
     506                <xsl:variable name="nextIndicatorName"     select="$currentIndicatorName/following-sibling::*[1]/INDICATOR_NAME"/>
     507
     508                <SELECTION>
     509                        <TITLE>Show Different <xsl:value-of select="ibis:getDimensionTitle($Page.communityDimension)"/></TITLE>
     510                        <SELECTIONS>
     511                                <SHOW/>
     512                                <xsl:if test="0 != string-length($Page.previousDimensionValue/TITLE)">
     513                                <SELECTION>
     514                                        <TITLE>&lt;&lt; Show <xsl:value-of select="$Page.previousDimensionValue/TITLE"/></TITLE>
     515                                        <DESCRIPTION>show previous community value</DESCRIPTION>
     516                                        <URL>javascript:requestSamePageDifferentDimensionValue('<xsl:value-of select="normalize-space($Page.previousDimensionValue/text()[1])"/>')</URL>
     517                                </SELECTION>
     518                                </xsl:if>
     519                                <xsl:if test="0 != string-length($Page.nextDimensionValue/TITLE)">
     520                                <SELECTION>
     521                                        <TITLE>Show <xsl:value-of select="$Page.nextDimensionValue/TITLE"/> &gt;&gt;</TITLE>
     522                                        <DESCRIPTION>show next community value</DESCRIPTION>
     523                                        <URL>javascript:requestSamePageDifferentDimensionValue('<xsl:value-of select="normalize-space($Page.nextDimensionValue/text()[1])"/>')</URL>
     524                                </SELECTION>
     525                                </xsl:if>
     526                        </SELECTIONS>
     527                </SELECTION>
     528
     529                <xsl:if test="(0 != string-length($previousIndicatorName)) or (0 != string-length($nextIndicatorName))">
     530                <SELECTION>
     531                        <TITLE>Show Different Health Indicator</TITLE>
     532                        <SELECTIONS>
     533                                <SHOW/>
     534                                <xsl:if test="0 != string-length($previousIndicatorName)">
     535                                <SELECTION>
     536                                        <TITLE>&lt;&lt; Previous Health Indicator</TITLE>
     537                                        <DESCRIPTION>.</DESCRIPTION>
     538                                        <URL>javascript:requestSamePageDifferentSegment('<xsl:value-of select="$IndicatorName"/>', '<xsl:value-of select="$previousIndicatorName"/>')</URL>
     539                                </SELECTION>
     540                                </xsl:if>
     541                                <xsl:if test="0 != string-length($nextIndicatorName)">
     542                                <SELECTION>
     543                                        <TITLE>Next Health Indicator &gt;&gt;</TITLE>
     544                                        <DESCRIPTION>.</DESCRIPTION>
     545                                        <URL>javascript:requestSamePageDifferentSegment('<xsl:value-of select="$IndicatorName"/>', '<xsl:value-of select="$nextIndicatorName"/>')</URL>
     546                                </SELECTION>
     547                                </xsl:if>
     548                        </SELECTIONS>
     549                </SELECTION>
     550                </xsl:if>
     551
     552                <SELECTION>
     553                        <TITLE>More <xsl:value-of select="$Page.communityDimensionValue/TITLE"/> Pages</TITLE>
     554                        <SELECTIONS>
     555                                <SHOW/>
     556                                <xsl:if test="exists($Page.communityProfile/FACTS_PAGE_FLAG)">
     557                                <SELECTION>
     558                                        <TITLE><xsl:value-of select="$Page.communityDimensionValue/TITLE"/>'s Quick Facts</TITLE>
     559                                        <DESCRIPTION>Show this communities quick facts page.</DESCRIPTION>
     560                                        <URL><xsl:value-of select="concat($Page.communityBaseRequestPath, 'facts/', $Page.dimensionName, '/', $Page.dimensionValue, '.html')"/></URL>
     561                                </SELECTION>
     562                                </xsl:if>
     563                                <SELECTION>
     564                                        <TITLE><xsl:value-of select="$Page.communityDimensionValue/TITLE"/>'s Indicators Report</TITLE>
     565                                        <DESCRIPTION>Show this communities indicator comparison list page.</DESCRIPTION>
     566                                        <URL><xsl:value-of select="concat($Page.communityBaseRequestPath, 'indicators/', $Page.indicatorSetName, '/', $Page.dimensionName, '/', $Page.dimensionValue, '.html')"/></URL>
     567                                </SELECTION>
     568                        </SELECTIONS>
     569                </SELECTION>
     570        </xsl:template>
     571
    496572</xsl:stylesheet>
    497573<!-- ============================= End of File ============================= -->
  • trunk/ibisph-view/src/main/webapp/xslt/html/indicator/profile/Indicator.xslt

    r20582 r21448  
    348348
    349349
     350
    350351        <xsl:template name="Indicator.initiative"
    351352                ibis:doc="Creates a titled content block that contains the
    352                         'INDICATOR/INITIATIVES/*' XML contents."
     353                                'INDICATOR/INITIATIVES/*' XML contents.
     354                                GARTH TODO: Needs to be defined.  What measure name to compare etc.
     355                        "
     356        >
     357                <xsl:param name="indicator" select="$Indicator.indicator"/>
     358                <xsl:param name="initiative"/>
     359        </xsl:template>
     360       
     361
     362
     363
     364        <xsl:template name="Indicator.initiative-TEST"
     365                ibis:doc="Creates a titled content block that contains the
     366                                'INDICATOR/INITIATIVES/*' XML contents.
     367                                GARTH TODO: Needs to be defined.  What measure name to compare etc.
     368                        "
    353369        >
    354370                <xsl:param name="indicator" select="$Indicator.indicator"/>
     
    579595
    580596
     597
     598
    581599        <xsl:template name="Indicator.otherObjectives"
    582600                ibis:doc="Creates a titled content block that contains the
     
    708726                <xsl:param name="indicator" select="$Indicator.indicator"/>
    709727                <div class="DataDate" title="Data source/data as of date and when these data were published to this site">
    710                         Page Content Updated On <xsl:value-of select="$indicator/DATA_AS_OF_DATE"/>,
     728                        Indicator Data Last Updated On <xsl:value-of select="$indicator/DATA_AS_OF_DATE"/>,
    711729                        Published on <xsl:value-of select="$indicator/PUBLISHED_DATE"/>
    712730<!-- Lois does not want this showing on public site 5-14-07.
     
    10011019                ibis:doc="Localizes handling/display control of the More Resources And
    10021020                        Links section.
     1021
     1022GARTH TODO: SCRUTINIZE! and fix/update links???
    10031023                "
    10041024        >
     
    10191039
    10201040                <!-- More Resources Text -->
    1021 <h2>GARTH TODO: Look at: Indicator .moreResourcesAndLinks - More Resources and Links</h2>
     1041                <h2>More Resources and Links</h2>
    10221042
    10231043                Evidence-based community health improvement ideas and interventions may be found at the following sites:<br/>
  • trunk/ibisph-view/src/main/webapp/xslt/html/query/module/builder/Builder.xslt

    r21239 r21448  
    2121        <xsl:param name="Charts" select="NULL" ibis:doc="injected model object"/>
    2222        <xsl:param name="Builder.charts" select="if(boolean(/QUERY_MODULE/CHARTS))
    23                 then /QUERY_MODULE/CHARTS/CHART
    24                 else $Charts/CHARTS/CHART[
    25                         not(NOT_SELECTABLE_FLAG) and
    26                         not(NAME = $Page.queryConfiguration/CRITERIA/EXCLUDE/CHART_NAMES/CHART_NAME) and
    27                         not(exists($Page.queryConfiguration/CRITERIA/EXCLUDE/CHART_NAMES/ALL_FLAG))
    28                 ]"
     23                        then /QUERY_MODULE/CHARTS
     24                        else $Charts/CHARTS
     25                "
    2926        />
    3027
    3128        <xsl:param name="Maps" select="NULL" ibis:doc="injected model object"/>
    3229        <xsl:param name="Builder.maps" select="if(boolean(/QUERY_MODULE/MAPS))
    33                 then /QUERY_MODULE/MAPS/MAP
    34                 else $Maps/MAPS/MAP[
    35                         not(NOT_SELECTABLE_FLAG) and
    36                         not(NAME = $Page.queryConfiguration/CRITERIA/EXCLUDE/MAP_NAMES/MAP_NAME) and
    37                         not(exists($Page.queryConfiguration/CRITERIA/EXCLUDE/MAP_NAMES/ALL_FLAG))
    38                 ]"
     30                        then /QUERY_MODULE/MAPS
     31                        else $Maps/MAPS
     32                "
    3933        />
    4034
     
    4943        <xsl:param name="Builder.usedDimensions" select="/QUERY_MODULE/DIMENSIONS/DIMENSION[
    5044                                (NAME=/QUERY_MODULE/CRITERIA//SELECTIONS/DIMENSION_NAME) or
    51                                 (NAME=/QUERY_MODULE/CRITERIA//SELECTIONS/NAME)
     45                                (NAME=/QUERY_MODULE/CRITERIA//SELECTIONS/NAME) or
     46                                (NAME=/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/*) or
     47                                (NAME=/QUERY_MODULE/REQUEST/ACTUAL_GROUP_BY/*)
    5248                        ]
    5349                "
     
    155151                        This also displays the graphic option."
    156152        >
     153                <xsl:variable name="defaultGroupByDimensions" select="$Builder.usedDimensions/.[not(exists(PROXY_DIMENSION_NAME))]"/>
     154                <xsl:variable name="groupByDimensions">
     155                        <xsl:if test="0 != count($defaultGroupByDimensions)">
     156                                <xsl:copy-of select="$defaultGroupByDimensions"/>
     157                        </xsl:if>
     158                        <xsl:if test="0 = count($defaultGroupByDimensions)">
     159                                <xsl:copy-of select="$Builder.usedDimensions/.[NAME = /QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/*]"/>
     160                        </xsl:if>
     161                </xsl:variable>
     162<!-- GARTH TODO: REMOVE
     163                                <xsl:copy-of select="$Builder.usedDimensions/.[
     164                                        NAME = /QUERY_MODULE//CONFIGURATION/DEFAULT_CATEGORY_DIMENSION_NAME
     165                                        or NAME = /QUERY_MODULE//CONFIGURATION/DEFAULT_SERIES_DIMENSION_NAME
     166                                        or NAME = /QUERY_MODULE//CONFIGURATION/DEFAULT_OTHER_DIMENSION_NAME]
     167                                "/>
     168
     169<xsl:message select="'xxxxxxxxxxxxx, count, groupby options'"/>
     170<xsl:message select="count($Builder.usedDimensions)"/>
     171<xsl:message select="$Builder.usedDimensions"/>
     172<xsl:message select="count($defaultGroupByDimensions)"/>
     173<xsl:message select="$defaultGroupByDimensions"/>
     174<xsl:message select="count($groupByDimensions)"/>
     175<xsl:message select="$groupByDimensions"/>
     176-->
    157177                <xsl:variable name="otherParameterGroupByDimensionName" select="/QUERY_MODULE//PARAMETERS/PARAMETER[NAME='_OtherGroupByDimensionName'][1]/VALUE"/>
    158178
     
    160180                        <xsl:when test="(string-length($otherParameterGroupByDimensionName) = 0) and ($Builder.groupBySelectionType = 'table')">
    161181                                <xsl:call-template name="Builder.tableGroupByControl">
     182                                        <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
    162183                                </xsl:call-template>
    163184                        </xsl:when>
     
    166187                        <xsl:otherwise>
    167188                                <xsl:call-template name="Builder.listGroupByControl">
     189                                        <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
    168190                                </xsl:call-template>
    169191                        </xsl:otherwise>
     
    174196
    175197        <xsl:template name="Builder.listGroupByControl"
    176                 ibis:doc="Creates the standard data 'grouping' step HTML selections."
    177         >
    178                 <xsl:param name="otherParameterGroupByDimensionName" select="/QUERY_MODULE//PARAMETERS/PARAMETER[NAME='_OtherGroupByDimensionName'][1]/VALUE"/>
     198                ibis:doc="Creates the standard data 'grouping' step HTML selections.
     199                        the default group by dimensions are those dimensions that do not
     200                        have a proxy.  So only proxy dims in the QM and dims that are not
     201                        part of a proxy group.  If there are NOT any of these for the QM
     202                        then add those associated with the request group bys.
     203                "
     204        >
     205                <xsl:param name="groupByDimensions"/>
    179206
    180207                <table class="Info"
     
    185212                >
    186213                        <tr>
    187                                 <th scope="row" title="Primary grouping that specifies the sort order">
     214                                <th scope="row">
    188215                                        <label for="_CategoryGroupByDimensionName">Display By (category)</label>
    189216                                        <xsl:call-template name="Help.popup">
     
    193220                                        </xsl:call-template>
    194221                                </th>
    195                                 <td title="select the dimension to sort the results by">
     222                                <td title="If applicable, select the category dimension to sort the results by">
    196223                                        <xsl:call-template name="Builder.groupBySelection">
    197                                                 <xsl:with-param name="controlName"   select="'_CategoryGroupByDimensionName'"/>
    198                                                 <xsl:with-param name="selectedValue" select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
    199                                                 <xsl:with-param name="noneFlag"      select="'n'"/>
    200                                         </xsl:call-template>
    201                                 </td>
    202                         </tr>
    203 
    204                         <xsl:if test="(string-length($otherParameterGroupByDimensionName) != 0)">
    205                         <tr>
    206                                 <th scope="row" title="Fixed, non selectable group by">
     224                                                <xsl:with-param name="controlName"       select="'_CategoryGroupByDimensionName'"/>
     225                                                <xsl:with-param name="selectedValue"     select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
     226                                                <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
     227                                        </xsl:call-template>
     228                                </td>
     229                        </tr>
     230
     231                        <xsl:if test="1 &lt; count($groupByDimensions/DIMENSION)">
     232                        <tr>
     233                                <th scope="row">
     234                                        <label for="_SeriesGroupByDimensionName">Group By (series)</label>
     235                                        <xsl:call-template name="Help.popup">
     236                                                <xsl:with-param name="title">Optional secondary group by field</xsl:with-param>
     237                                                <xsl:with-param name="content" select="$Builder.seriesGroupByHelpContent"/>
     238                                                <xsl:with-param name="additionalClasses" select="'Right'"/>
     239                                        </xsl:call-template>
     240                                </th>
     241                                <td title="If applicable, select the series to group the results by">
     242                                        <xsl:call-template name="Builder.groupBySelection">
     243                                                <xsl:with-param name="controlName"       select="'_SeriesGroupByDimensionName'"/>
     244                                                <xsl:with-param name="selectedValue"     select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/SERIES_DIMENSION_NAME"/>
     245                                                <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
     246                                                <xsl:with-param name="addNoneSelection"  select="true()"/>
     247                                        </xsl:call-template>
     248                                </td>
     249                        </tr>
     250                        </xsl:if>
     251
     252                        <xsl:variable name="otherGroupByDimensionName" select="/QUERY_MODULE/REQUEST//OTHER_DIMENSION_NAME[1]"/>
     253                        <xsl:if test="0 != (string-length($otherGroupByDimensionName))">
     254                        <tr>
     255                                <th scope="row">
    207256                                        <label for="_OtherGroupByDimensionName">Fixed Group By</label>
    208257                                        <xsl:call-template name="Help.popup">
     
    212261                                        </xsl:call-template>
    213262                                </th>
    214                                 <td title="Primary, non selectable dimension to group the results by">
    215                                         <xsl:call-template name="Builder.groupBySelection">
    216                                                 <xsl:with-param name="controlName"   select="'_OtherGroupByDimensionName'"/>
    217                                                 <xsl:with-param name="selectedValue" select="$otherParameterGroupByDimensionName"/>
    218                                                 <xsl:with-param name="noneFlag"      select="'n'"/>
    219                                         </xsl:call-template>
    220                                 </td>
    221                         </tr>
    222                         </xsl:if>
    223 
    224                         <tr>
    225                                 <th scope="row" title="Group by">
    226                                         <label for="_SeriesGroupByDimensionName">Group By (series)</label>
    227                                         <xsl:call-template name="Help.popup">
    228                                                 <xsl:with-param name="title">Optional secondary group by field</xsl:with-param>
    229                                                 <xsl:with-param name="content" select="$Builder.seriesGroupByHelpContent"/>
    230                                                 <xsl:with-param name="additionalClasses" select="'Right'"/>
    231                                 </xsl:call-template>
    232                                 </th>
    233                                 <td title="select the dimension to group the results by">
    234                                         <xsl:call-template name="Builder.groupBySelection">
    235                                                 <xsl:with-param name="controlName"   select="'_SeriesGroupByDimensionName'"/>
    236                                                 <xsl:with-param name="selectedValue" select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/SERIES_DIMENSION_NAME"/>
    237                                                 <xsl:with-param name="noneFlag"      select="'y'"/>
    238                                         </xsl:call-template>
    239                                 </td>
    240                         </tr>
    241 
    242                         <xsl:if test="0 != count($Builder.charts)">
    243                         <tr>
    244                                 <th scope="row" title="Available charts">
     263                                <td title="Primary, constant type non selectable dimension to group the results by">
     264                                        <input type="hidden" name="_OtherGroupByDimensionName" value="{$otherGroupByDimensionName}"/>
     265                                        <xsl:value-of select="ibis:getDimensionTitle($otherGroupByDimensionName)"/>
     266                                </td>
     267                        </tr>
     268                        </xsl:if>
     269
     270                        <xsl:if test="0 != count($Builder.charts/CHART)">
     271                        <tr>
     272                                <th scope="row">
    245273                                        <label for="chartName">Chart</label>
    246274                                        <xsl:call-template name="Help.popup">
     
    250278                                </xsl:call-template>
    251279                                </th>
    252                                 <td title="select the chart visualization to display the results with">
     280                                <td title="If applicable, select the chart visualization to display the results with">
    253281                                        <xsl:call-template name="Builder.chartSelections"/>
    254282                                </td>
     
    256284                        </xsl:if>
    257285
    258                         <xsl:if test="0 != count($Builder.maps)">
    259                         <tr>
    260                                 <th scope="row" title="Available maps">
     286                        <xsl:if test="0 != count($Builder.maps/MAP)">
     287                        <tr>
     288                                <th scope="row">
    261289                                        <label for="mapName">Map</label>
    262290                                        <xsl:call-template name="Help.popup">
     
    266294                                        </xsl:call-template>
    267295                                </th>
    268                                 <td title="select the map visualization to display the results with">
     296                                <td title="If applicable, select the map visualization to display the results with">
    269297                                        <xsl:call-template name="Builder.mapSelections"/>
    270298                                </td>
     
    287315                "
    288316        >
     317                <xsl:param name="groupByDimensions"/>
     318
    289319                <h3 style="padding-bottom:5px;">
    290320                        <xsl:call-template name="Help.popup">
     
    305335                                        <label for="_SeriesGroupByDimensionName">Column Values Grouped By:</label><br/>
    306336                                        <xsl:call-template name="Builder.groupBySelection">
    307                                                 <xsl:with-param name="controlName"   select="'_SeriesGroupByDimensionName'"/>
    308                                                 <xsl:with-param name="selectedValue" select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/SERIES_DIMENSION_NAME"/>
    309                                                 <xsl:with-param name="noneFlag"      select="'y'"/>
     337                                                <xsl:with-param name="controlName"       select="'_SeriesGroupByDimensionName'"/>
     338                                                <xsl:with-param name="selectedValue"     select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/SERIES_DIMENSION_NAME"/>
     339                                                <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
     340                                                <xsl:with-param name="addNoneSelection"  select="true()"/>
    310341                                        </xsl:call-template>
    311342                                </th>
     
    317348                                        <label for="_CategoryGroupByDimensionName">Row Values Grouped By:</label><br/>
    318349                                        <xsl:call-template name="Builder.groupBySelection">
    319                                                 <xsl:with-param name="controlName"   select="'_CategoryGroupByDimensionName'"/>
    320                                                 <xsl:with-param name="selectedValue" select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
    321                                                 <xsl:with-param name="noneFlag"      select="'n'"/>
     350                                                <xsl:with-param name="controlName"       select="'_CategoryGroupByDimensionName'"/>
     351                                                <xsl:with-param name="selectedValue"     select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
     352                                                <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
    322353                                        </xsl:call-template>
    323354                                </th>
     
    329360                </table><br/>
    330361
    331                 <xsl:if test="not(exists($Page.queryConfiguration/CRITERIA/EXCLUDE/CHART_NAMES/ALL_FLAG))">
    332                         <label for="chartName"><h3>Chart Type:</h3></label>
    333                         <xsl:call-template name="Builder.chartSelections"/>
    334                         <br/>
    335                 </xsl:if>
    336         </xsl:template>
    337 
    338 
    339         <xsl:template name="Builder.groupBySelection" ibis:doc="internal template to 
    340                 localize handling of select lists and parameter title overrides."
     362                <label for="chartName"><h3>Chart Type:</h3></label>
     363                <xsl:call-template name="Builder.chartSelections"/>
     364                <br/>
     365        </xsl:template>
     366
     367
     368        <xsl:template name="Builder.groupBySelection"
     369                ibis:doc="internal template to  localize handling of group by select lists."
    341370        >
    342371                <xsl:param name="controlName"   ibis:doc="name of the HTML select element"/>
    343                 <xsl:param name="selectedValue" ibis:doc="default value to be selected in the list.  If noneFlag and nothing specified then none is the default else first item in list"/>
    344                 <xsl:param name="noneFlag"      ibis:doc="optional parameter that if x,y,t then a None value will be added to the list."/>
    345 <!-- GARTH TODO: remove
    346 <xsl:message select="concat('~~~~~~Builder.usedDimensions, count:', count($Builder.usedDimensions))"/>
    347 <xsl:message select="$Builder.usedDimensions/./NAME"/>
    348 <xsl:message select="$Builder.usedDimensions/.[not(exists(PROXY_DIMENSION_NAME)) ]/NAME"/>
    349 <xsl:message select="concat($Builder.usedDimensions/DIMENSION/NAME, ' - ', $Builder.usedDimensions/DIMENSION/GEOGRAPHY_FLAG)"/>
    350 -->
    351 
    352                 <xsl:variable name="groupByDimensionParameter" select="/QUERY_MODULE//PARAMETERS/PARAMETER[NAME=$controlName][1]"/>
    353 <xsl:message select="concat('~~~~~~Builder.usedDimensions, count:', count($Builder.usedDimensions))"/>
    354 <xsl:message select="$Builder.usedDimensions/./NAME"/>
    355 <xsl:message select="$groupByDimensionParameter"/>
     372                <xsl:param name="selectedValue" ibis:doc="value to be selected in the list.  If addNoneSelection and nothing specified then none is the default else first item in list"/>
     373                <xsl:param name="groupByDimensions" ibis:doc="dimensions to be listed as a select option."/>
     374                <xsl:param name="addNoneSelection"  select="false()" ibis:doc="optional parameter if true then a None value will be added at the first to the selections and set as selected."/>
     375
    356376                <select name="{$controlName}" id="{$controlName}" onchange="displayOptionsChangeHandler()" title="Group results by {$controlName}">
    357                         <xsl:choose>
    358                                 <xsl:when test="0 != string-length($groupByDimensionParameter/NAME)">
    359                                         <xsl:variable name="groupByDimension" select="/QUERY_MODULE/DIMENSIONS/DIMENSION[NAME=$groupByDimensionParameter/VALUE]"/>
    360                                         <option value="{$groupByDimension/NAME}" selected="selected">
    361                                                 <xsl:if test="0 != string-length($groupByDimension/GEOGRAPHY_FLAG)"><xsl:attribute name="GeographyFlag" select="'true'"/></xsl:if>
    362                                                 <xsl:value-of select="ibis:getDimensionTitle($groupByDimension/TITLE)"/>
    363                                         </option>
    364                                 </xsl:when>
    365 
    366                                 <xsl:otherwise>
    367                                         <xsl:if test="ibis:isFirstLetter_T_or_Y_or_X($noneFlag)">
    368                                                 <option value="">
    369                                                         <xsl:if test="0 = string-length($selectedValue)">
    370                                                                 <xsl:attribute name="selected" select="'selected'"/>
    371                                                         </xsl:if>
    372                                                         None
    373                                                 </option>
     377                        <xsl:if test="$addNoneSelection  or (0 = count($groupByDimensions/*))">
     378                                <option value="">
     379                                        <xsl:if test="(0 = string-length($selectedValue)) or (0 = count($groupByDimensions/*))">
     380                                                <xsl:attribute name="selected" select="'selected'"/>
    374381                                        </xsl:if>
    375                                         <xsl:apply-templates select="$Builder.usedDimensions/.[not(exists(PROXY_DIMENSION_NAME)) ]" mode="Builder.groupByOption">
    376                                                 <xsl:with-param name="selectedValue" select="$selectedValue"/>
    377                                         </xsl:apply-templates>
    378                                 </xsl:otherwise>
    379                         </xsl:choose>
     382                                        None
     383                                </option>
     384                        </xsl:if>
     385                        <xsl:apply-templates select="$groupByDimensions" mode="Builder.groupByOption">
     386                                <xsl:with-param name="selectedValue" select="$selectedValue"/>
     387                        </xsl:apply-templates>
    380388                </select>
    381389        </xsl:template>
     
    398406                ibis:doc="Provides the chart graph selection options.  This allows other
    399407                        adopters the ability to put in their own controls into the SiteSpecific
    400                         XSLT for consistant look and feel.  The Java controller handles setting
    401                         the RESULT/CHART_NAME if NO_GRAPHIC_SELECTION_FLAG is present and a
    402                         DEFAULT_CHART_NAME is specified.
    403                 "
    404         >
    405                 <xsl:param name="chartName" select="/QUERY_MODULE/REQUEST/CHART_NAME"/>
     408                        XSLT for consistent look and feel.  The Java controller handles setting
     409                        the RESULT/CHART_NAME if DEFAULT_CHART_NAME is specified - only on load.
     410                "
     411        >
     412                <xsl:param name="selectedChartName" select="/QUERY_MODULE/REQUEST/CHART_NAME"/>
     413
    406414                <select name="_ChartName" id="chartName" onchange="displayOptionsChangeHandler()" title="Selects the chart to be displayed on the results page.">
    407                         <xsl:for-each select="$Builder.charts">
     415                        <xsl:for-each select="$Builder.charts/CHART">
    408416                                <xsl:sort select="SORT_ODRER" order="ascending" data-type="number"/>
    409417                                <option value="{NAME}">
    410                                         <xsl:if test="NAME=$chartName">
     418                                        <xsl:if test="NAME=$selectedChartName">
    411419                                                <xsl:attribute name="selected" select="'selected'"/>
    412420                                        </xsl:if>
     
    418426
    419427
    420         <xsl:template name="Builder.mapSelections"
    421                 ibis:doc="Provides the map graph selection options.  This allows other
    422                         adopters the ability to put in their own controls into the SiteSpecific
    423                         XSLT for consistant look and feel.  The Java controller handles setting
    424                         the RESULT/MAP_NAME if NO_GRAPHIC_SELECTION_FLAG is present and a
    425                         DEFAULT_MAP_NAME is specified.
    426                 "
    427         >
    428                 <xsl:param name="mapName" select="/QUERY_MODULE/REQUEST/MAP_NAME"/>
    429                 <xsl:param name="show"    select="false()"/>
    430 <!-- GARTH TODO: remove
    431 <xsl:message select="$Page.queryConfiguration/CRITERIA/EXCLUDE/MAP_NAMES/MAP_NAME"/>
    432 <xsl:message select="$Page.maps/MAP[not(exists(NAME = $Page.queryConfiguration/CRITERIA/EXCLUDE/MAP_NAMES/MAP_NAME))]"/>
    433 <xsl:message select="$Page.queryConfiguration"/>
    434 
    435 <xsl:message select="'~~~~~~~~~~~~~~~~~map name and page.maps:'"/>
    436 <xsl:message select="$mapName"/>
    437 <xsl:message select="$Page.maps"/>
    438 -->
     428        <xsl:template name="Builder.mapSelections" ibis:doc="same as chart above.">
     429                <xsl:param name="selectedMapName" select="/QUERY_MODULE/REQUEST/MAP_NAME"/>
     430
    439431                <select name="_MapName" id="mapName" onchange="displayOptionsChangeHandler()" title="Selects the map to be displayed on the results page.">
    440                         <xsl:for-each select="$Builder.maps">
     432                        <xsl:for-each select="$Builder.maps/MAP">
    441433                                <xsl:sort select="SORT_ODRER" order="ascending" data-type="number"/>
    442434                                <option value="{NAME}">
    443                                         <xsl:if test="NAME=$mapName">
     435                                        <xsl:if test="NAME=$selectedMapName">
    444436                                                <xsl:attribute name="selected" select="'selected'"/>
    445437                                        </xsl:if>
  • trunk/ibisph-view/src/main/webapp/xslt/html/query/module/builder/Page.xslt

    r21397 r21448  
    287287                        </xsl:for-each>
    288288
    289                         <!-- show the display options section next -->
    290289                        <xsl:call-template name="ContentContainer.expandable">
    291290                                <xsl:with-param name="title"       select="concat('Step ', count($sections/SECTION) + 1, ': How to display the data')"/>
     
    359358                                >
    360359                                        Introduction Video
    361                                         <xsl:call-template name="Help.popup">
    362 <xsl:with-param name="content" select="$Page.selectMeasureHelpContent"/>
    363                                         </xsl:call-template>
    364360                                </button>
    365 
    366 <!--
    367                                 <button type="button" accesskey="L" id="loadDefinition"
    368                                         onclick="location.href='{concat($ibis.baseRequestPath, 'query/definition/index/MyDefinitions.html')}'"
    369                                 >
    370                                         Load Saved Definition
    371                                         <xsl:call-template name="Help.popup">
    372                                                 <xsl:with-param name="content" select="$Page.loadQueryDefinitionHelpContent"/>
    373                                         </xsl:call-template>
    374                                 </button>
    375 -->
    376361                        </div>
    377362                </div>
  • trunk/ibisph-view/src/main/webapp/xslt/html/query/module/result/Page.xslt

    r21328 r21448  
    129129                <br/>
    130130
    131                 <h2>Query Criteria for the <xsl:value-of select="$queryConfiguration/TITLE"/> Measure</h2>
     131<!-- can include measure title if wanted
     132QueryModule.measure
     133-->
     134                <h2>Query Criteria</h2>
    132135                <table id="userCriteria" class="Info"
    133136                        summary="The first column is a title of that type of selection with
     
    150153<xsl:if test="$ApplyCriteria.isSet">
    151154<br/>
    152                 <h2>Current Apply Query Definition</h2>
     155                <h2>Current "Apply Query Definition"</h2>
    153156                <table id="applyCriteria" class="Info"
    154157                        summary="The first column is a title of that type of selection with
     
    208211                </xsl:if>
    209212                <br/><br/>
    210 
    211                 <a href="#" class="Top">Top</a>
    212                 <br/><br/>
    213 
    214 
    215                 <xsl:call-template name="Page.usageAgreementDialog"/>
    216 
    217                 <xsl:call-template name="QueryDefintion.editIdentityDialog">
    218                         <xsl:with-param name="queryModule"   select="$queryModule"/>
    219                         <xsl:with-param name="configuration" select="$queryConfiguration"/>
    220                 </xsl:call-template>
    221 
    222                 <xsl:call-template name="Login.dialog">
    223                         <xsl:with-param name="overviewContent">
    224                                 You are not logged in.  To save a query you must be logged in. 
    225                                 Enter your username / password to proceed.  Once successfully
    226                                 logged in you will be redirected back to this page where you
    227                                 can then save the query definition.
    228                                 <br/>
    229                         </xsl:with-param>
    230                 </xsl:call-template>
    231213
    232214        </xsl:template>
     
    298280                </xsl:call-template>
    299281
     282                <a href="#" class="Top">Top</a>
     283                <br/><br/>
     284
     285
    300286                <xsl:if test="$DataViz.showMap">
    301287                        <xsl:call-template name="DataViz.choroplethMapJavaScript"/>
     
    339325                </xsl:call-template>
    340326
     327
     328                <xsl:call-template name="Page.usageAgreementDialog"/>
     329
     330                <xsl:call-template name="QueryDefintion.editIdentityDialog">
     331                        <xsl:with-param name="queryModule"   select="$queryModule"/>
     332                        <xsl:with-param name="configuration" select="$queryConfiguration"/>
     333                </xsl:call-template>
     334
     335                <xsl:call-template name="Login.dialog">
     336                        <xsl:with-param name="overviewContent">
     337                                You are not logged in.  To save a query you must be logged in. 
     338                                Enter your username / password to proceed.  Once successfully
     339                                logged in you will be redirected back to this page where you
     340                                can then save the query definition.
     341                                <br/>
     342                        </xsl:with-param>
     343                </xsl:call-template>
     344
    341345        </xsl:template>
    342346
  • trunk/ibisph-view/src/main/webapp/xslt/json/Kendo.xslt

    r21374 r21448  
    238238                <xsl:param name="showLabelColumn" select="false()"/>
    239239                <xsl:param name="showValueAttributeColumn" select="false()"/>
    240                 <xsl:param name="showFooterRow"   select="$datasetRecordTotalValues instance of node()"/>
     240                <xsl:param name="showFooterRow"   select="($datasetRecordTotalValues instance of node()) and (0 != count($datasetRecordTotalValues/*))"/>
    241241
    242242                <xsl:param name="seriesDimensionField"   select="$recordDimensionFields/RECORD_DIMENSION_FIELD[USAGE='series']"/>
     
    360360                        }
    361361                        <xsl:if test="$showFooterRow">
    362 <!--
     362<!-- GARTH TODO:
    363363<xsl:message select="$datasetRecordTotalValues/DATASET_RECORD_TOTAL_VALUE"/>
    364364<xsl:message select="current()/NAME"/>
     
    504504                }
    505505        ]
    506     ,"categoryAxis":
     506
     507        ,"categoryAxis":
    507508        [
    508509                {
     
    514515                }
    515516        ]
     517
    516518        ,"valueAxis":
    517519        [
  • trunk/ibisph-view/src/main/webapp/xslt/xml/Interactive.xslt

    r20392 r21448  
    226226                <xsl:param name="totalDimensionValue" select="'.'"/>
    227227
    228 <xsl:variable name="totalDatasetRecord" select="$datasetRecords/RECORD[not(DIMENSIONS/DIMENSION/VALUE/text() != $totalDimensionValue)]"/>
    229228<!-- get the DSR where ALL dim values are '.'
    230229<xsl:message select="count($totalDatasetRecord)"/>
     
    232231<xsl:message select="$totalDatasetRecord"/>
    233232 -->
    234                 <xsl:if test="1 = count($totalDatasetRecord)">
     233                <xsl:variable name="totalDatasetRecord" select="$datasetRecords/RECORD[not(DIMENSIONS/DIMENSION/VALUE/text() != $totalDimensionValue)]"/>
     234                <xsl:if test="(1 = count($totalDatasetRecord)) and (0 != string-length($totalDatasetRecord/MEASURE/VALUE))">
    235235                        <DATASET_RECORD_TOTAL_VALUE>
    236236                                <NAME>Measure</NAME>
Note: See TracChangeset for help on using the changeset viewer.