← Back to team overview

dhis2-devs team mailing list archive

Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 1474: Work in progress on embedded help function. Finished data-web-maintenance-dataadmin module.

 

2010/2/24 Bob Jolliffe <bobjolliffe@xxxxxxxxx>

> Hi Lars
>
> I must admit that I was thinking along similar lines to Jason.  The
> translation from docbook elements to (x)html elements does seem to be
> a bit redundant.  Assuming that we were to include the full xhtml
> transform of the documentation with dhis anyway, then your online help
> can reference that as easily as the docbook source.
>

That's just fine with me..


>
> But I do agree with all your points regarding locating and filtering
> the right content.  So you might still use a transformation to do it.
> But you would apply it to doc-xhtml.xml rather than doc-docbk.xml.
> The transform would be a bit simpler - still locating the section by
> id (we need to just ensure that those ids are in the docbook src and
> they percolate through to the xhtml).  The main difference would be
> that you wouldn't need to transform the elements in any way - just
> select and filter them.
>
> The way you might do this is to apply the identity transformation
> which simply copies input tree to output tree.  Then you filter as
> appropriate.  Very roughly speaking you might have something like this
> (assuming h3 tags had ids for help sections - as you know the key() is
> optional - I just cut and pasted):
>
>    <xsl:param name="sectionId">learningObjectives</xsl:param>
>
>    <xsl:key name="sections" match="/xhtml/body/h3" use="@id" />
>
> <!-- this will override the more general match -->
>    <xsl:template match="h3">
>        <xsl:copy>
> <!--            only process paras and lists from here-->
>            <xsl:apply-templates select="p|ul|ol"/>
>        </xsl:copy>
>    </xsl:template>
>
>
>    <!-- identity template
>        in the absence of any more specific instructions - just copy all to
> all
>    -->
>    <xsl:template match="@*|node()">
>        <xsl:copy>
>            <xsl:apply-templates select="@*|node()"/>
>        </xsl:copy>
>     </xsl:template>
>
>    <xsl:template match="/">
>           <xsl:apply-templates select="key('sections',$sectionId)"/>
>    </xsl:template>
>
>
OK will have a closer look at this.


> And I guess the source document needn't come from the docbook file in
> resources but from a url like http://localhost/docs/manual.xhtml.  Or
> the file in resources - up to you.
>


> What do you think?
>
> Bob.
>
> PS. on an aside I am now more unsure that I have located the
> LocationManagerResolver in the wrong package.  Here already there
> might be need for an additional resolver (ResourcesResolver).
> Currently if your xslt was any more complex and called an import() or
> document() function its going to resolve relative references via the
> locationmanager, which wouldn't be what you want.  I think I should
> possibly make a uri resolvers package in import export module.
>
>
OK that sounds sensible. We might wait with that until we need it though..

Thanks for the input.


