Changeset 21462 in main


Ignore:
Timestamp:
09/03/20 16:22:27 (2 weeks ago)
Author:
GarthBraithwaite_STG
Message:

view - qm builder display step group bys refined.

Location:
trunk/ibisph-view/src/main/webapp/xslt/html
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ibisph-view/src/main/webapp/xslt/html/indicator/profile/complete_profile/Page.xslt

    r20667 r21462  
    209209                </xsl:call-template>
    210210
     211                <br/>
    211212                <xsl:call-template name="Indicator.moreResourcesAndLinks">
    212213                        <xsl:with-param name="indicator" select="$Indicator.indicator"/>
  • trunk/ibisph-view/src/main/webapp/xslt/html/query/module/builder/Builder.xslt

    r21448 r21462  
    3939        <xsl:param name="Builder.selectionMapName" select="'Selection'"
    4040                ibis:doc="selection map config name.  If set to 'None' then global no selection map."
    41         />
    42 
    43         <xsl:param name="Builder.usedDimensions" select="/QUERY_MODULE/DIMENSIONS/DIMENSION[
    44                                 (NAME=/QUERY_MODULE/CRITERIA//SELECTIONS/DIMENSION_NAME) or
    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/*)
    48                         ]
    49                 "
    50                 ibis:doc=""
    5141        />
    5242
     
    147137                ibis:doc="Creates the data 'grouping' step HTML selections which are 
    148138                        the next to the last step (step just before the submit step). 
    149                         This includes a 2-d table or 3-d columns that lists the dimensions
    150                         and provides some text as to what the measure is and options.   
    151                         This also displays the graphic option."
    152         >
    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 -->
    177                 <xsl:variable name="otherParameterGroupByDimensionName" select="/QUERY_MODULE//PARAMETERS/PARAMETER[NAME='_OtherGroupByDimensionName'][1]/VALUE"/>
    178 
    179                 <xsl:choose>
    180                         <xsl:when test="(string-length($otherParameterGroupByDimensionName) = 0) and ($Builder.groupBySelectionType = 'table')">
    181                                 <xsl:call-template name="Builder.tableGroupByControl">
    182                                         <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
    183                                 </xsl:call-template>
    184                         </xsl:when>
    185 
    186                         <!-- standard display control -->
    187                         <xsl:otherwise>
    188                                 <xsl:call-template name="Builder.listGroupByControl">
    189                                         <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
    190                                 </xsl:call-template>
    191                         </xsl:otherwise>
    192                 </xsl:choose>
    193         </xsl:template>
    194 
    195 
    196 
    197         <xsl:template name="Builder.listGroupByControl"
    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"/>
     139                        This also displays the dataviz options."
     140        >
     141                <xsl:variable name="usedDimensions" select="/QUERY_MODULE/DIMENSIONS/DIMENSION[
     142                                        (NAME=/QUERY_MODULE/CRITERIA//SELECTIONS/DIMENSION_NAME) or
     143                                        (NAME=/QUERY_MODULE/CRITERIA//SELECTIONS/NAME) or
     144                                        (NAME=/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/*)
     145                                ]
     146                        "
     147                        ibis:doc="Filtered set of dimensions that can be used by this QM config."
     148                />
     149                <xsl:variable name="groupByDimensions" select="$usedDimensions/.[not(exists(PROXY_DIMENSION_NAME))]"
     150                        ibis:doc="Non proxied dims that are the default of what can be used for grouped by."
     151                />
    206152
    207153                <table class="Info"
     
    221167                                </th>
    222168                                <td title="If applicable, select the category dimension to sort the results by">
    223                                         <xsl:call-template name="Builder.groupBySelection">
     169                                        <xsl:call-template name="Builder.groupBySelect">
    224170                                                <xsl:with-param name="controlName"       select="'_CategoryGroupByDimensionName'"/>
    225                                                 <xsl:with-param name="selectedValue"     select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
     171                                                <xsl:with-param name="selectedDimensionName" select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/CATEGORY_DIMENSION_NAME"/>
     172                                                <xsl:with-param name="usedDimensions"    select="$usedDimensions"/>
    226173                                                <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
    227174                                        </xsl:call-template>
    228175                                </td>
    229176                        </tr>
    230 
    231                         <xsl:if test="1 &lt; count($groupByDimensions/DIMENSION)">
     177                       
    232178                        <tr>
    233179                                <th scope="row">
     
    240186                                </th>
    241187                                <td title="If applicable, select the series to group the results by">
    242                                         <xsl:call-template name="Builder.groupBySelection">
     188                                        <xsl:call-template name="Builder.groupBySelect">
    243189                                                <xsl:with-param name="controlName"       select="'_SeriesGroupByDimensionName'"/>
    244                                                 <xsl:with-param name="selectedValue"     select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/SERIES_DIMENSION_NAME"/>
     190                                                <xsl:with-param name="selectedDimensionName" select="/QUERY_MODULE/REQUEST/SELECTED_GROUP_BY/SERIES_DIMENSION_NAME"/>
     191                                                <xsl:with-param name="usedDimensions"    select="$usedDimensions"/>
    245192                                                <xsl:with-param name="groupByDimensions" select="$groupByDimensions"/>
    246193                                                <xsl:with-param name="addNoneSelection"  select="true()"/>
     
    248195                                </td>
    249196                        </tr>
    250                         </xsl:if>
    251197
    252198                        <xsl:variable name="otherGroupByDimensionName" select="/QUERY_MODULE/REQUEST//OTHER_DIMENSION_NAME[1]"/>
     
    304250
    305251
    306         <xsl:template name="Builder.tableGroupByControl"
    307                 ibis:doc="Creates the data 'grouping' step HTML selections which are 
    308                         the next to the last step (step just before the submit step). 
    309                         This includes a 2-d table or 3-d columns that lists the dimensions
    310                         and provides some text as to what the measure is and options.   
    311                         This also displays the graphic option.
    312 
    313                         NOTE: thead, tfoot, tbody intentionally left out so tablesorter
    314                         would not be implemented on this table.
     252        <xsl:template name="Builder.groupBySelect"
     253                ibis:doc="internal template to  localize handling of group by select lists.
     254                        RULES:
     255                                category is required and does not have the none selection.  If
     256                                        selected dim name in the group bys then use the group bys
     257                                        else use only the selected dim in the list.
     258                                series follows the same rules as above but processes for the
     259                                        none selection.  If selected/specified and not in the groupbys
     260                                        then only the selected dim is added.  Else if in the groupbys
     261                                        then that is used and set to selected.
    315262                "
    316263        >
    317                 <xsl:param name="groupByDimensions"/>
    318 
    319                 <h3 style="padding-bottom:5px;">
    320                         <xsl:call-template name="Help.popup">
    321                                 <xsl:with-param name="title">How to Tabulate and Display Data Values</xsl:with-param>
    322                                 <xsl:with-param name="content" select="$Builder.tabulateHelpContent"/>
    323                                 <xsl:with-param name="additionalClasses" select="'Right'"/>
    324                         </xsl:call-template>
    325                         Specify how to display the numerical data values.
    326                 </h3>
    327 
    328                 <table class="Info" summary="Visual group by selections that has a column
    329                         group by selection list and a row group by selection list."
    330                         caption="Result row and column group by selections."
    331                 >
    332                         <tr>
    333                                 <th scope="col" title="blank formatting"></th>
    334                                 <th scope="col" title="Sets a second dimension for the data values to be summed/grouped/tabulated by and specifies that a 2-d type table be produced on the output page.">
    335                                         <label for="_SeriesGroupByDimensionName">Column Values Grouped By:</label><br/>
    336                                         <xsl:call-template name="Builder.groupBySelection">
    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()"/>
    341                                         </xsl:call-template>
    342                                 </th>
    343                         </tr>
    344 
    345                         <tr><th scope="col" title="blank row for formatting">&#160;</th><td></td></tr>
    346                         <tr>
    347                                 <th scope="col" title="How the row data will be grouped/summed/tabulated by and displayed by.">
    348                                         <label for="_CategoryGroupByDimensionName">Row Values Grouped By:</label><br/>
    349                                         <xsl:call-template name="Builder.groupBySelection">
    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"/>
    353                                         </xsl:call-template>
    354                                 </th>
    355                                 <td style="     vertical-align: middle; text-align: center" title="{$Page.queryConfiguration/DESCRIPTION} (these values will be grouped/tabulated according to the selected Row and Column value selections)">
    356                                         <xsl:value-of select="$Page.queryConfiguration/TITLE"/> data values
    357                                 </td>
    358                         </tr>
    359                         <tr><th scope="row" title="blank row for formatting">&#160;</th><td></td></tr>
    360                 </table><br/>
    361 
    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."
    370         >
    371                 <xsl:param name="controlName"   ibis:doc="name of the HTML select element"/>
    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"/>
     264                <xsl:param name="controlName"       ibis:doc="name of the HTML select element"/>
     265                <xsl:param name="selectedDimensionName" ibis:doc="Dim name value to be selected in the list."/>
     266                <xsl:param name="usedDimensions"    ibis:doc="all used dimensions - in case the group by doesn't have dims."/>
    373267                <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."/>
     268                <xsl:param name="addNoneSelection"  select="false()"
     269                        ibis:doc="optional parameter if true then a None value will be added
     270                                at the first to the selections.  If selected dim name is blank
     271                                then none is the default selection
     272                        "
     273                />
     274
     275                <xsl:variable name="isSelectedDimensionNameBlank" select="0 = string-length($selectedDimensionName)"/>
     276                <xsl:variable name="isSelectedDimensionNameInGroupByDimensions" select="exists($groupByDimensions/.[NAME = $selectedDimensionName])"/>
     277                <xsl:variable name="dimensions" select="
     278                                if(not($isSelectedDimensionNameBlank) and not($isSelectedDimensionNameInGroupByDimensions))
     279                                then $usedDimensions/.[NAME = $selectedDimensionName] 
     280                                else $groupByDimensions
     281                        "
     282                />
    375283
    376284                <select name="{$controlName}" id="{$controlName}" onchange="displayOptionsChangeHandler()" title="Group results by {$controlName}">
    377                         <xsl:if test="$addNoneSelection  or (0 = count($groupByDimensions/*))">
     285                        <xsl:if test="$addNoneSelection and ($isSelectedDimensionNameInGroupByDimensions or $isSelectedDimensionNameBlank)">
    378286                                <option value="">
    379                                         <xsl:if test="(0 = string-length($selectedValue)) or (0 = count($groupByDimensions/*))">
     287                                        <xsl:if test="$isSelectedDimensionNameBlank">
    380288                                                <xsl:attribute name="selected" select="'selected'"/>
    381289                                        </xsl:if>
     
    383291                                </option>
    384292                        </xsl:if>
    385                         <xsl:apply-templates select="$groupByDimensions" mode="Builder.groupByOption">
    386                                 <xsl:with-param name="selectedValue" select="$selectedValue"/>
     293                        <xsl:apply-templates select="$dimensions" mode="Builder.groupByOption">
     294                                <xsl:with-param name="selectedDimensionName" select="$selectedDimensionName"/>
    387295                        </xsl:apply-templates>
    388296                </select>
     
    393301                        option list HTML 'option' selection element for the display step."
    394302        >
    395                 <xsl:param name="selectedValue" ibis:doc="default value to be selected in the list."/>
     303                <xsl:param name="selectedDimensionName" ibis:doc="default value to be selected in the list."/>
    396304
    397305                <option value="{NAME}">
    398                         <xsl:if test="NAME=$selectedValue"><xsl:attribute name="selected" select="'selected'"/></xsl:if>
     306                        <xsl:if test="NAME=$selectedDimensionName"><xsl:attribute name="selected" select="'selected'"/></xsl:if>
    399307                        <xsl:if test="0 != string-length(GEOGRAPHY_FLAG)"><xsl:attribute name="GeographyFlag" select="'true'"/></xsl:if>
    400308                        <xsl:value-of select="ibis:getDimensionTitle(.)"/>
     
    441349                </select>
    442350        </xsl:template>
     351
    443352
    444353        <xsl:template name="Builder.submitControl"
Note: See TracChangeset for help on using the changeset viewer.