root/trunk/grails-app/views/studyWizard/pages/_samples.gsp @ 2167

Revision 2167, 7.3 KB (checked in by business@…, 2 years ago)

fix for #520, also hides any template field that contain null values to improve clarity

  • Property svn:keywords set to Rev Author Date
Line 
1<%
2/**
3 * Samples page
4 *
5 * @author  Jeroen Wesbeek
6 * @since   20100212
7 * @package wizard
8 * @see     dbnp.studycapturing.WizardTagLib::previousNext
9 * @see     dbnp.studycapturing.WizardController
10 *
11 * Revision information:
12 * $Rev$
13 * $Author$
14 * $Date$
15 */
16%>
17<%@ page import="org.dbnp.gdt.TemplateFieldType" %>
18<%@ page import="org.dbnp.gdt.RelTime" %>
19<af:page>
20
21        <% /* g:if env="development">
22                <af:ajaxButtonElement description="Development feature (regenerate samples)" name="regenerate" value="regenerate new samples" url="[controller:'wizard',action:'pages']" update="[success:'wizardPage',failure:'wizardError']" afterSuccess="onWizardPage()">
23                        This functionality is only available in development mode for debugging purposes and will not show in test and production environments
24                </af:ajaxButtonElement>
25        </g:if */ %>
26       
27        <span class="info">
28                <span class="title">Samples</span>
29                Below you see all samples generated based on the subject / sampling event relations
30                you have specified in the previous screens.<br/>
31        </span>
32
33        <script type="text/javascript">
34                function switchTemplate( element ) {
35                        <af:ajaxSubmitJs functionName="switchTemplate" this="element" afterSuccess="onPage()"/>
36                }
37        </script>
38
39        <g:if test="${study.samples}">
40                <g:if test="${study.samples.findAll{!it?.template}.size()}">
41                <h1>Samples that still need to have a template assigned</h1>
42                <div class="tableEditor">
43                <div class="header">
44                        <div class="firstColumn"></div>
45                        <div class="column">Sampling Event</div>
46                        <div class="column">Subject</div>
47                        <div class="column">Template</div>
48                        <div class="column" style="width:200px;">Name</div>
49                </div>
50                <g:set var="previousEventIdentifier" value=""/>
51                <g:each var="sample" in="${study.samples}">
52                        <g:if test="${!sample?.template}">
53                                <div class="row">
54                                        <div class="firstColumn">&nbsp;</div>
55                                        <div class="column">
56                                                <g:if test="${previousEventIdentifier != sample.parentEvent?.getIdentifier()}">
57                                                        <g:set var="previousEventIdentifier" value="${sample.parentEvent?.getIdentifier()}"/>
58                                                        ${sample.parentEvent?.template?.name}
59                                                        <div class="helpIcon"></div>
60                                                        <div class="helpContent">
61                                                                <h1>${sample.parentEvent?.template?.name}</h1>
62                                                                <h2>Template Fields:</h2>
63                                                                <g:each var="field" in="${sample.parentEvent?.giveFields()}">
64                                                                        <g:if test="sample.parentEvent.getFieldValue(field.name)">
65                                                                                ${field.name[0].toUpperCase() + field.name.substring(1) + ': ' + sample.parentEvent.getFieldValue(field.name)}<br/>
66                                                                        </g:if>
67                                                                </g:each>
68                                                        </div>
69                                                </g:if>
70                                        </div>
71                                        <div class="column">
72                                                ${sample.parentSubject?.name}
73                                                <div class="helpIcon"></div>
74                                                <div class="helpContent">
75                                                        <h1>${sample.parentSubject?.template?.name}</h1>
76                                                        <h2>Template Fields:</h2>
77                                                        <g:each var="field" in="${sample.parentSubject?.giveFields()}">
78                                                                ${field.name[0].toUpperCase() + field.name.substring(1) + ': ' + sample.parentSubject.getFieldValue(field.name)}<br/>
79                                                        </g:each>
80                                                </div>
81                                        </div>
82                                        <div class="column">
83                                                <af:templateSelect name="template_${sample.getIdentifier()}" entity="${dbnp.studycapturing.Sample}" value="${sample.template}" tableEditorChangeEvent="switchTemplate(element);" addDummy="true" />
84                                        </div>
85                                        <div class="column">${sample.name}</div>
86                                        <af:templateColumns name="sample_${sample.getIdentifier()}" class="column" id="1" entity="${sample}"/>
87                                </div>
88                        </g:if>
89                </g:each>
90                </div>
91                </g:if>
92
93                <g:each var="sampleTemplate" in="${study.giveSampleTemplates()}">
94                        <h1>${sampleTemplate.name}</h1>
95                        <g:set var="showHeader" value="${true}" />
96                        <g:set var="previousEventIdentifier" value=""/>
97                        <div class="tableEditor">
98                        <g:each var="sample" in="${study.giveSamplesForTemplate(sampleTemplate)}">
99                                <g:if test="${showHeader}">
100                                        <g:set var="showHeader" value="${false}" />
101                                        <div class="header">
102                                                <div class="firstColumn"></div>
103                                                <div class="column" style="width:200px;">Sampling Event</div>
104                                                <div class="column">Subject</div>
105                                                <div class="column">Template</div>
106                                                <af:templateColumnHeaders entity="${sample}" class="column" columnWidths="[Name:250]"/>
107                                        </div>
108                                </g:if>
109                                <div class="row">
110                                        <div class="firstColumn"></div>
111                                        <div class="column">
112                                                <g:if test="${previousEventIdentifier != sample.parentEvent?.getIdentifier()}">
113                                                        <g:set var="previousEventIdentifier" value="${sample.parentEvent?.getIdentifier()}"/>
114                                                        ${sample.parentEvent?.template?.name}
115                                                        (${new RelTime(sample.parentEvent?.startTime)})
116                                                        <div class="helpIcon"></div>
117                                                        <div class="helpContent">
118                                                                <h1>${sample.parentEvent?.template?.name}</h1>
119                                                                <g:each var="field" in="${sample.parentEvent?.giveFields()}">
120                                                                        ${field.name[0].toUpperCase() + field.name.substring(1) + ': ' + sample.parentEvent.getFieldValue(field.name)}<br/>
121                                                                </g:each>
122                                                        </div>
123                                                </g:if>
124                                        </div>
125                                        <div class="column">
126                                                ${sample.parentSubject?.name}
127                                                <div class="helpIcon"></div>
128                                                <div class="helpContent">
129                                                        <h1>${sample.parentSubject?.template?.name}</h1>
130                                                        <g:each var="field" in="${sample.parentSubject?.giveFields()}">
131                                                                <% // only show template field values for non-empty values. btw: <g:if> does not affect Groovy code! %>
132                                                                <%if (sample.parentSubject.getFieldValue(field.name)) print field.name[0].toUpperCase() + field.name.substring(1) + ': ' + sample.parentSubject.getFieldValue(field.name) + '<br/>'%>
133                                                        </g:each>
134                                                </div>
135                                        </div>
136                                        <div class="column">
137                                                <af:templateSelect name="template_${sample.getIdentifier()}" entity="${dbnp.studycapturing.Sample}" value="${sample?.template}" addDummy="true" tableEditorChangeEvent="switchTemplate(element);" />
138                        <div class="helpIcon"></div>
139                        <div class="helpContent">
140                            <h2>Time info:</h2>
141                            <g:if test="${sample.parentEvent?.template.getFieldsByType(TemplateFieldType.RELTIME).isEmpty()}">
142                                <b>Not available</b>
143                            </g:if>
144                            <g:else>
145                                <g:each var="field" in="${sample.parentEvent?.template.getFieldsByType(TemplateFieldType.RELTIME)}">
146                                    <b>${field.name}</b><br/>
147                                    ${new RelTime(sample.parentEvent?.getFieldValue(field.name))}<br/>
148                                </g:each>
149                            </g:else>
150                            <h2>String info:</h2>
151                            <g:if test="${sample.parentEvent?.template.getFieldsByType(TemplateFieldType.STRING).isEmpty()}">
152                                <b>Not available</b>
153                            </g:if>
154                            <g:else>
155                                <g:each var="field" in="${sample.parentEvent?.template.getFieldsByType(TemplateFieldType.STRING)}">
156                                    <b>${field.name}</b><br/>
157                                    ${sample.parentEvent?.getFieldValue(field.name)}<br/>
158                                </g:each>
159                            </g:else>
160                        </div>
161                                        </div>
162                                        <af:templateColumns name="sample_${sample.getIdentifier()}" class="column" id="1" entity="${sample}"/>
163                                </div>
164                        </g:each>
165                        </div>
166                </g:each>
167        </g:if>
168</af:page>
Note: See TracBrowser for help on using the browser.