source: trunk/grails-app/views/query/selectsample.gsp @ 206

Last change on this file since 206 was 206, checked in by jahn, 12 years ago

Everything related to search and querying is moved in to

dbnp.studycatpuring.query (for controllers) and
views.query

The reason for moving this is that apparently searchable has been found to overwrite files in the searchable directory.
searchable/ is still kept but not used any longer.

Furthermore, for the time being, the advanced search option is removed because it is not part of the prototype.

File size: 5.8 KB
Line 
1<html>
2
3  <head>
4      <title>Generic Study Capture Framework - Query studies</title>
5      <meta name="layout" content="main" />
6      <g:setProvider library="jquery"/>
7      <script src = ${createLinkTo(dir: 'js/jquery_combobox', file: 'ui.core.js')}></script>
8      <script src = ${createLinkTo(dir: 'js/jquery_combobox', file: 'ui.combobox')}></script
9    </head>
10
11<body>
12
13  <h1>Advanced query - select samples</h1>
14  <br>
15
16
17  <g:form action="selectsample" url >
18
19
20   <br> <%= params %>
21   <br> <%= selectedStudyIds.each{ println it } %>
22   <br> <b> Subgroups </b>:
23   <br> <%= subgroups%>
24   <input type="hidden" name="selectedStudyIds" value="${selectedStudyIds}"   </div>
25
26   <% showSubgroups = (subgroups.size()>0) %>
27    <g:if test="${selectedStudies.size()>0}">
28
29       <table >
30         <tr>
31           <td></td>
32           <td><b> Study </b></td>
33           <td><b> Subject </b></td>
34           <td><b> Sampling Events </b></td>
35           <td><b> Sample Name </b></td>
36           <td><b> Sample Material </b></td>
37           <td><b> Start Time </b></td>
38           <g:if test="${showSubgroups}"> <td><b> Subgroups </b></td> </g:if>
39           <g:else> <td><b> Selection </b></td> </g:else>
40         </tr>
41
42
43         <g:each in="${selectedStudies}" status="j" var="studyIns">
44         <tr>
45         <td> <input type="checkbox" name="${studyIns.title}" id="${studyIns.title}" class="checkbox1_${studyIns.id}"> </td>
46                 <td> ${studyIns.title} </td>
47         </tr>
48
49
50
51         <g:if test="${studyIns.samplingEvents.size ()>0}" >
52         <g:each in ="${studyIns.samplingEvents}" var="event">
53           <% def firstRow = true %>
54            <g:each in ="${event.samples}" var="sample">
55               <tr>
56                 <td></td><td></td>
57
58                 <td>
59                 <g:if test="${firstRow}">
60                     <% firstRow=false %>
61                     <input type="checkbox" name="${studyIns.id}.${event.subject.name}" id="${event.subject.name}" class="checkbox2_${studyIns.id}_${event.subject.id}" >
62                          ${event.subject.name}
63                 </g:if>
64                 </td>
65
66                 <td> ${event.eventDescription.name} </td>
67                 <td> ${sample.name}</td>
68                 <td> ${sample.material}</td>
69
70                 <td> ${event.getPrettyDuration( studyIns.startDate, event.startTime)} </td>
71
72                 <td>
73                 <g:if test="${showSubgroups}">
74                 <select id="demo">
75                     <g:each in ="${subgroups}" var="p">
76                         <option value = "${p}"> "${p}" </option>
77                     </g:each>
78                 </select>
79                 </g:if>
80                 <g:else>
81                     <input type="checkbox" name="${studyIns.id}.${event.subject.id}.${sample.id}" id="${event.subject.name}" class="checkbox3_${studyIns.id}_${event.subject.id}_${sample.id}" >
82                 </g:else>
83                 </td>
84
85               </tr>
86            </g:each>
87           </g:each>
88         </g:if>
89
90
91         <g:else>
92               <tr>
93                   <td></td> <td>Study does not cotain any samples. </td>
94                   <td></td> <td></td> <td></td> <td></td> <td></td>
95                   <g:if test="${showSubgroups}"> <td></td> </g:if>
96               </tr>
97           </g:else>
98           </g:each>
99
100       </table>
101
102
103
104       <g:each in="${selectedStudies}" status="j" var="studyIns">
105            <g:each in ="${studyIns.samplingEvents}" var="event">
106               <g:each in ="${event.samples}" var="sample">
107               <% def cb1 = '\'.checkbox1_' + studyIns.id + '\''  %>
108               <% def cb2 = '\'.checkbox2_' + studyIns.id + '_' + event.subject.id + '\''  %>
109               <% def cb3 = '\'.checkbox3_' + studyIns.id + '_' + event.subject.id + '_' + sample.id + '\''  %>
110                    <script>
111                         $(${cb1}).click(function () {
112                             if($(this).attr("checked")==true) {
113                                $(${cb2}).attr("checked", "checked");
114                                $(${cb3}).attr("checked", "checked");
115                             }
116                             else {
117                                $(${cb2}).attr("checked", false);
118                                $(${cb3}).attr("checked", false);
119                             } });
120                         $(${cb2}).click(function () {
121                             if($(this).attr("checked")==true)
122                                    $(${cb3}).attr("checked", true);
123                             else {
124                                    $(${cb1}).attr("checked", false);
125                                    $(${cb3}).attr("checked", false);
126                             } });
127                         $(${cb3}).click(function () {
128                             if($(this).attr("checked")==false) {
129                                    $(${cb1}).attr("checked", false);
130                                    $(${cb2}).attr("checked", false);
131                             } });
132                    </script>
133               </g:each>
134            </g:each>
135       </g:each>
136
137
138    </g:if>
139
140
141    <br>
142
143    <script>
144       function checkAll(value){
145           var list = document.getElementsByTagName("input");
146           for(i=0; i<list.length; i++)
147           {
148               if(list[i].type=="checkbox")
149               {
150                   list[i].checked=value;
151               }
152           }
153       }
154    </script>
155
156
157    <input type="button" name="CheckAll" value="Check All" onClick="checkAll(true)">
158    <input type="button" name="UncheckAll" value="Uncheck All" onClick="checkAll(false)">
159
160     Infer subgroups:
161    <INPUT TYPE=submit name=submit Value="Subject Groups">
162    <INPUT TYPE=submit name=submit Value="Event Groups">
163    <INPUT TYPE=submit name=submit Value="Starting Time Groups">
164    <br>
165
166
167
168
169    <% if (selectedStudies.size()==0) { %>
170    <br> Please select studies to query samples.
171    <% } %>
172
173    <br>
174    <INPUT TYPE=submit name=submit Value="<< Back to study selection">
175    <INPUT TYPE=submit name=submit Value=">> Execute and continue with biomarker selection">
176
177    </g:form>
178
179
180
181  </body>
182</html>
Note: See TracBrowser for help on using the repository browser.