source: main/branches/2.1/src/main/webapps/ibisph-view/xslt/html/query/definition/list/QueryDefinitions.xslt @ 3546

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

java and view webapp - dual mode security working.

File size: 10.9 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 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 selectedDefinitionResult()
153                        {
154                                document.form.action = webappPrefix + "query/definition/Result.html";
155                                document.form.submit();
156                        }
157
158                        function selectedDefinitionBuilder()
159                        {
160                                document.form.action = webappPrefix + "query/definition/Builder.html";
161                                document.form.submit();
162                        }
163
164                        function selectedCriteriaBuilder()
165                        {
166                                document.form.action = webappPrefix + "query/criteria/Builder.html";
167                                document.form.submit();
168                        }
169
170                        function deleteSelectedDefinition()
171                        {
172                                var confirmDelete = confirm("Are you sure you want to delete the selected definition? ");
173                                if(!confirmDelete) return(false);
174                               
175                                document.form.action = webappPrefix + "query/definition/delete";
176                                document.form.submit();
177                        }
178                        // ]]>
179                </script>
180        </xsl:template>
181
182
183
184        <xsl:template name="QueryDefinitions.alphaJumpToLine" ibis:doc="Internal helper that displays the alpha jump to links.">
185                <div class="JumpToLinks">
186                        Index:
187                        <xsl:call-template name="QueryDefinitions.alphaAnchorJumpTo">
188                                <xsl:with-param name="position" select="1"/>
189                        </xsl:call-template>
190                </div>
191        </xsl:template>
192
193
194
195        <xsl:template name="QueryDefinitions.alphaAnchorJumpTo" ibis:doc="Internal helper used by the 'alphaJumpToLine' template  to build the 'a' link character.">
196                <xsl:param name="position"/>
197
198                <xsl:param name="letter" select="substring($QueryDefinitions.alphabet, $position, 1)"/>
199                <a href="#{$letter}" title="Jump to the indicators that begin with {$letter}"><xsl:value-of select="$letter"/></a> 
200
201                <xsl:if test="$position &lt; $QueryDefinitions.alphabetLength">
202                        <xsl:call-template name="QueryDefinitions.alphaAnchorJumpTo">
203                                <xsl:with-param name="position" select="number($position) + 1"/>
204                        </xsl:call-template>
205                </xsl:if>
206        </xsl:template>
207
208
209
210        <xsl:template name="QueryDefinitions.runEditSelectionList"
211                ibis:doc="creates an HTML table which lists all the definitions with
212                        links to run the defintion or edit the query definition.
213                "
214        >
215                <xsl:param name="queryDefinitions"/>
216
217                <style>
218                        td.QueryDefinitionSelection a img
219                        {
220                                height: 30px;
221                        }
222                </style>
223
224                <xsl:if test="0 = count($queryDefinitions/QUERY_DEFINITION)">
225                        <div class="Note">
226                                There are NO saved definitions to choose from.  Either you are
227                                not logged in or you do NOT have any saved definitions.  If you
228                                are logged in then 1) define a query using the "builder" page,
229                                2) run your query, and 3) save your definition via the "save
230                                definition" button located on the query result page.
231                        </div><br/>
232                </xsl:if>
233
234                <xsl:if test="0 != count($queryDefinitions/QUERY_DEFINITION)">
235                        <xsl:if test="count($queryDefinitions/QUERY_DEFINITION) &gt; 20">
236                                <xsl:call-template name="QueryDefinitions.alphaJumpToLine"/>
237                        </xsl:if>
238                        <table cellspacing="0" cellpadding="0" border="1" class="Info ExtraCellPadding"
239                                summary="table of all your query definition selections."
240                                caption="alphabetical listing for all your query definition selections."
241                        >
242                                <tr>
243                                        <th scope="col" width="450" title="definition's title below.">Query Definition</th>
244                                        <th scope="col" width= "75" class="TextAlignCenter" title="Run this definition">Run</th>
245                                        <th scope="col" width= "75" class="TextAlignCenter" title="Edit this definition via the query builder">Edit</th>
246                                </tr>
247
248                        <!-- loop for all definitions -->
249                        <xsl:for-each select="$queryDefinitions/QUERY_DEFINITION">
250                        <xsl:sort select="TITLE"/>
251                                <tr>
252                                        <td title="Title of definition named: {NAME}">
253                                                <a name="{substring(TITLE, 1, 1)}" title="Jump to page link for {TITLE}"/>
254                                                <xsl:value-of select="TITLE"/>
255                                        </td>
256
257                                        <td class="TextAlignCenter QueryDefinitionSelection">
258                                                <a href="{$ibis.urlPrefix}query/definition/Result.html?queryDefinitionName={NAME}"
259                                                        title="click this link to run the {TITLE} query."
260                                                ><img src="{$ibis.urlPrefix}image/run.png" alt="Run" title="Run Query Icon"/></a>
261                                        </td>
262                                        <td class="TextAlignCenter QueryDefinitionSelection">
263                                                <a href="{$ibis.urlPrefix}query/definition/Builder.html?queryDefinitionName={NAME}"
264                                                        title="click this link to edit the {TITLE} query definition."
265                                                ><img src="{$ibis.urlPrefix}image/edit.png" alt="Edit" title="Edit Query Definition Icon"/></a>
266                                        </td>
267                                </tr>
268                        </xsl:for-each>
269       
270                        </table>
271                        <div class="RecordCount">Total Definitions Count: <xsl:value-of select="count($queryDefinitions/QUERY_DEFINITION)"/></div>
272                </xsl:if>
273        </xsl:template>
274
275</xsl:stylesheet>
276<!-- ============================= End of File ============================= -->
277
Note: See TracBrowser for help on using the repository browser.