source: trunk/grails-app/views/searchable/selectsample.gsp @ 201

Last change on this file since 201 was 201, checked in by jahn, 10 years ago

Added some features: subgrouping by event groups and times, select all and select none, autmatic checking of all samples belonging to a subject and of all samples and subjects belonging to a study. Beatufied some outputs.

Ideally, there should be some extra functionality for automatically putting samples into the right subgroup and for selecting the correct subgroup upon checking its commading subject or study.

File size: 5.6 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                         $(${cb2}).click(function () {
117                             if($(this).attr("checked")==true)
118                                    $(${cb3}).attr("checked", true);
119                             else
120                                    $(${cb1}).attr("checked", false);
121                             });
122                         $(${cb3}).click(function () {
123                             if($(this).attr("checked")==false) {
124                                    $(${cb1}).attr("checked", false);
125                                    $(${cb2}).attr("checked", false);
126                             } });
127                    </script>
128               </g:each>
129            </g:each>
130       </g:each>
131
132
133    </g:if>
134
135
136    <br>
137
138    <script>
139       function checkAll(value){
140           var list = document.getElementsByTagName("input");
141           for(i=0; i<list.length; i++)
142           {
143               if(list[i].type=="checkbox")
144               {
145                   list[i].checked=value;
146               }
147           }
148       }
149    </script>
150
151
152    Select samples:
153    <input type="button" name="CheckAll" value="All" onClick="checkAll(true)">
154    <input type="button" name="UncheckAll" value="None" onClick="checkAll(false)">
155
156     Infer subgroups:
157    <INPUT TYPE=submit name=submit Value="Subject Groups">
158    <INPUT TYPE=submit name=submit Value="Event Groups">
159    <INPUT TYPE=submit name=submit Value="Starting Time Groups">
160    <br>
161
162
163
164
165    <% if (selectedStudies.size()==0) { %>
166    <br> Please select studies to query samples.
167    <% } %>
168
169    <br>
170    <INPUT TYPE=submit name=submit Value="<< Back to study selection">
171    <INPUT TYPE=submit name=submit Value=">> Execute and continue with biomarker selection">
172
173    </g:form>
174
175
176
177  </body>
178</html>
Note: See TracBrowser for help on using the repository browser.