source: main/branches/2.1/src/main/webapps/ibisph-view/xslt/html/user/queryselections/QueryDefinitions.xslt @ 3663

Last change on this file since 3663 was 3663, checked in by Garth Braithwaite, 10 years ago

java and view webapp - commit that has most of model map. committing before ripping out some code and cleaning up more model maps.

File size: 10.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2
3<xsl:stylesheet version="2.0" 
4        xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" 
5        xmlns:ibis="http://www.ibisph.org"
6
7        exclude-result-prefixes="ibis"
8>
9
10        <ibis:doc>
11                <name>html/query/definition/list/QueryDefinitions</name>
12                <summary>Core code that produces the Query Definition List</summary>
13                <description>
14                        XSLT used to create the Alphabetical Query Definition List HTML.
15                </description>
16
17                <author>Garth Braithwaite</author>
18                <company>Software Technology Group/CDC/Utah Department of Health</company>
19        </ibis:doc>
20
21
22        <xsl:param name="QueryDefinitions.alphabet" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
23        <xsl:param name="QueryDefinitions.alphabetLength" select="string-length($QueryDefinitions.alphabet)"/>
24
25
26        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEMPLATES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
27        <xsl:template name="QueryDefinitions.overview"
28                ibis:doc="creates an HTML table which lists all the definitions with
29                        links to apply the defintion to the current query module or a link
30                        to run it as a saved query.
31                "
32        >
33        </xsl:template>
34
35
36
37        <xsl:template name="QueryDefinitions.usage" ibis:doc="query definitions table usage HTML.">
38                To use, from the list select the radio button that is associated with
39                the desired saved definition.  The press the button located at the
40                bottom of the page. 
41                <ul>
42                        <li>
43                                [Run] loads the saved definition's query module, applies the
44                                saved criteria, user display options, and any hidden parameters
45                                then runs the query and returns the result page.  The current
46                                query module is replaced so any selections that were made on
47                                the builder page will be lost as the module and the saved
48                                selections will be applied.
49                        </li>
50                        <li>
51                                [Edit] does a similar action as run but does NOT load any hidden
52                                parameters and returns the user to the "buidler" page for further
53                                query refinements.
54                        </li>
55                        <li>
56                                [Criteria] does a similar action edit does but does NOT clear
57                                the current query module being worked with.  This option merges
58                                any associated criteria into the current query module's selections
59                                and returns to the builder page for further query refinement or
60                                to run the query etc.  NOTE: the dimensions MUST match - see note
61                                below.
62                        </li>
63                </ul><br/>
64        </xsl:template>
65
66
67
68        <xsl:template name="QueryDefinitions.selectionList"
69                ibis:doc="creates an HTML table which lists all the definitions with
70                        links to apply the defintion to the current query module or a link
71                        to run it as a saved query.
72                "
73        >
74                <xsl:param name="queryDefinitions"/>
75                <xsl:param name="showApplyCriteriaSelection"/>
76               
77                <xsl:if test="0 = count($queryDefinitions/QUERY_DEFINITION)">
78                        <div class="Note">
79                                There are NO saved definitions to choose from.  Either you are
80                                not logged in or you do NOT have any saved definitions.  If you
81                                are logged in then 1) define a query using the "builder" page,
82                                2) run your query, and 3) save your definition via the "save
83                                definition" button located on the query result page.
84                        </div><br/>
85                </xsl:if>
86
87                <xsl:if test="0 != count($queryDefinitions/QUERY_DEFINITION)">
88                        <xsl:if test="count($queryDefinitions/QUERY_DEFINITION) &gt; 20">
89                                <xsl:call-template name="QueryDefinitions.alphaJumpToLine"/>
90                        </xsl:if>
91                        <form name="form" id="form" method="post"><table cellspacing="0" cellpadding="0" border="1" class="Info ExtraCellPadding"
92                                summary="Simple layout table that contains the alphabetical listing for all indicator profile selections."
93                                caption="alphabetical listing for all indicator profile selections."
94                        >
95                                <tr>
96                                        <th scope="col" width= "50" class="TextAlignCenter" title="Selected definition.">Selected Definition</th>
97                                        <th scope="col" width="450" title="definition's title below.">Query Definition</th>
98                                        <th scope="col" width="100" class="TextAlignCenter" title="This is the date the defintion was last updated.">Date</th>
99                                </tr>
100
101                        <!-- loop for all definitions -->
102                        <xsl:for-each select="$queryDefinitions/QUERY_DEFINITION">
103                        <xsl:sort select="TITLE"/>
104                                <tr>
105                                        <td class="TextAlignCenter">
106                                                <a name="{substring(TITLE, 1, 1)}" title="Jump to page link for {TITLE}"/>
107                                                <input name="queryDefinitionName" id="queryDefinition.{NAME}" type="Radio" value="{NAME}" title="selected query definition: {NAME}">
108                                                        <xsl:if test="position() = 1">
109                                                                <xsl:attribute name="checked">checked</xsl:attribute>
110                                                        </xsl:if>
111                                                </input>
112                                        </td>
113                                        <td title="Title of definition named: {NAME}">
114                                                <xsl:value-of select="TITLE"/>
115                                        </td>
116                                        <td class="TextAlignCenter" title="Definition saved Date.">
117                                                <xsl:value-of select="MODIFIED_DATE"/>
118                                        </td>
119                                </tr>
120                        </xsl:for-each>
121       
122                        </table></form>
123                        <div class="RecordCount">Total Saved Definitions Count: <xsl:value-of select="count($queryDefinitions/QUERY_DEFINITION)"/></div>
124
125                        <xsl:call-template name="QueryDefinitions.selectionListButtons">
126                                <xsl:with-param name="showApplyCriteriaSelection" select="$showApplyCriteriaSelection"/>
127                        </xsl:call-template>
128                </xsl:if>
129        </xsl:template>
130
131
132
133        <xsl:template name="QueryDefinitions.selectionListButtons"
134                ibis:doc="user selections that invoke the page."
135        >
136                <xsl:param name="showApplyCriteriaSelection" select="'false'"/>
137
138                <div id="buttons" class="ExpandableSectionContainer ExpandableSectionContainerShow SubmitControl">
139                        <input type="button" accesskey="R" value=" Run the Definition "    onclick="selectedDefinitionResult()"  title="run the saved query defintion"/> &#160;
140                        <input type="button" accesskey="E" value=" Edit the Definition "   onclick="selectedDefinitionBuilder()" title="apply criteria to current module and return to builder page"/> &#160;
141                <xsl:if test="$showApplyCriteriaSelection='true'">
142                        <input type="button" accesskey="A" value=" Add Criteria and Edit " onclick="selectedCriteriaBuilder()"   title="apply criteria to current module and return to builder page"/>  &#160;
143                </xsl:if>
144                        <input type="button" accesskey="D" value=" Delete Definition "     onclick="deleteSelectedDefinition()"  title="delete the selected defintion and return to this list page"/>  &#160;
145                </div><br/>
146
147                <script type="text/javascript">
148                        var webappPrefix = '<xsl:value-of select="$ibis.urlPrefix"/>';
149
150                        // <![CDATA[
151
152                        function runSelectedDefinition()
153                        {
154                                location.href = webappPrefix + "query/definition/result/" + document.form.queryDefinitionName;
155                        }
156
157                        function editSelectedDefinition()
158                        {
159                                location.href = webappPrefix + "query/definition/builder/" + document.form.queryDefinitionName;
160                        }
161
162                        function applySelectedCriteria()
163                        {
164                                location.href = webappPrefix + "query/criteria/builder/" + document.form.queryDefinitionName;
165                        }
166
167                        function deleteSelectedDefinition()
168                        {
169                                var confirmDelete = confirm("Are you sure you want to delete the " + document.form.queryDefinitionName + " definition?");
170                                if(!confirmDelete) return(false);
171                               
172                                location.href = webappPrefix + "delete/query/definition/" + document.form.queryDefinitionName;
173                        }
174                        // ]]>
175                </script>
176        </xsl:template>
177
178
179
180        <xsl:template name="QueryDefinitions.alphaJumpToLine" ibis:doc="Internal helper that displays the alpha jump to links.">
181                <div class="JumpToLinks">
182                        Index:
183                        <xsl:call-template name="QueryDefinitions.alphaAnchorJumpTo">
184                                <xsl:with-param name="position" select="1"/>
185                        </xsl:call-template>
186                </div>
187        </xsl:template>
188
189
190
191        <xsl:template name="QueryDefinitions.alphaAnchorJumpTo" ibis:doc="Internal helper used by the 'alphaJumpToLine' template  to build the 'a' link character.">
192                <xsl:param name="position"/>
193
194                <xsl:param name="letter" select="substring($QueryDefinitions.alphabet, $position, 1)"/>
195                <a href="#{$letter}" title="Jump to the indicators that begin with {$letter}"><xsl:value-of select="$letter"/></a> 
196
197                <xsl:if test="$position &lt; $QueryDefinitions.alphabetLength">
198                        <xsl:call-template name="QueryDefinitions.alphaAnchorJumpTo">
199                                <xsl:with-param name="position" select="number($position) + 1"/>
200                        </xsl:call-template>
201                </xsl:if>
202        </xsl:template>
203
204
205
206        <xsl:template name="QueryDefinitions.runEditSelectionList"
207                ibis:doc="creates an HTML table which lists all the definitions with
208                        links to run the defintion or edit the query definition.
209                "
210        >
211                <xsl:param name="queryDefinitions"/>
212
213                <style>
214                        td.QueryDefinitionSelection a img
215                        {
216                                height: 30px;
217                        }
218                </style>
219
220                <xsl:if test="0 = count($queryDefinitions/QUERY_DEFINITION)">
221                        <div class="Note">
222                                There are NO saved definitions to choose from.  Either you are
223                                not logged in or you do NOT have any saved definitions.  If you
224                                are logged in then 1) define a query using the "builder" page,
225                                2) run your query, and 3) save your definition via the "save
226                                definition" button located on the query result page.
227                        </div><br/>
228                </xsl:if>
229
230                <xsl:if test="0 != count($queryDefinitions/QUERY_DEFINITION)">
231                        <xsl:if test="count($queryDefinitions/QUERY_DEFINITION) &gt; 20">
232                                <xsl:call-template name="QueryDefinitions.alphaJumpToLine"/>
233                        </xsl:if>
234                        <table cellspacing="0" cellpadding="0" border="1" class="Info ExtraCellPadding"
235                                summary="table of all your query definition selections."
236                                caption="alphabetical listing for all your query definition selections."
237                        >
238                                <tr>
239                                        <th scope="col" width="450" title="definition's title below.">Query Definition</th>
240                                        <th scope="col" width= "75" class="TextAlignCenter" title="Run this definition">Run</th>
241                                        <th scope="col" width= "75" class="TextAlignCenter" title="Edit this definition via the query builder">Edit</th>
242                                </tr>
243
244                        <!-- loop for all definitions -->
245                        <xsl:for-each select="$queryDefinitions/QUERY_DEFINITION">
246                        <xsl:sort select="TITLE"/>
247                                <tr>
248                                        <td title="Title of definition named: {NAME}">
249                                                <a name="{substring(TITLE, 1, 1)}" title="Jump to page link for {TITLE}"/>
250                                                <xsl:value-of select="TITLE"/>
251                                        </td>
252
253                                        <td class="TextAlignCenter QueryDefinitionSelection">
254                                                <a href="{$ibis.urlPrefix}run/query/definition/{NAME}"
255                                                        title="click this link to run the {TITLE} query."
256                                                ><img src="{$ibis.urlPrefix}image/run.png" alt="Run" title="Run Query Icon"/></a>
257                                        </td>
258                                        <td class="TextAlignCenter QueryDefinitionSelection">
259                                                <a href="{$ibis.urlPrefix}edit/query/definition/{NAME}"
260                                                        title="click this link to edit the {TITLE} query definition."
261                                                ><img src="{$ibis.urlPrefix}image/edit.png" alt="Edit" title="Edit Query Definition Icon"/></a>
262                                        </td>
263                                </tr>
264                        </xsl:for-each>
265       
266                        </table>
267                        <div class="RecordCount">Total Saved Definitions Count: <xsl:value-of select="count($queryDefinitions/QUERY_DEFINITION)"/></div>
268                </xsl:if>
269        </xsl:template>
270
271</xsl:stylesheet>
272<!-- ============================= End of File ============================= -->
273
Note: See TracBrowser for help on using the repository browser.