>
> 2010/2/24 Lars Helge Øverland <larshelge@xxxxxxxxx>:
> >
> >
> > 2010/2/24 Jason Pickering <jason.p.pickering@xxxxxxxxx>
> >>
> >> Hi Lars and company,
> >>
> >> I am just sitting here early in the morning with a cup of coffee, when
> >> typically my head is clearer. I am just wondering about the best way
> >> to do this. The DocBocX maven plugin is actually capable of applying a
> >> custom XSL to the DocBook XML source files. So, I am wondering if
> >> there is a need to have this code in DHIS, instead of relying on the
> >> documentation build process itself to output the required format (XML,
> >> XHTML). I am wondering about this a bit, as at some point the
> >> documents may be upgraded to DocBook 5.0, which might require further
> >> changes to the code itself inside of DHIS2. Since we have decided to
> >> keep the documentation branch separate from the main branch (which I
> >> think is actually the right thing to do), I am wondering what happens
> >> when maybe we upgrade to 5.0, or another version. The DocBkX maven
> >> plugin should provide the functionality required to output essentially
> >> any format, even if there needs to be a separate plugin built to
> >> export XML. I am not totally sure I understand all the mojo
> >> terminology  here http://docbkx-tools.sourceforge.net/ but it would
> >> seem that the plugin is actually built from the DocBook XSL sources
> >> themselves, which are under constant development themselves
> >> (http://docbook.sourceforge.net/release/xsl/current/). It would seem
> >> good to reuse as much as we can from there, so as to insulate DHIS
> >> from different versions of DocBook.
> >>
> >> My other question would be, is the transformation from XML really
> >> necessary? If a browser renderable format such as XHTML was rendered
> >> properly and included with DHIS, would it be necessary to render the
> >> DocBook source at runtime?  If appropriate <id> tags were used at
> >> sections in the document, it should be possible to find this directly
> >> in an XHTML document, as opposed to having to transform the document
> >> from XML source and into another format each time the user needs help.
> >> It would then be someones responsibility to map the ids in the docbook
> >> source, back to a specific URL of the application.
> >>
> >> Best regards,
> >> Jason
> >>
> >>
> >>
> > Hi,
> > thanks for providing feedback on this. First I am open for suggestions on
> > improvements. Using XHTML as basis might very well be sensible.
> > They way I see it the xslt still gives you a few advantages:
> > - you can pick and choose the elements you need from the docbook file, eg
> > omitting screenshots which we don't want in the help text
> > - only loading the part of the docbook file relevant for the current help
> > text from the server, not the whole document.
> > - easily locating the right section.
> > I might be missing something from your suggestion though...
> > cheers
> > Lars
> >
> >>
> >> Anyway, some early morning thoughts..
> >>
> >> 2010/2/24 Lars Helge Øverland <larshelge@xxxxxxxxx>:
> >> >
> >> >
> >> > On Tue, Feb 23, 2010 at 9:36 PM, Bob Jolliffe <bobjolliffe@xxxxxxxxx>
> >> > wrote:
> >> >>
> >> >> Just gave it a spin.  Lars that's just too cool for words :-)  Nice
> to
> >> >> see the transformer getting some exercise.  And a great consequence
> of
> >> >> the move to docbook.  Its hard to imagine how we could have linked
> >> >> this up to our original word documentation.
> >> >>
> >> >
> >> > Happy you liked it.. Also starting to like xslt, consider me a member
> of
> >> > the
> >> > club:-)
> >> >
> >> >>
> >> >> On 23 February 2010 19:47,  <noreply@xxxxxxxxxxxxx> wrote:
> >> >> > ------------------------------------------------------------
> >> >> > revno: 1474
> >> >> > committer: Lars Helge Oeverland <larshelge@xxxxxxxxx>
> >> >> > branch nick: trunk
> >> >> > timestamp: Tue 2010-02-23 20:44:51 +0100
> >> >> > message:
> >> >> >  Work in progress on embedded help function. Finished
> >> >> > data-web-maintenance-dataadmin module.
> >> >> > modified:
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/help/DefaultHelpManager.java
> >> >> >  dhis-2/dhis-options/src/main/resources/help_content.xml
> >> >> >  dhis-2/dhis-options/src/main/resources/help_stylesheet.xsl
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/widgets.css
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/help.png
> >> >> >
>  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/macros.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserForm.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/lockingForm.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/organisationUnitMergeForm.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/resourceTableForm.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/showcache.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/viewStatistics.vm
> >> >> >
> >> >> >
> >> >> >
>  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/zeroValueStorageManagement.vm
> >> >> >
> >> >> >
> >> >> > --
> >> >> > lp:dhis2
> >> >> > https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
> >> >> >
> >> >> > Your team DHIS 2 developers is subscribed to branch lp:dhis2.
> >> >> > To unsubscribe from this branch go to
> >> >> >
> >> >> >
> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
> .
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/help/DefaultHelpManager.java'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/help/DefaultHelpManager.java
> >> >> >        2010-02-23 17:10:02 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/help/DefaultHelpManager.java
> >> >> >        2010-02-23 19:44:51 +0000
> >> >> > @@ -48,11 +48,9 @@
> >> >> >     {
> >> >> >         try
> >> >> >         {
> >> >> > -            TransformerFactory factory =
> >> >> > TransformerFactory.newInstance();
> >> >> > -
> >> >> >             Source stylesheet = new StreamSource( new
> >> >> > ClassPathResource(
> >> >> > "help_stylesheet.xsl" ).getInputStream() );
> >> >> >
> >> >> > -            Transformer transformer = factory.newTransformer(
> >> >> > stylesheet );
> >> >> > +            Transformer transformer =
> >> >> > TransformerFactory.newInstance().newTransformer( stylesheet );
> >> >> >
> >> >> >             transformer.setParameter( "sectionId", id );
> >> >> >
> >> >> >
> >> >> > === modified file
> >> >> > 'dhis-2/dhis-options/src/main/resources/help_content.xml'
> >> >> > --- dhis-2/dhis-options/src/main/resources/help_content.xml
> >> >> > 2010-02-23 17:10:02 +0000
> >> >> > +++ dhis-2/dhis-options/src/main/resources/help_content.xml
> >> >> > 2010-02-23 19:44:51 +0000
> >> >> > @@ -1,40 +1,276 @@
> >> >> > -<?xml version='1.0' encoding='UTF-8'?>
> >> >> > -<chapter>
> >> >> > -  <title>Data Quality</title>
> >> >> > -  <para>The data quality module provides means to improve the
> >> >> > quality
> >> >> > of the data in the system. This can be done through validation
> rules
> >> >> > and
> >> >> > various statistical checks.</para>
> >> >> > -  <section id="learningObjectives">
> >> >> > -    <title>Learning Objectives</title>
> >> >> > -    <para>After reading this module you will be able to
> >> >> > understand:</para>
> >> >> > -      <orderedlist>
> >> >> > -        <listitem>
> >> >> > -          <para>What is data quality and its importance for
> >> >> > HMIS.</para>
> >> >> > -        </listitem>
> >> >> > -        <listitem>
> >> >> > -          <para>How to do data quality check at point of data
> >> >> > entry.</para>
> >> >> > -        </listitem>
> >> >> > -        <listitem>
> >> >> > -          <para>How to create data validation rules.</para>
> >> >> > -        </listitem>
> >> >> > -        <listitem>
> >> >> > -          <para>How to carry out data triangulation.</para>
> >> >> > -        </listitem>
> >> >> > -        <listitem>
> >> >> > -          <para>How to analyze data status.</para>
> >> >> > -        </listitem>
> >> >> > -      </orderedlist>
> >> >> > -       <para>This stuff is in a paragraph</para>
> >> >> > -  </section>
> >> >> > -  <section id="overview">
> >> >> > -    <title>Overview of data quality check</title>
> >> >> > -    <para>Ensuring data quality is a key concern in building an
> >> >> > effective HMIS. Data quality has different dimensions
> >> >> > including:</para>
> >> >> > -      <itemizedlist>
> >> >> > -        <listitem>
> >> >> > -          <para><emphasis>Correctness:</emphasis> Data should be
> >> >> > within
> >> >> > the normal range for data collected at that facility. There should
> be
> >> >> > no
> >> >> > gross discrepancies when compared with data from related data
> >> >> > elements.</para>
> >> >> > -        </listitem>
> >> >> > -        <listitem>
> >> >> > -          <para><emphasis>Completeness:</emphasis> Data for all
> data
> >> >> > elements for all health facilities/blocks/Taluka/districts should
> >> >> > have been
> >> >> > submitted.</para>
> >> >> > -        </listitem>
> >> >> > -      </itemizedlist>
> >> >> > -       <para>This stuff is in a paragraph</para>
> >> >> > -  </section>
> >> >> > -</chapter>
> >> >> > +<?xml version='1.0' encoding='UTF-8'?>
> >> >> > +<?xml-stylesheet type="text/xsl" href="find.xsl"?>
> >> >> > +<book>
> >> >> > +  <chapter>
> >> >> > +    <title>Data Administration in DHIS 2</title>
> >> >> > +      <para>The data administration module provides a range of
> >> >> > functions to ensure that the data stored in the DHIS2 database is
> >> >> > integral
> >> >> > and that the database performance is optimised. These functions
> >> >> > should be
> >> >> > executed on a regular basis by a data administrator to ensure that
> >> >> > the
> >> >> > quality of the data stored is optimal. </para>
> >> >> > +      <section id="dataBrowser">
> >> >> > +        <title>Data browser</title>
> >> >> > +        <para>The data browser maintenance module allows the user
> to
> >> >> > produce a summary of the data contained in the DHIS2 database. This
> >> >> > summary
> >> >> > provides the number of data element values that have been recorded
> >> >> > for a
> >> >> > given time interval and then grouped by the following
> options:</para>
> >> >> > +        <itemizedlist>
> >> >> > +          <listitem>
> >> >> > +            <para>Data sets</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Data element groups</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Organisational unit groups</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Organisational units</para>
> >> >> > +          </listitem>
> >> >> > +        </itemizedlist>
> >> >> > +        <para>Each of these options can be accessed by selecting
> the
> >> >> > desired option from  <guilabel>&quot;Browse by&quot;
> >> >> > </guilabel>drop-down
> >> >> > menu. </para>
> >> >> > +        <para>In order to produce a summary of submitted data for
> a
> >> >> > given period and grouped by data sets, the user should follow this
> >> >> > procedure. Begin by selecting a given periodicity type (e.g.
> Weekly,
> >> >> > monthly, yearly, etc) and then a time interval (e.g. January 2009
> to
> >> >> > March
> >> >> > 2009). Select the type of summary to be produced (e.g. Dataset)
> from
> >> >> > the
> >> >> > &quot;Browse by&quot; drop-down menu. Click the &quot;Browse&quot;
> >> >> > button to
> >> >> > view the summary. </para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="70%" align="center"
> >> >> > fileref="resources/images/maintainence/data_browser1.png"
> >> >> > format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para>A summary of the number  of data element values that
> >> >> > have
> >> >> > been submitted over the user selected time period is shown below.
> >> >> > </para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="80%" align="center"
> >> >> > fileref="resources/images/maintainence/data_browsing_data_sets.png"
> >> >> > format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para> By clicking on the name of the individual dataset,
> a
> >> >> > more detailed summary of each data element can be obtained as shown
> >> >> > below.
> >> >> >  A cross-tab table summarising each time period will be shown.
> >> >> > </para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="80%" align="center"
> >> >> >
> >> >> >
> fileref="resources/images/maintainence/data_browser_dataset_detail.png"
> >> >> > format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para>The functionality of the grouping by Datasets, Data
> >> >> > element groups, and Organisational groups is essentially the same.
> >> >> > </para>
> >> >> > +        <para>The functionality of grouping by organisation units
> >> >> > will
> >> >> > be discussed below. Begin by selecting &quot;Organisation
> units&quot;
> >> >> > from
> >> >> > the &quot;Browse by&quot; drop-down menu. The organisational
> >> >> > hierarchy
> >> >> > present in the database will now be displayed. Organisational units
> >> >> > can be
> >> >> > expanded by clicking on the plus symbol in the organisational tree
> >> >> > view.</para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="60%" align="center"
> >> >> > fileref="resources/images/maintainence/data_browser_org_unit1.png"
> >> >> > format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para> By clicking on an organisational unit, and the
> >> >> > clicking
> >> >> > the &quot;Browse&quot; button, a summary of submitted data elements
> >> >> > present
> >> >> > in the database is returned for all immediate children of the
> >> >> > selected
> >> >> > organisational as shown below</para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="60%" align="center"
> >> >> > fileref="resources/images/maintainence/data_browser_orgunit2a.png"
> >> >> > format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para>By clicking on one of the organisational units, a
> >> >> > detailed list of data elements is presented by each time period as
> >> >> > shown
> >> >> > below. <screenshot>
> >> >> > +            <mediaobject>
> >> >> > +              <imageobject>
> >> >> > +                <imagedata width="60%" align="center"
> >> >> > fileref="resources/images/maintainence/data_browser_orgunit2.png"
> >> >> > format="PNG"/>
> >> >> > +              </imageobject>
> >> >> > +            </mediaobject>
> >> >> > +          </screenshot></para>
> >> >> > +        <para>For each of the data browser summaries, a PDF export
> >> >> > can
> >> >> > be produced by specifying a filename in the &quot;Filename&quot;
> >> >> > field,
> >> >> > selecting a font size, a page layout (Landscape or Portrait) and
> >> >> > pressing
> >> >> >  the <guibutton>&quot;Export PDF&quot;</guibutton> button. You will
> >> >> > then be
> >> >> > prompted to select a location to save the file to, which can then
> be
> >> >> > viewed
> >> >> > with any PDF reader (e.g. Adobe Acrobat Reader, xpdf, etc). </para>
> >> >> > +      </section>
> >> >> > +      <section id="dataIntegrity">
> >> >> > +        <title>Data integrity</title>
> >> >> > +        <para>DHIS2 can perform a wide range of data integrity
> >> >> > checks
> >> >> > on the data contained in the database. Identifying and correcting
> >> >> > data
> >> >> > integrity issues is extremely important for ensuring that the data
> >> >> > used for
> >> >> > analysis purposes is valid. Each of the data integrity checks that
> >> >> > are
> >> >> > performed by the system will be described, along with general
> >> >> > procedures
> >> >> > that can be performed to resolve these issues. </para>
> >> >> > +        <section>
> >> >> > +          <title>Data elements without data set</title>
> >> >> > +          <para>Each data element must be assigned to a data set.
> >> >> > Values for data elements will not be able to be entered into the
> >> >> > system if a
> >> >> > data element is not assigned to a data set. Choose
> >> >> > Maintenance-&gt;Datasets-&gt;Edit from the main menu and then add
> the
> >> >> > &quot;orphaned&quot; data element to the appropriate data set.
> >> >> > </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Data elements without groups</title>
> >> >> > +          <para>Some Data Elements have been allocated to several
> >> >> > Data
> >> >> > Element Groups. This is currently not allowed, because it will
> result
> >> >> > in
> >> >> > duplication of linked data records in the PivotSource recordsets
> that
> >> >> > `feed`
> >> >> > the pivot tables. Go to Maintenance -&gt; Data Element Groups to
> >> >> > review each
> >> >> > Data Element identified and remove the incorrect Group
> >> >> > allocations.</para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Data elements assigned to data sets with
> different
> >> >> > period types</title>
> >> >> > +          <para>Data Elements should not be assigned to two
> separate
> >> >> > data sets whose period types differ. The recommended approach would
> >> >> > be to
> >> >> > create two separate data elements (for instance a monthly and
> yearly
> >> >> > data
> >> >> > element) and assign these to respective datasets. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Data sets not assigned to organisation
> >> >> > units</title>
> >> >> > +          <para>All data sets should be assigned to at least one
> >> >> > organisation unit. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Indicators with identical formulas</title>
> >> >> > +          <para>Although this rule will not affect data quality,
> it
> >> >> > generally does not make sense to have two indicators with the exact
> >> >> > same
> >> >> > definition. Review the identified indicators and their formulas and
> >> >> > delete
> >> >> > or modify  any indicator that appears to be the duplicate.</para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Indicators without groups</title>
> >> >> > +          <para>All Data Elements and Indicators must be assigned
> to
> >> >> > at
> >> >> > least one group, so these Indicators need to be allocated to their
> >> >> > correct
> >> >> > Data Element and Indicator Group. Go to Maintenance -&gt; Indicator
> >> >> > Groups,
> >> >> > and allocate each of the `Orphaned` Indicators to its correct
> >> >> > group.</para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Invalid indicator numerators</title>
> >> >> > +          <para>Violations of this rule may be caused by an
> >> >> > incorrect
> >> >> > reference to a deleted or modified data element. Review the
> indicator
> >> >> > and
> >> >> > make corrections to the numerator definition. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Invalid indicator denominators</title>
> >> >> > +          <para>Violations of this rule may be caused by an
> >> >> > incorrect
> >> >> > reference to a deleted or modified data element. Review the
> indicator
> >> >> > and
> >> >> > make corrections to the denominator definition. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title> Organisation units with cyclic
> references</title>
> >> >> > +          <para>Organisation units cannot be both parent and
> >> >> > children
> >> >> > of each other, directly nor indirectly.</para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Orphaned organisation units</title>
> >> >> > +          <para>All organisation units must exist within the
> >> >> > organisation unit hierarchy. Go to Organisation-&gt;Hierarchy
> >> >> > Operations and
> >> >> > move the offending organisation unit into the proper position in
> the
> >> >> > hierarchy. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Organisation units without groups</title>
> >> >> > +          <para>All organisation units <emphasis>must</emphasis>
> be
> >> >> > allocated to at least <emphasis>one</emphasis> group. The problem
> >> >> > might
> >> >> > either be that you have not defined any `compulsory` OrgUnit Group
> >> >> > Set at
> >> >> > all, or that there are violations of the `compulsory` rule for some
> >> >> > OrgUnits
> >> >> > . NOTE: If you have defined no `compulsory` OrgUnit Group Sets,
> then
> >> >> > you
> >> >> > must first define them by going to  Maintenance -&gt; Organisation
> >> >> > units-&gt;Organisation unit group sets and define at least one
> >> >> > `compulsory`
> >> >> > Group Set (the group set `OrgUnitType` are nearly universally
> >> >> > relevant). If
> >> >> > you have the relevant group sets, go to Maintenance -&gt; OrgUnit
> >> >> > Groups to
> >> >> > review each OrgUnit identified and add the relevant Group
> >> >> > allocation.</para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Organisation units violating compulsory group
> >> >> > sets</title>
> >> >> > +          <para>These organisation units have not been assigned to
> >> >> > the
> >> >> > any organisation unit group within one of the
> >> >> >  <emphasis>compulsory</emphasis> organisation unit group sets. When
> a
> >> >> > group
> >> >> > set is defined as `compulsory`, it means that an organisation unit
> >> >> > must be
> >> >> > allocated to at least one organisation unit group within that group
> >> >> > set. For
> >> >> > instance, all organisation units must belong to one of the groups
> in
> >> >> > the
> >> >> > `organisation unitType` group set. It might belong to  the
> `Hospital`
> >> >> > or the
> >> >> > `Clinic` or any other `type` group - but it must belong to exactly
> >> >> > one of
> >> >> > them.  Go to Maintenance -&gt; organisation unit-&gt;Organisation
> >> >> > unit
> >> >> > groups to review each organisation unit identified in the integrity
> >> >> > check.
> >> >> > Allocate all organisation units to exactly one group. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Organisation units violating exclusive group
> >> >> > sets</title>
> >> >> > +          <para>Some organisation units have been allocated to
> >> >> > several
> >> >> > organisation unit groups that are members of the same exclusive
> >> >> > organisation
> >> >> > unit group set. When a group set is defined as exclusive, it means
> >> >> > that an
> >> >> > organisation unit can <emphasis>only</emphasis> be allocated to
> >> >> > <emphasis>one</emphasis> organisation unit group within that Group
> >> >> > Set. For
> >> >> > instance, one organisation unit cannot normally belong to the both
> >> >> > the
> >> >> > &apos;Hospital&apos; and &apos;Clinic&apos; groups , but rather to
> >> >> > only to
> >> >> > one of them. Go to Maintenance -&gt; organisation
> >> >> > unit-&gt;Organisation unit
> >> >> > groups to review each organisation unit identified in the integrity
> >> >> > check.
> >> >> > Remove the organisation unit from all groups except the one that it
> >> >> > should
> >> >> > be allocated to. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title> Organisation unit groups without group
> >> >> > sets</title>
> >> >> > +          <para>The organisation unit groups listed here have not
> >> >> > been
> >> >> > allocated to a group set. Go to Maintenance-&gt;Organisation
> >> >> > unit-&gt;Organisation unit group sets and allocate the Organisation
> >> >> > unit
> >> >> > group to the appropriate group set. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Validation rules without groups</title>
> >> >> > +          <para>All validation rules must be assigned to a group.
> Go
> >> >> > to
> >> >> > <command>Services-&gt;Data quality-&gt;Validation rule
> >> >> > group</command> and
> >> >> > assign the offending validation rule to a group. </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Invalid validation rule left side
> >> >> > expressions</title>
> >> >> > +          <para>An error exists in the left-side validation rule
> >> >> > definition. Go to <command>Services-&gt;Data quality-&gt;Validation
> >> >> > rule</command> and click the &quot;Edit&quot; icon on the offending
> >> >> > rule.
> >> >> > Press &quot;Edit left side&quot; and make the corrections that are
> >> >> > required.
> >> >> > </para>
> >> >> > +        </section>
> >> >> > +        <section>
> >> >> > +          <title>Invalid validation rule right side
> >> >> > expressions</title>
> >> >> > +          <para>An error exists in the left-side validation rule
> >> >> > definition. Go to <command>Services-&gt;Data quality-&gt;Validation
> >> >> > rule</command> and click the &quot;Edit&quot; icon on the offending
> >> >> > rule.
> >> >> > Press &quot;Edit right side&quot; and make the corrections that are
> >> >> > required.</para>
> >> >> > +        </section>
> >> >> > +      </section>
> >> >> > +      <section id="maintenance">
> >> >> > +        <title>Maintenance</title>
> >> >> > +        <para>The data maintenance module has five options, each
> >> >> > described below. </para>
> >> >> > +        <itemizedlist>
> >> >> > +          <listitem>
> >> >> > +            <para>Clear hierarchy history</para>
> >> >> > +            <para>DHIS 2 maintains an audit trail of changes to
> the
> >> >> > organisation unit hierarchy for aggregation purposes. This function
> >> >> > clears
> >> >> > the hierarchy history.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Clear data mart (aggregated datavalues)</para>
> >> >> > +            <para>The data mart is where DHIS 2 stores aggregated
> >> >> > data
> >> >> > produced during the export to data mart process. This function
> clears
> >> >> > the
> >> >> > database table which contains aggregated data element
> values.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Clear data mart (aggregated
> >> >> > indicatorvalues)</para>
> >> >> > +            <para>The data mart is where DHIS 2 stores aggregated
> >> >> > data
> >> >> > produced during the export to data mart process. This function
> clears
> >> >> > the
> >> >> > database table which contains aggregated indicator  values.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Clear zero values</para>
> >> >> > +            <para>This function removes zero data values from the
> >> >> > database. Values registered for data elements with aggregation
> >> >> > operator
> >> >> > <emphasis role="italic">average</emphasis> is not removed, as such
> >> >> > values
> >> >> > will be significant when aggregating the data, contrary to values
> >> >> > registered
> >> >> > for data elements with aggregation operator <emphasis
> >> >> > role="italic">sum</emphasis>. Reducing the number of data values
> will
> >> >> > improve system performance.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Clear dataset completeness</para>
> >> >> > +            <para>This function removes aggregated dataset
> >> >> > completeness
> >> >> > values. This data is produced and used by report tables.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Prune periods</para>
> >> >> > +            <para>This function removes all periods which have no
> >> >> > registered data values. Reducing the number of periods will improve
> >> >> > system
> >> >> > performance.</para>
> >> >> > +          </listitem>
> >> >> > +        </itemizedlist>
> >> >> > +      </section>
> >> >> > +      <section id="resourceTables">
> >> >> > +        <title>Resource tables</title>
> >> >> > +        <para>Resource tables are supporting tables that are used
> >> >> > during analysis of data. One would typically join the contents of
> >> >> > these
> >> >> > tables with the data value table when doing queries from
> third-party
> >> >> > applications like Microsoft Excel. Simply select the tables that
> >> >> > should be
> >> >> > regenerated and press &quot;Generate tables&quot;. Regeneration of
> >> >> > the
> >> >> > resource tables should only be done once all data integrity issues
> >> >> > are
> >> >> > resolved. </para>
> >> >> > +        <itemizedlist>
> >> >> > +          <listitem>
> >> >> > +            <para>Organisation unit structure
> >> >> > (orgunitstructure)</para>
> >> >> > +            <para>This table should be regenerated any time there
> >> >> > have
> >> >> > been any changes made to the organisational unit hierarchy. This
> >> >> > table
> >> >> > provides information about the organisation unit hierarchy. It has
> >> >> > one row
> >> >> > for each organisation unit, one  column for each organisation unit
> >> >> > level and
> >> >> > the organisation unit identifiers for all parents in the lineage as
> >> >> > values.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Exclusive organisation unit groupset structure
> >> >> > normalized (orgunitgroupsetstructure)</para>
> >> >> > +            <para>This table provides information about the which
> >> >> > organisation units are member of which organisation unit group
> >> >> > sets.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Data element group set structure
> >> >> > (_dataelementgroupsetstructure)</para>
> >> >> > +            <para>This table provides information about which data
> >> >> > elements are members of which data element group sets. The table
> has
> >> >> > one row
> >> >> > for each data element,  one column for each data element group set
> >> >> > and the
> >> >> > names of the data element group as values.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Indicator group set structure
> >> >> > (_indicatorgroupsetstructure)</para>
> >> >> > +            <para>This table provides information about which
> >> >> > indicators are members of which indicator group sets. The table has
> >> >> > one row
> >> >> > for each indicator, one column for each indicator group set and the
> >> >> > names of
> >> >> > the indicator group as values.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Organisation unit group set structure
> >> >> > (_organisationunitgroupsetstructure)</para>
> >> >> > +            <para>This table provides information about which
> >> >> > organisation units are members of which organisation unit group
> sets.
> >> >> > The
> >> >> > table has one row for each organisation unit, one column for each
> >> >> > organisation unit group set and the names of the organisation unit
> >> >> > groups as
> >> >> > values.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Category structure (_categorystructure)</para>
> >> >> > +            <para>This table provides information about which data
> >> >> > elements are members of which categories. The table has one row for
> >> >> > each
> >> >> > data element, one column for each category and the names of the
> >> >> > category
> >> >> > options as values.</para>
> >> >> > +          </listitem>
> >> >> > +          <listitem>
> >> >> > +            <para>Data element category option combo name
> >> >> > (categoryoptioncomboname)</para>
> >> >> > +            <para>This table should be regenerated any time there
> >> >> > have
> >> >> > been changes made to the category combination names. It contains
> >> >> > readable
> >> >> > names for the various combinations of categories.</para>
> >> >> > +          </listitem>
> >> >> > +        </itemizedlist>
> >> >> > +      </section>
> >> >> > +      <section id="organisationUnitMerge">
> >> >> > +        <title>Organisation unit merge</title>
> >> >> > +        <para>This function is useful when two organisation units
> >> >> > need
> >> >> > to be merged, eg. it is decided that one facility will be shut down
> >> >> > and its
> >> >> > services will be provided by a nearby facility.</para>
> >> >> > +        <para>Start by selecting the organisation unit to
> eliminate
> >> >> > from the tree and click <emphasis role="italic">confirm</emphasis>.
> >> >> >  Then
> >> >> > select the organisation unit to keep and click <emphasis
> >> >> > role="italic">confirm</emphasis> again. Finally, verify the
> selection
> >> >> > and
> >> >> > click <emphasis role="italic">merge</emphasis>.  </para>
> >> >> > +        <para>In the sitation where data exist  for the
> organisation
> >> >> > unit to eliminate and not for the one to keep, the data will be
> moved
> >> >> > to the
> >> >> > one to keep. When data exists for both organisation units, the data
> >> >> > will be
> >> >> > summarized and moved to the one to keep. When data exists only for
> >> >> > the one
> >> >> > to keep, no action is taken. The organisation unit to eliminate
> will
> >> >> > eventually be deleted.</para>
> >> >> > +      </section>
> >> >> > +      <section id="duplicateDataElimination">
> >> >> > +        <title>Duplicate data elimination</title>
> >> >> > +        <para>This function is useful when data has been entered
> >> >> > mistakenly for two data elements which represents the same
> >> >> > phenomena.</para>
> >> >> > +        <para>Start by selecting the data element to eliminate
> from
> >> >> > the
> >> >> > list and click confirm. Then select the data element to keep and
> >> >> > click
> >> >> > confirm again. Finally, verify the selection and click
> merge.</para>
> >> >> > +        <para>In the situation where data exists for the data
> >> >> > element
> >> >> > to eliminate and not for the one to keep, the data will be moved to
> >> >> > the one
> >> >> > to keep. When data exists for both data elements, the data which
> was
> >> >> > updated
> >> >> > last will be used. When data exists only for the one to keep, no
> >> >> > action will
> >> >> > be taken. The data element to eliminate will eventually be deleted,
> >> >> > except
> >> >> > when it is a multidimensional data element and has other data
> >> >> > registered.</para>
> >> >> > +      </section>
> >> >> > +      <section id="dataStatistics">
> >> >> > +        <title>Data statistics</title>
> >> >> > +        <para>The data statistics module provides an overview of
> the
> >> >> > number of objects stored in the DHIS2 database. </para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="80%" align="center"
> >> >> > fileref="resources/images/maintainence/data_stats.png"
> format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para>The total number of each type of object is presented
> >> >> > in a
> >> >> > table, as well as a graph. </para>
> >> >> > +      </section>
> >> >> > +      <section id="dataLocking">
> >> >> > +        <title>Data locking</title>
> >> >> > +        <para>This module gives users the privilege of locking
> >> >> > certain
> >> >> > datasets for chosen organisation units. This encourages timely data
> >> >> > entry
> >> >> > and prevents unwanted to changes to the data once it has been
> >> >> > entered. When
> >> >> > the ‘Data Administration’ option is chosen the data locking
> interface
> >> >> > is
> >> >> > displayed. The user has to select the periodicity of the report
> e.g.
> >> >> > monthly, quarterly or
> >> >> > +  yearly for which the data is to be locked. The month, quarter or
> >> >> > year
> >> >> > for which the reports are to be locked is then specified. </para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="80%" align="center"
> >> >> > fileref="resources/images/maintainence/data_locking_select1.png"
> >> >> > format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para>The unlocked data sets for the period are displayed
> >> >> > and
> >> >> > the user will then have to choose the data sets to be locked.
> >> >> > +  </para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="80%" align="center"
> >> >> > fileref="resources/images/maintainence/data_locking_select2.png"
> >> >> > format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para>After choosing the datasets to be locked, double
> click
> >> >> > on
> >> >> > each one by one to display the organisation unit tree in the field
> >> >> > below.
> >> >> > Click on the organisation unit to lock the dataset.
> >> >> > +  </para>
> >> >> > +        <screenshot>
> >> >> > +          <mediaobject>
> >> >> > +            <imageobject>
> >> >> > +              <imagedata width="80%" align="center"
> >> >> > fileref="resources/images/maintainence/data_locking_select3.png"
> >> >> > format="PNG"/>
> >> >> > +            </imageobject>
> >> >> > +          </mediaobject>
> >> >> > +        </screenshot>
> >> >> > +        <para>The <guibutton>Apply Locks on All</guibutton> button
> >> >> > locks the dataset for all the organisation units to which that
> >> >> > dataset has
> >> >> > been assigned. <guibutton>‘Remove locks on All’</guibutton> removes
> >> >> > all
> >> >> > locks put on the organisation units corresponding to the selected
> >> >> > dataset.
> >> >> > After the operations are completed the user must click
> >> >> > <guibutton>‘Save’</guibutton> to apply the settings. The
> >> >> > <guibutton>‘Lock at
> >> >> > level’</guibutton> button locks datasets at a particular level that
> >> >> > the user
> >> >> > chooses. . <guibutton>‘Unlock at Level’</guibutton> removes locks
> >> >> > that have
> >> >> > been put on the organisation units corresponding to the selected
> >> >> > dataset at
> >> >> > the selected level. After the operations are completed, the user
> must
> >> >> > click
> >> >> > <guibutton>‘Save’</guibutton> to apply the settings. The
> >> >> > <guibutton>‘Save’</guibutton> button will also lock those
> >> >> > organisation unit
> >> >> > datasets that have been specified by the user.
> >> >> > +  </para>
> >> >> > +      </section>
> >> >> > +      <section id="zeroValueStorage">
> >> >> > +        <title>Zero value storage</title>
> >> >> > +        <para>The zero value storage function makes it possible to
> >> >> > define for which data elements the system should store zero values.
> >> >> > In most
> >> >> > cases zeros are significant only for a subset of the data elements
> in
> >> >> > the
> >> >> > database. Zero values will be ignored during data entry for
> selected
> >> >> > data
> >> >> > elements.</para>
> >> >> > +      </section>
> >> >> > +      <section id="cacheStatistics">
> >> >> > +        <title>Cache Statistics </title>
> >> >> > +        <para>This option is for system administrators only to
> use.
> >> >> > The
> >> >> > cache statistics shows the status of the application level cache.
> The
> >> >> > application level cache refers to the objects and query results
> that
> >> >> > the
> >> >> > application is caching in order to speed up performance. If the
> >> >> > database has
> >> >> > been modified directly the application cache needs to be cleared
> for
> >> >> > it to
> >> >> > take effect.</para>
> >> >> > +      </section>
> >> >> > +  </chapter>
> >> >> > +</book>
> >> >> > \ No newline at end of file
> >> >> >
> >> >> > === modified file
> >> >> > 'dhis-2/dhis-options/src/main/resources/help_stylesheet.xsl'
> >> >> > --- dhis-2/dhis-options/src/main/resources/help_stylesheet.xsl
> >> >> >  2010-02-23 17:10:02 +0000
> >> >> > +++ dhis-2/dhis-options/src/main/resources/help_stylesheet.xsl
> >> >> >  2010-02-23 19:44:51 +0000
> >> >> > @@ -28,7 +28,7 @@
> >> >> >  </xsl:template>
> >> >> >
> >> >> >  <xsl:template match="/">
> >> >> > -  <xsl:apply-templates select="chapter/section[@id=$sectionId]"/>
> >> >> > +  <xsl:apply-templates
> >> >> > select="book/chapter/section[@id=$sectionId]"/>
> >> >> >  </xsl:template>
> >> >> >
> >> >> >  </xsl:stylesheet>
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/widgets.css'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/widgets.css
> >> >> > 2010-02-23 18:58:09 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/css/widgets.css
> >> >> > 2010-02-23 19:44:51 +0000
> >> >> > @@ -18,6 +18,7 @@
> >> >> >   padding-right: 15px;
> >> >> >   padding-top: 9px;
> >> >> >   padding-bottom: 9px;
> >> >> > +  overflow: auto;
> >> >> >  }
> >> >> >
> >> >> >  #hideRightBar
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/help.png'
> >> >> > Binary files
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/help.png
> >> >> > 2009-04-20 14:54:22 +0000 and
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/images/help.png
> >> >> >      2010-02-23 19:44:51 +0000 differ
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/macros.vm'
> >> >> > ---
> >> >> >
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/macros.vm
> >> >> >        2009-11-02 18:13:58 +0000
> >> >> > +++
> >> >> >
> dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/macros.vm
> >> >> >        2010-02-23 19:44:51 +0000
> >> >> > @@ -91,7 +91,7 @@
> >> >> >  #end
> >> >> >
> >> >> >  #macro( openHelp $id )
> >> >> > -<a href="javascript:openHelpForm('${id}')" title="$i18n.getString(
> >> >> > 'help' )"><img src="../images/help.png" alt="$i18n.getString(
> 'help'
> >> >> > )"></a>
> >> >> > +<a href="javascript:getHelpContent('${id}')"
> title="$i18n.getString(
> >> >> > 'help' )"><img src="../images/help.png" alt="$i18n.getString(
> 'help'
> >> >> > )"></a>
> >> >> >  #end
> >> >> >
> >> >> >  #macro( introListItem $action $objectKey )
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserForm.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserForm.vm
> >> >> >       2009-10-28 12:38:33 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataBrowserForm.vm
> >> >> >       2010-02-23 19:44:51 +0000
> >> >> > @@ -1,5 +1,5 @@
> >> >> >
> >> >> > -<h3>$i18n.getString( "data_browser" )</h3>
> >> >> > +<h3>$i18n.getString( "data_browser" ) #openHelp( "dataBrowser"
> >> >> > )</h3>
> >> >> >
> >> >> >  <form method="get" action="searchResult.action" onsubmit="return
> >> >> > validate()">
> >> >> >
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm
> >> >> >     2010-02-01 15:30:27 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm
> >> >> >     2010-02-23 19:44:51 +0000
> >> >> > @@ -6,7 +6,7 @@
> >> >> >
> >> >> >  #end
> >> >> >
> >> >> > -<h3>$i18n.getString( "data_integrity_checks_performed" )</h3>
> >> >> > +<h3>$i18n.getString( "data_integrity_checks_performed" )
> #openHelp(
> >> >> > "dataIntegrity" )</h3>
> >> >> >
> >> >> >  #parse( "dhis-web-commons/loader/loader.vm" )
> >> >> >
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm
> >> >> >  2010-02-04 12:29:22 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm
> >> >> >  2010-02-23 19:44:51 +0000
> >> >> > @@ -1,5 +1,5 @@
> >> >> >
> >> >> > -<h3>$i18n.getString( "duplicate_data_elimination" )</h3>
> >> >> > +<h3>$i18n.getString( "duplicate_data_elimination" ) #openHelp(
> >> >> > "duplicateDataElimination" )</h3>
> >> >> >
> >> >> >  <div>
> >> >> >        <label>$i18n.getString( "filter" ):</label><br>
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/lockingForm.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/lockingForm.vm
> >> >> >   2009-12-29 07:14:28 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/lockingForm.vm
> >> >> >   2010-02-23 19:44:51 +0000
> >> >> > @@ -1,4 +1,4 @@
> >> >> > -<h3>$i18n.getString( "data_locking_form" )</h3>
> >> >> > +<h3>$i18n.getString( "data_locking_form" ) #openHelp(
> "dataLocking"
> >> >> > )</h3>
> >> >> >
> >> >> >  <span id="message"></span>
> >> >> >
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm
> >> >> >       2009-12-17 09:22:20 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/maintenanceForm.vm
> >> >> >       2010-02-23 19:44:51 +0000
> >> >> > @@ -1,5 +1,5 @@
> >> >> >
> >> >> > -<h3>$i18n.getString( "maintenance" )</h3>
> >> >> > +<h3>$i18n.getString( "maintenance" ) #openHelp( "maintenance"
> )</h3>
> >> >> >
> >> >> >  <p>
> >> >> >        <input type="checkbox" id="hierarchyHistory">
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/organisationUnitMergeForm.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/organisationUnitMergeForm.vm
> >> >> >     2010-01-25 11:54:22 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/organisationUnitMergeForm.vm
> >> >> >     2010-02-23 19:44:51 +0000
> >> >> > @@ -1,5 +1,5 @@
> >> >> >
> >> >> > -<h3>$i18n.getString( "organisation_unit_merge" )</h3>
> >> >> > +<h3>$i18n.getString( "organisation_unit_merge" ) #openHelp(
> >> >> > "organisationUnitMerge" )</h3>
> >> >> >
> >> >> >  <div id="selectionTree" style="width:500px; height:200px"></div>
> >> >> >
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/resourceTableForm.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/resourceTableForm.vm
> >> >> >     2010-01-15 11:32:18 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/resourceTableForm.vm
> >> >> >     2010-02-23 19:44:51 +0000
> >> >> > @@ -1,5 +1,5 @@
> >> >> >
> >> >> > -<h3>$i18n.getString( "resource_table" )</h3>
> >> >> > +<h3>$i18n.getString( "resource_table" )#openHelp( "resourceTables"
> >> >> > )</h3>
> >> >> >
> >> >> >  <p>
> >> >> >     <input type="checkbox" id="organisationUnit">
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/showcache.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/showcache.vm
> >> >> >     2009-03-03 16:46:36 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/showcache.vm
> >> >> >     2010-02-23 19:44:51 +0000
> >> >> > @@ -9,7 +9,7 @@
> >> >> >        }
> >> >> >  </style>
> >> >> >
> >> >> > -<h3>$i18n.getString( "cache_statistics" )</h3>
> >> >> > +<h3>$i18n.getString( "cache_statistics" ) #openHelp(
> >> >> > "cacheStatistics"
> >> >> > )</h3>
> >> >> >
> >> >> >  <p><input type="button" style="width:150px"
> value="$i18n.getString(
> >> >> > 'clear_cache' )"
> >> >> > onclick="window.location.href='clearCache.action'"></p>
> >> >> >
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/viewStatistics.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/viewStatistics.vm
> >> >> >        2009-10-07 18:53:11 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/viewStatistics.vm
> >> >> >        2010-02-23 19:44:51 +0000
> >> >> > @@ -1,5 +1,5 @@
> >> >> >
> >> >> > -<h3>$i18n.getString( "data_statistics" )</h3>
> >> >> > +<h3>$i18n.getString( "data_statistics" ) #openHelp(
> "dataStatistics"
> >> >> > )</h3>
> >> >> >
> >> >> >  <table>
> >> >> >        <tr>
> >> >> >
> >> >> > === modified file
> >> >> >
> >> >> >
> 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/zeroValueStorageManagement.vm'
> >> >> > ---
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/zeroValueStorageManagement.vm
> >> >> >    2010-01-28 09:50:27 +0000
> >> >> > +++
> >> >> >
> >> >> >
> dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/zeroValueStorageManagement.vm
> >> >> >    2010-02-23 19:44:51 +0000
> >> >> > @@ -1,4 +1,5 @@
> >> >> > -<h3>$i18n.getString( "zero_storage_management" )</h3>
> >> >> > +
> >> >> > +<h3>$i18n.getString( "zero_storage_management" ) #openHelp(
> >> >> > "zeroValueStorage" )</h3>
> >> >> >  <br>
> >> >> >  <form id="ZeroDataValueManagement" method="POST"
> >> >> > action="updateZeroIsSignificantForDataElements.action">
> >> >> >  <table>
> >> >> >
> >> >> >
> >> >> > _______________________________________________
> >> >> > Mailing list: https://launchpad.net/~dhis2-devs
> >> >> > Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> >> >> > Unsubscribe : https://launchpad.net/~dhis2-devs
> >> >> > More help   : https://help.launchpad.net/ListHelp
> >> >> >
> >> >> >
> >> >>
> >> >> _______________________________________________
> >> >> Mailing list: https://launchpad.net/~dhis2-devs
> >> >> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> >> >> Unsubscribe : https://launchpad.net/~dhis2-devs
> >> >> More help   : https://help.launchpad.net/ListHelp
> >> >
> >> >
> >> > _______________________________________________
> >> > Mailing list: https://launchpad.net/~dhis2-devs
> >> > Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> >> > Unsubscribe : https://launchpad.net/~dhis2-devs
> >> > More help   : https://help.launchpad.net/ListHelp
> >> >
> >> >
> >
> >
>

References