Changeset 3748 in main


Ignore:
Timestamp:
04/26/12 16:41:29 (10 years ago)
Author:
Garth Braithwaite
Message:

java & webapps - Finished IP DB BLOB integration with bean and XSLT changes.

Location:
trunk/src/main
Files:
1 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/main/java/org/ibisph/indicatorprofile/service/IndicatorDataBeanToXML.java

    r3536 r3748  
    7878    rootElement.add(getDataSourcesElement(indicator));
    7979    rootElement.add(getRelationsElement(indicator));
     80
     81// TODO: remove one of these and adjust the XSLT code accordingly.
    8082    rootElement.add(getIndicatorViewNamesElement(indicator));
    81 
    82     // do the default view
    83     /* since we're putting all the views into this xml we don't need this - it can
    84     be looked up...
    85       org.ibisph.bean.IndicatorView indicatorView = new org.ibisph.bean.IndicatorView();
    86       load( indicatorView, "NAME", indicator.getDefaultIndicatorViewName() );
    87       Element defaultViewElement = XMLFactory.newElement("DEFAULT_INDICATOR_VIEW", indicatorView);
    88     */
     83    rootElement.add(getIndicatorViewsElement(indicator));
    8984
    9085    return(document);
     
    148143  public Element getRelationsElement(org.ibisph.indicatorprofile.databean.Indicator indicator) throws Exception {
    149144    Element relationsElement = XMLLib.newElement("RELATIONS");
    150     Element indicatorRelationElement, relatedIndicatorNamesElement;
     145    Element indicatorRelationElement;
     146    Element relatedIndicatorNamesElement;
     147    Element relatedIndicatorsElement;
     148    Element relatedIndicatorElement;
    151149
    152150    // loop for all relations.  add the related text and related indicators if applicable.
     
    164162      // needs to add the element or not.
    165163      boolean addIndicatorRelationElement = false; 
    166 
    167164      org.ibisph.indicatorprofile.databean.IndicatorRelation indicatorRelation = new org.ibisph.indicatorprofile.databean.IndicatorRelation();
    168165      indicatorRelation.setFieldValue("INDICATOR_NAME", indicator.getName());
    169166      indicatorRelation.setFieldValue("RELATION_NAME",  relation.getName());
    170167      if(this.dataBeanDAOService.load(indicatorRelation) > 0) {
    171         indicatorRelationElement.add( XMLLib.newElement("TEXT", indicatorRelation.getText() ) );
     168        XMLLib.addElement(indicatorRelationElement, XMLLib.newElement("TEXT", indicatorRelation.getText() ) );
    172169        addIndicatorRelationElement = indicatorRelation.getText().trim().length() > 0;
    173170      }
     
    181178        addIndicatorRelationElement = true;
    182179        relatedIndicatorNamesElement = XMLLib.newElement("RELATED_INDICATOR_NAMES");
    183 
     180        relatedIndicatorsElement     = XMLLib.newElement("RELATED_INDICATORS");
     181
     182// TODO: remove either the related indicator or related indicator name structure
     183// and adjust the XSLT code accordingly.
    184184        for(int j=0; j<relatedIndicatorCollection.size(); j++) {
    185185          relatedIndicator = (org.ibisph.indicatorprofile.databean.RelatedIndicator)relatedIndicatorCollection.get(j);
    186           relatedIndicatorNamesElement.add( XMLLib.newElement("RELATED_INDICATOR_NAME",  relatedIndicator.getRelatedIndicatorName()) );
    187 
    188 /* Don't need to load and process the actual related indicator as we're just doing the related name as of 4/2011
     186          XMLLib.addElement(relatedIndicatorNamesElement, XMLLib.newElement("RELATED_INDICATOR_NAME",  relatedIndicator.getRelatedIndicatorName()) );
     187
    189188          // ACTIVE FLAG NOTE: could filter on active flag but could incorrectly
    190189          // filter out an indicator that is being modified and the editor simply
    191190          // deactivated at the time this is being published.  So the published
    192191          // indicators will have to be the determining source on the view side.
    193           org.ibisph.bean.Indicator ind = new org.ibisph.bean.Indicator();
    194           if(this.beanDAOService.load(ind, "NAME", relatedIndicator.getRelatedIndicatorName()) > 0) {
    195             relatedIndicatorNamesElement.add( XMLLib.newElement("RELATED_INDICATOR_NAME",  ind.getName()) );
     192          org.ibisph.indicatorprofile.databean.Indicator ind = new org.ibisph.indicatorprofile.databean.Indicator();
     193          if(this.dataBeanDAOService.load(ind, "NAME", relatedIndicator.getRelatedIndicatorName()) > 0) {
     194            relatedIndicatorElement = XMLLib.newElement("RELATED_INDICATOR");
     195            XMLLib.addElement(relatedIndicatorElement, XMLLib.newElement("NAME",  ind.getName()) );
     196            XMLLib.addElement(relatedIndicatorElement, XMLLib.newElement("TITLE", ind.getTitle()) );
     197            XMLLib.addElement(relatedIndicatorElement, XMLLib.newElement("DEFAULT_INDICATOR_VIEW_NAME", ind.getDefaultIndicatorViewName()) );
     198            XMLLib.addElement(relatedIndicatorsElement, relatedIndicatorElement);
    196199          }
    197 */
    198200        }
    199201        indicatorRelationElement.add(relatedIndicatorNamesElement);
     202        indicatorRelationElement.add(relatedIndicatorsElement);
    200203      }
    201204
     
    231234  } //-------------------------- End of Method ------------------------------
    232235
     236
     237  /**
     238   * Creates the INDICATOR_VIEWS container and child INDICATOR_VIEW elements
     239   * with their NAME and TITLEs based on the supplied indicator.  The TITLEs
     240   * are grabbed here so that the XSLT code doesn't have to open the assoc view
     241   * documents to get their title info.
     242   * @param indicator DataBean that contains the views to be converted to XML
     243   * @return XML INDICATOR_VIEWS element for the supplied indicator DataBean.
     244   */
     245  public Element getIndicatorViewsElement(org.ibisph.indicatorprofile.databean.Indicator indicator) throws Exception {
     246    Element indicatorViewsElement = XMLLib.newElement("INDICATOR_VIEWS");
     247
     248    // Since no intersection table for I to IV need to query the views based
     249    // on the FK.  Need to sort by IV.SORT_ORDER and filter out all inactives. 
     250    ArrayList<org.ibisph.databean.DataBean> indicatorViewCollection = new ArrayList<org.ibisph.databean.DataBean>();
     251    org.ibisph.indicatorprofile.databean.IndicatorView indicatorView = new org.ibisph.indicatorprofile.databean.IndicatorView();
     252    indicatorView.setFieldValue("INDICATOR_NAME", indicator.getName());
     253    indicatorView.setFieldValue("ACTIVE_FLAG",    this.dataBeanActiveFlagValue);
     254    this.dataBeanDAOService.load(indicatorViewCollection, indicatorView, new String[] {"SORT_ORDER", "TITLE"});
     255
     256    Element indicatorViewElement;
     257    for(int i=0; i<indicatorViewCollection.size(); i++) {
     258      indicatorView = (org.ibisph.indicatorprofile.databean.IndicatorView)indicatorViewCollection.get(i);
     259      indicatorViewElement = XMLLib.newElement("INDICATOR_VIEW");
     260      XMLLib.addElement(indicatorViewElement, XMLLib.newElement("NAME",         indicatorView.getName()) );
     261      XMLLib.addElement(indicatorViewElement, XMLLib.newElement("TITLE",        indicatorView.getTitle()) );
     262      XMLLib.addElement(indicatorViewElement, XMLLib.newElement("SUB_TITLE",    indicatorView.getSubTitle()) );
     263      XMLLib.addElement(indicatorViewElement, XMLLib.newElement("PERIOD_TITLE", indicatorView.getPeriodTitle()) );
     264      XMLLib.addElement(indicatorViewElement, XMLLib.newElement("Y_TITLE",      indicatorView.getYTitle()) );
     265      XMLLib.addElement(indicatorViewsElement, indicatorViewElement);
     266    }
     267    return(indicatorViewsElement);
     268  } //-------------------------- End of Method ------------------------------
     269
    233270} //============================ END OF CLASS =================================
    234271
  • trunk/src/main/java/org/ibisph/xml/service/BLOBStoredDocument.java

    r3743 r3748  
    77import java.sql.SQLException;
    88import java.sql.Timestamp;
    9 import java.text.DateFormat;
    109import java.util.ArrayList;
    1110import java.util.Date;
  • trunk/src/main/webapps/ibisph-admin/WEB-INF/config/spring/common.xml

    r3743 r3748  
    141141        <bean id="Common.XML.OutputFormat" class="org.dom4j.io.OutputFormat">
    142142                <property name="encoding"   value="${XML.EncodingScheme}"/>
    143                 <property name="indentSize" value="1"/>  <!-- count of indents indents are tabs: \t = &#09; = horizontal tab -->
    144                 <property name="indent"     value="true"/>
    145                 <property name="newlines"   value="true"/> <!-- if true just adds extra blank line inbetween... -->
     143                <property name="indentSize" value="1"/>     <!-- count of indents -->
     144                <property name="indent"     value="&#09;"/> <!-- tab value: &#09; = horizontal tab or spaces etc -->
     145                <property name="newlines"   value="true"/>  <!-- if true puts next element on new line -->
    146146                <property name="padText"    value="false"/> <!-- if true just adds extra blank line inbetween... -->
    147147                <property name="trimText"   value="false"/> <!-- do NOT set to true -->
  • trunk/src/main/webapps/ibisph-admin/WEB-INF/config/spring/indicator.xml

    r3743 r3748  
    6969                <property name="dateFormat"                 ref="Common.DateFormat"/>
    7070        </bean>
    71 
    7271
    7372
  • trunk/src/main/webapps/ibisph-admin/css/stylesheet.css

    r3176 r3748  
    5454@import url('Error.css');
    5555@import url('ExpandableSection.css');
    56 @import url('ExpandableTree.css');
    5756@import url('Help.css');
    5857@import url('Info.css');
  • trunk/src/main/webapps/ibisph-view/WEB-INF/config/spring/indicator_blob.xml

    r3743 r3748  
    7878        </bean>
    7979
     80        <bean id="Indicator.IndicatorViewsFromIndicator.ModelMap" class="org.ibisph.indicatorprofile.modelmap.IndicatorViewsFromIndicatorProfile">
     81                <property name="indicatorModelMapKey"     ref="Common.XML.ModelMapKey"/>
     82                <property name="indicatorViewsModelMapKey" value="indicatorViews"/>
     83                <property name="XMLPath"                  ref="Indicator.ProfileXML.Path"/>
     84                <property name="XMLDocumentService"       ref="Common.XMLDocument.Service"/>
     85        </bean>
     86
    8087
    8188        <!--  C O N T R O L L E R S  -->
     
    196203                <property name="view" ref="Indicator.ViewNumbers.View"/>
    197204        </bean>
    198         <bean id="Indicator.CompleteProfile.Controller"
    199                 class="org.ibisph.web.springmvc.ModelMapListProcessingController"
    200                 parent="Indicator.Profile.Controller.CommonProperties"
    201         >
     205        <bean id="Indicator.CompleteProfile.Controller" class="org.ibisph.web.springmvc.ModelMapListProcessingController">
     206                <property name="modelMapList">
     207                        <list>
     208                                <ref bean="Indicator.XMLFromHTTPRequest.ModelMap"/>
     209                                <ref bean="Indicator.IndicatorViewsFromIndicator.ModelMap"/>
     210                                <ref bean="Common.OrgUnits.ModelMap"/>
     211                                <ref bean="Common.ModifiedDateFromFileSystemID.ModelMap"/>
     212                                <ref bean="Common.HTTPRequestParameters.ModelMap"/>
     213                                <ref bean="Common.WebAppURLContextPrefixFromHTTPRequest.ModelMap"/>
     214                        </list>
     215                </property>
    202216                <property name="view" ref="Indicator.CompleteProfile.View"/>
    203217        </bean>
  • trunk/src/main/webapps/ibisph-view/WEB-INF/config/spring/phom.xml

    r3743 r3748  
    5252                <property name="view" ref="PHOM.CondensedView.View"/>
    5353        </bean>
    54         <bean id="PHOM.ExpandedView.Controller" class="org.ibisph.web.springmvc.ModelMapListProcessingController" parent="Indicator.Profile.Controller.CommonProperties">
     54        <bean id="PHOM.ExpandedView.Controller" class="org.ibisph.web.springmvc.ModelMapListProcessingController">
     55                <property name="modelMapList">
     56                        <list>
     57                                <ref bean="Indicator.XMLFromHTTPRequest.ModelMap"/>
     58                                <ref bean="Indicator.IndicatorViewsFromIndicator.ModelMap"/>
     59                                <ref bean="Common.OrgUnits.ModelMap"/>
     60                                <ref bean="Common.ModifiedDateFromFileSystemID.ModelMap"/>
     61                                <ref bean="Common.HTTPRequestParameters.ModelMap"/>
     62                                <ref bean="Common.WebAppURLContextPrefixFromHTTPRequest.ModelMap"/>
     63                        </list>
     64                </property>
    5565                <property name="view" ref="PHOM.ExpandedView.View"/>
    5666        </bean>
  • trunk/src/main/webapps/ibisph-view/xslt/html/indicator/profile/Indicator.xslt

    r3743 r3748  
    400400                        Java servlet controller."
    401401                />
    402 
    403402                <xsl:param name="previewFlag" select="string-length($xmlURL) &gt; 0"/>
    404                 <xsl:param name="relatedIndicatorNames" select="
    405                         if($previewFlag)then $relation/RELATED_INDICATOR_NAMES/RELATED_INDICATOR_NAME
    406                         else $relation/RELATED_INDICATOR_NAMES/RELATED_INDICATOR_NAME[text() = $Indicator.publishedIndicators//INDICATOR/NAME]"
    407                 />
    408403
    409404                <xsl:call-template name="Page.carriageReturnFormattedTextBlock">
     
    412407                </xsl:call-template>
    413408
    414                 <xsl:if test="count($relatedIndicatorNames) &gt; 0">
    415                         <h2 title="Related links for {$relation/TITLE}">
    416                                 Related <xsl:value-of select="$relation/TITLE"/> Indicator Profiles:
    417                         </h2>
    418                         <ul>
    419                         <xsl:for-each select="$relatedIndicatorNames">
    420 <xsl:variable name="indicatorXMLFilename" select="concat(current(), '.xml')"/>
    421 <xsl:variable name="indicator" select="document($indicatorXMLFilename, /)/INDICATOR"/>
    422                                 <li>
    423                                         <a href="{if($previewFlag) then '#' else concat($ibis.urlPrefix, 'indicator/view/', $indicator/DEFAULT_INDICATOR_VIEW_NAME, '.html')}">
    424                                                 <xsl:value-of select="$indicator/TITLE"/>
    425                                         </a>
    426                                 </li>
    427                         </xsl:for-each>
    428                         </ul>
    429                 </xsl:if>
     409<!-- TODO: another dual IP BLOB XSLT code changes -->
     410                <xsl:variable name="relatedIndicators" select="$relation/RELATED_INDICATORS/RELATED_INDICATOR"/>
     411                <xsl:choose>
     412                        <xsl:when test="count($relatedIndicators) != 0">
     413                                <h2 title="Related links for {$relation/TITLE}">
     414                                        Related <xsl:value-of select="$relation/TITLE"/> Indicator Profiles:
     415                                </h2>
     416                                <ul>
     417                                <xsl:for-each select="$relatedIndicators">
     418                                        <li>
     419                                                <a href="{if($previewFlag) then '#' else concat($ibis.urlPrefix, 'indicator/view/', $indicator/DEFAULT_INDICATOR_VIEW_NAME, '.html')}">
     420                                                        <xsl:value-of select="TITLE"/>
     421                                                </a>
     422                                        </li>
     423                                </xsl:for-each>
     424                                </ul>
     425                        </xsl:when>
     426
     427                        <xsl:otherwise>
     428                                <xsl:variable name="relatedIndicatorNames" select="
     429                                        if($previewFlag)then $relation/RELATED_INDICATOR_NAMES/RELATED_INDICATOR_NAME
     430                                        else $relation/RELATED_INDICATOR_NAMES/RELATED_INDICATOR_NAME[text() = $Indicator.publishedIndicators//INDICATOR/NAME]"
     431                                />
     432
     433                                <xsl:if test="count($relatedIndicatorNames) &gt; 0">
     434                                        <h2 title="Related links for {$relation/TITLE}">
     435                                                Related <xsl:value-of select="$relation/TITLE"/> Indicator Profiles:
     436                                        </h2>
     437                                        <ul>
     438                                        <xsl:for-each select="$relatedIndicatorNames">
     439                                                <xsl:variable name="indicatorXMLFilename" select="concat(current(), '.xml')"/>
     440                                                <xsl:variable name="indicator" select="document($indicatorXMLFilename, /)/INDICATOR"/>
     441                                                <li>
     442                                                        <a href="{if($previewFlag) then '#' else concat($ibis.urlPrefix, 'indicator/view/', $indicator/DEFAULT_INDICATOR_VIEW_NAME, '.html')}">
     443                                                                <xsl:value-of select="$indicator/TITLE"/>
     444                                                        </a>
     445                                                </li>
     446                                        </xsl:for-each>
     447                                        </ul>
     448                                </xsl:if>
     449                        </xsl:otherwise>
     450                </xsl:choose>
     451
    430452        </xsl:template>
    431453
  • trunk/src/main/webapps/ibisph-view/xslt/html/indicator/profile/IndicatorView.xslt

    r3225 r3748  
    5858                        for-each (and apply-templates) causes a context switch (change of context node).
    5959                        Need to use a variable or comparison won't work...
     60
     61                        TODO: This code handles both the BLOB based self contained IP XML structure
     62                        and the older more DB accurate IVNs structure.  At some point need to decide
     63                        and standardize on 1 or the other and rip out the java and xslt code as needed.
    6064                -->
    61                 <xsl:param name="otherIndicatorViewNames" select="$indicator/INDICATOR_VIEW_NAMES/INDICATOR_VIEW_NAME[. != $indicatorView/NAME]"/>
    62                 <xsl:if test="count($otherIndicatorViewNames) &gt; 0">
    63                         <h2 title="Other chart data views for {$indicator/TITLE}">Other Views</h2>
    64                         <ul>
    65                         <xsl:for-each select="$otherIndicatorViewNames">
    66                                 <xsl:variable name="otherIndicatorView" select="document(concat(current(), '.xml'), /)/INDICATOR_VIEW"/>
    67                                 <xsl:variable name="indicatorViewTitle" select="ibis:getIndicatorViewTitle($otherIndicatorView)"/>
    68                                 <li><a href="{concat($ibis.urlPrefix, 'indicator/view/', current(), '.html')}"
    69                                                 title="Another view for {$indicatorViewTitle}"
    70                                         ><xsl:value-of select="$indicatorViewTitle"/>
    71                                 </a></li>
    72                         </xsl:for-each>
    73                         </ul><br/>
    74                 </xsl:if>
     65                <xsl:variable name="otherIndicatorViews" select="$indicator/INDICATOR_VIEWS/INDICATOR_VIEW[NAME != $indicatorView/NAME]"/>
     66                <xsl:choose>
     67                        <xsl:when test="count($otherIndicatorViews) != 0">
     68                                <h2 title="Other chart data views for {$indicator/TITLE}">Other Views</h2>
     69                                <ul>
     70                                <xsl:for-each select="$otherIndicatorViews">
     71                                        <xsl:variable name="indicatorViewTitle" select="ibis:getIndicatorViewTitle(current())"/>
     72                                        <li><a href="{concat($ibis.urlPrefix, 'indicator/view/', NAME, '.html')}"
     73                                                        title="Another view for {$indicatorViewTitle}"
     74                                                ><xsl:value-of select="$indicatorViewTitle"/>
     75                                        </a></li>
     76                                </xsl:for-each>
     77                                </ul><br/>
     78                        </xsl:when>
     79                        <xsl:otherwise>
     80                                <xsl:variable name="otherIndicatorViewNames" select="$indicator/INDICATOR_VIEW_NAMES/INDICATOR_VIEW_NAME[. != $indicatorView/NAME]"/>
     81                                <xsl:if test="count($otherIndicatorViewNames) &gt; 0">
     82                                        <h2 title="Other chart data views for {$indicator/TITLE}">Other Views</h2>
     83                                        <ul>
     84                                        <xsl:for-each select="$otherIndicatorViewNames">
     85                                                <xsl:variable name="otherIndicatorView" select="document(concat(current(), '.xml'), /)/INDICATOR_VIEW"/>
     86                                                <xsl:variable name="indicatorViewTitle" select="ibis:getIndicatorViewTitle($otherIndicatorView)"/>
     87                                                <li><a href="{concat($ibis.urlPrefix, 'indicator/view/', current(), '.html')}"
     88                                                                title="Another view for {$indicatorViewTitle}"
     89                                                        ><xsl:value-of select="$indicatorViewTitle"/>
     90                                                </a></li>
     91                                        </xsl:for-each>
     92                                        </ul><br/>
     93                                </xsl:if>
     94                        </xsl:otherwise>
     95                </xsl:choose>
     96
    7597        </xsl:template>
    7698
  • trunk/src/main/webapps/ibisph-view/xslt/html/indicator/profile/SiteSpecific.xslt

    r3225 r3748  
    5555                                                <DESCRIPTION>Default chart/graphical view if clickec, otherwise views for <xsl:value-of select="$indicator/TITLE"/></DESCRIPTION>
    5656                                                <SELECTIONS>
     57<!-- TODO: another dual IP BLOB XSLT code changes -->
     58                <xsl:variable name="otherIndicatorViews" select="$indicator/INDICATOR_VIEWS/INDICATOR_VIEW"/>
     59                <xsl:choose>
     60                        <xsl:when test="count($otherIndicatorViews) != 0">
     61                                                        <xsl:for-each select="$otherIndicatorViews">
     62                                                                <SELECTION>
     63                                                                        <URL><xsl:value-of select="concat($ibis.urlPrefix, 'indicator/view/', NAME, '.html')"/></URL>
     64                                                                        <DESCRIPTION>Another chart/graphical view of <xsl:value-of select="TITLE"/></DESCRIPTION>
     65                                                                        <TITLE><xsl:value-of select="SUB_TITLE"/></TITLE>
     66                                                                </SELECTION>
     67                                                        </xsl:for-each>
     68                        </xsl:when>
     69                        <xsl:otherwise>
    5770                                                        <xsl:for-each select="$indicator/INDICATOR_VIEW_NAMES/INDICATOR_VIEW_NAME">
    5871                                                                <SELECTION>
     
    6376                                                                </SELECTION>
    6477                                                        </xsl:for-each>
     78                        </xsl:otherwise>
     79                </xsl:choose>
    6580                                                </SELECTIONS>
    6681                                        </xsl:if>
  • trunk/src/main/webapps/ibisph-view/xslt/html/indicator/profile/complete_profile/Page.xslt

    r3738 r3748  
    2424                <company>Software Technology Group/CDC/Utah Department of Health</company>
    2525        </ibis:doc>
     26
     27
     28        <xsl:param name="indicatorViews"/>
    2629
    2730
     
    7881                        <h1>Graphical Data Views</h1>
    7982
     83<!-- TODO: Needs all assoc IP Views to be injected into a parameter -->
    8084                        <xsl:for-each select="$indicator/INDICATOR_VIEW_NAMES/INDICATOR_VIEW_NAME">
    81                                 <xsl:variable name="indicatorView" select="document(concat(current(), '.xml'), /)/INDICATOR_VIEW"/>
     85                                <xsl:variable name="indicatorView"
     86                                        select="if(count($indicatorViews) != 0)
     87                                        then $indicatorViews/INDICATOR_VIEWS/INDICATOR_VIEW[current() = NAME]
     88                                        else document(concat(current(), '.xml'), /)/INDICATOR_VIEW
     89                                "/>
    8290
    8391                                <xsl:call-template name="Graphic.indicatorViewChart">
  • trunk/src/main/webapps/ibisph-view/xslt/html/phom/profile/expanded/Page.xslt

    r3369 r3748  
    2626        </ibis:doc>
    2727
     28
     29        <xsl:param name="indicatorViews"/>
    2830
    2931        <xsl:param name="Page.pageTitle" ibis:doc="Page's title text based on the 'indicator/TITLE'.">
     
    6567                        <h1>Graphical Data Views</h1>
    6668
     69<!-- TODO: Needs all assoc IP Views to be injected into a parameter -->
    6770                        <xsl:for-each select="$indicator/INDICATOR_VIEW_NAMES/INDICATOR_VIEW_NAME">
    68                                 <xsl:variable name="indicatorView" select="document(concat(current(), '.xml'), /)/INDICATOR_VIEW"/>
     71                                <xsl:variable name="indicatorView"
     72                                        select="if(count($indicatorViews) != 0)
     73                                        then $indicatorViews/INDICATOR_VIEWS/INDICATOR_VIEW[current() = NAME]
     74                                        else document(concat(current(), '.xml'), /)/INDICATOR_VIEW
     75                                "/>
    6976
    7077                                <xsl:call-template name="Graphic.indicatorViewChart">
Note: See TracChangeset for help on using the changeset viewer.