source: trunk/grails-app/views/import/parseUploadResult.gsp @ 67

Last change on this file since 67 was 67, checked in by robert@…, 8 years ago

Removed needless debug printlns

File size: 6.9 KB
Line 
1<html>
2        <head>
3                <meta name="layout" content="main" />
4                <title>Processed files| Mass Sequencing | dbNP</title>
5               
6                <script>
7                        var entityId = ${entity.id};
8
9                        function showSampleDataWarning( select, i ) {
10                                if( $( 'option:selected', $(select) ).hasClass( 'containsdata' ) ) {
11                                        $( '#warningSampleContainsData_' + i ).show();
12                                } else {
13                                        $( '#warningSampleContainsData_' + i ).hide();
14                                }
15                        }
16                </script>
17        </head>
18<body>
19        <h1>
20                <g:if test="${entityType == 'assay'}">
21                        Assay ${entity.study?.name} - ${entity.name}
22                </g:if>
23                <g:else>
24                        Run ${entity.name}
25                </g:else>
26        </h1>
27       
28        <h2>Sequence files</h2>
29        <g:form name="saveProcessedFiles" action="saveMatchedFiles" id="${entity.id}" params="${[controller: controller]}">
30        <input type="hidden" name="entityType" value="${entityType}" />
31        <input type="hidden" name="processId" value="${processId}" />
32       
33                <g:if test="${matchedFiles.size() > 0}">
34                        <p>
35                                Match each sequencefile with the qualityfile, classification file and the sample it belongs to. Samples are already chosen for some files based
36                                on the given excelsheet or the filenames.
37                        </p>
38                        <p>
39                                By unchecking a sequence file you can exclude the file from being used.
40                        </p>
41                         
42                        <%
43                                def sortedSamples = entity.assaySamples.findAll { it.assay.study.canWrite( session.user ) }.sort() { a,b -> a.sample.name <=> b.sample.name }
44                        %>
45                        <table class="importProcessedFiles" cellspacing="0">
46                                <thead>
47                                        <tr>
48                                                <th></th>
49                                                <th>Fasta file</th>
50                                                <th># sequences</th>
51                                                <th>Sample</th>
52                                        </tr>
53                                </thead>
54                               
55                                <g:each in="${matchedFiles}" var="file" status="i">
56                                        <tr class="${ i % 2 == 0 ? 'even' : 'odd' }">
57                                                <td>
58                                                        <g:hiddenField name="file.${i}.fasta" value="${file.fasta.filename}" />
59                                                        <g:checkBox name="file.${i}.include" value="${file.checked}" />
60                                                </td>
61                                                <td class="name" valign="center">${file.fasta.originalfilename}</td>
62                                                <td class="sequences">${file.fasta.numSequences}</td>
63                                                <td nowrap>
64                                                        <g:if test="${sortedSamples.size()}">
65                                                                <select name="file.${i}.assaySample" onChange="showSampleDataWarning(this, ${i});">
66                                                                        <g:each in="${sortedSamples}" var="assaySample">
67                                                                                <option
68                                                                                        <g:if test="${file.assaySample?.id == assaySample.id}">
69                                                                                                <g:set var="selectedAssaySample" value="${assaySample}" />
70                                                                                                selected="selected"
71                                                                                        </g:if>
72                                                                                        value="${assaySample.id}" class="<g:if test="${assaySample?.sequenceData?.size() > 0}">containsdata</g:if><g:else>nodata</g:else>">${assaySample.sample.name}</option>
73                                                                        </g:each>
74                                                                </select>
75                                                                <span id="warningSampleContainsData_${i}" class="warningSampleContainsData" <g:if test="${selectedAssaySample?.sequenceData?.size() > 0}">style="display: inline;"</g:if>>
76                                                                        <img src="${fam.icon( name: "exclamation" ) }" title="This sample already contains sequences. Adding sequences doesn't replace the old ones." />
77                                                                </span>
78                                                        </g:if>
79                                                        <g:else>
80                                                                No samples available.
81                                                        </g:else>
82                                                </td>
83                                        </tr>
84                                       
85                                        <tr class="${ i % 2 == 0 ? 'even' : 'odd' }">
86                                                <td></td>
87                                                <td></td>
88                                                <td>Quality file</td>
89                                                <td>
90                                                        <g:if test="${file.feasibleQuals?.size()}">
91                                                                <g:select name="file.${i}.qual" from="${file.feasibleQuals}" optionKey="filename" optionValue="originalfilename" value="${file.qual?.filename}" noSelection="['': '- No qual file -']"/>
92                                                        </g:if>
93                                                        <g:else>
94                                                                <select name="" disabled="disabled"><option value="">No qual file available</option></select>
95                                                        </g:else>
96                                                </td>
97                                        </tr>
98                                        <tr class="${ i % 2 == 0 ? 'even' : 'odd' }">
99                                                <td></td>
100                                                <td></td>
101                                                <td>Classification file</td>
102                                                <td>
103                                                        <g:if test="${file.feasibleClassifications?.size()}">
104                                                                <g:select name="file.${i}.classification" from="${file.feasibleClassifications}" optionKey="filename" optionValue="originalfilename" value="${file.classification?.filename}" noSelection="['': '- No classification -']"/>
105                                                        </g:if>
106                                                        <g:else>
107                                                                <select name="" disabled="disabled"><option value="">No classification available</option></select>
108                                                        </g:else>
109                                                </td>
110                                        </tr>
111                                </g:each>
112                       
113                        </table>
114               
115                </g:if>
116                <g:else>
117                        <p>
118                                ${parsedFiles.success?.size()} files were successfully uploaded, but no FASTA file could be determined. Please
119                                upload at least one FASTA file if sequences should be added.
120                        </p>
121                </g:else>
122               
123                <g:if test="${remainingClassificationFiles}">
124                        <h2>Clasification files</h2>
125                        <p>
126                                The following classification files could not be matched with an uploaded sequence file. Please choose which file
127                                belongs to which sample and data file.
128                        </p>
129                        <p>
130                                <b>N.B.</b> Existing classification data wil be removed for the selected file.
131                        </p>
132                        <table class="importProcessedFiles">
133                                <thead>
134                                        <tr>
135                                                <th></th>
136                                                <th>Classification file</th>
137                                                <th># sequences</th>
138                                                <th>Matching existing file</th>
139                                        </tr>
140                                </thead>
141                               
142                                <g:each in="${remainingClassificationFiles}" var="file" status="i">
143                                        <tr class="${ i % 2 == 0 ? 'even' : 'odd' }">
144                                                <td>
145                                                        <g:hiddenField name="remainingClassification.${i}.filename" value="${file.filename}" />
146                                                        <g:checkBox name="remainingClassification.${i}.include" value="${file.feasibleSequenceData as Boolean}" disabled="${!file.feasibleSequenceData}" />
147                                                </td>
148                                                <td class="name" valign="center">${file.originalfilename}</td>
149                                                <td class="sequences">${file.numLines}</td>
150                                                <td nowrap>
151                                                        <g:if test="${file.feasibleSequenceData}">
152                                                                <select name="remainingClassification.${i}.sequenceData">
153                                                                        <g:each in="${file.feasibleSequenceData}" var="sequenceData">
154                                                                                <option
155                                                                                        <g:if test="${file.sequenceData?.id == sequenceData.id}">
156                                                                                                selected="selected"
157                                                                                        </g:if>
158                                                                                        value="${sequenceData.id}">
159                                                                                        ${sequenceData.sample.sample.name} - ${sequenceData.sequenceFile}</option>
160                                                                        </g:each>
161                                                                </select>
162                                                        </g:if>
163                                                        <g:else>
164                                                                No samples available for this classification file
165                                                        </g:else>
166                                                </td>
167                                        </tr>
168                                </g:each>
169                       
170                        </table>
171                </g:if>
172
173                <g:if test="${remainingClassificationFiles || matchedFiles.size() > 0}">
174                        <input type="submit" value="Continue">
175                </g:if>
176        </g:form>
177
178       
179        <g:if test="${parsedFiles.failure?.size()}">
180                <h2>Failure</h2>
181                <p>
182                        The following files could not be correctly imported. The system can only interpret FASTA, QUAL, GROUPS and TAXONOMY files.<br />
183                        If these files were intended to be included into the system, please check the messages below.
184                 </p>
185                <ul>
186                        <g:each in="${parsedFiles.failure}" var="file">
187                                <li>
188                                        ${file.originalfilename}:
189                                        ${file.message}
190                                </li>
191                        </g:each>
192                </ul>   
193        </g:if>
194       
195        <p>
196                <g:link controller="import" action="returnWithoutSaving" params="[processId: processId, entityType: entityType, id: entity.id]">Return to ${entityType}</g:link>       
197        </p>
198</body>
199</html>
Note: See TracBrowser for help on using the repository browser.