upload fieldbook from manage phenotyping
[sgn.git] / mason / breeders_toolbox / download.mas
blobe94c355a15777e9726950b4258ec59e24209e4ad
1 <%args>
3 </%args>
5 <& /page/page_title.mas, title=>"Download Using Lists" &>
7 <div class="container-fluid">
9 <div class="well">
10 Choose a list for each parameter and click "Download".
11 </div>
13 <div class="well well-sm">
14 <form id="download_form" action="/breeders/download_action" method="POST" >
15 <table class="table" cellpadding="10" border="0" >
16   <thead>
17   <tr><td colspan="4"><h4>Download Phenotype</h4><p>Select parameter:</p></tr>
18   <tr>
19     <th>
20       Accessions
21     </th>
22     <th>
23       Trials
24     </th>
25     <th>
26       Traits
27     </th>
28     <th>
29       Format
30     </th>
31     <th>
32       Timestamps
33     </th>
34     <th>
35       Action
36     </th>
37   </tr>
38   </thead>
39   <tbody>
40   <tr>
41     <td>
42       <div id="accession_list">
43       </div>
44     </td>
45     <td>
46       <div id="trial_list">
47       </div>
48     </td>
49     <td>
50       <div id="trait_list">
51       </div>
52    </td>
53    <td>
54  <div class="checkbox">
55   <label><input type="checkbox" id="format" name="format" value=".xls">.xls (default)</label>
56 </div>
57 <div class="checkbox">
58   <label><input type="checkbox" id="format" name="format" value=".csv">.csv</label>
59 </div>
60 <div class="checkbox">
61   <label><input type="checkbox" id="format" name="format" value="html">html</label>
62 </div>
63     </td>
64     <td>
65     <select class="form-control" id="timestamp" name="timestamp">
66         <option value="0">No</option>
67         <option value="1">Yes</option>
68     </select>
69     </td>
70     <td>
71       <input class="btn btn-primary" type="button" id="phenotype" value="Download" />
72       <input type="hidden" id="download_token_value" name="download_token_value"/>
73     </td>
74   </tr>
75   </tbody>
76   </table>
77 </form>
78 </div>
80 <script>
81 $(document).ready(function() {
83     var lo = new CXGN.List();
85     $('#accession_list').html(lo.listSelect('accession_list', [ 'accessions' ], 'select'));
86     $('#trial_list').html(lo.listSelect('trial_list', [ 'trials' ], 'select' ));
87     $('#trait_list').html(lo.listSelect('trait_list', [ 'traits' ], 'select'  ));
89     $('#phenotype').click(function() {
91     disable_ui();
93       var accession_list_id = $('#accession_list_list_select').val();
94       var trial_list_id = $('#trial_list_list_select').val();
95       var trait_list_id = $('#trait_list_list_select').val();
97       var accession_validation = 1;
98       if (accession_list_id) { accession_validation = lo.validate(accession_list_id, 'accessions', true); }
100       var trial_validation = 1;
101       if (trial_list_id) { trial_validation = lo.validate(trial_list_id, 'trials', true); }
103       var trait_validation = 1;
104       if (trait_list_id) { trait_validation = lo.validate(trait_list_id, 'traits', true); }
106       if (!accession_list_id || !trial_list_id || !trait_list_id) {
107          enable_ui();
108          alert("You need to select an accession, a trial, and a trait list!");
109          return;
110       }
112       var problem_lists = new Array();
114       if (accession_validation != 1) {
115         problem_lists.push('accessions');
116       }
117       if (trial_validation != 1) {
118         problem_lists.push('trials');
119       }
120       if (trait_validation != 1) {
121         problem_lists.push('trials');
122       }
124       if (problem_lists.length > 0) {
125          enable_ui();
126          alert("The following lists did not pass validation: "+problem_lists.join(", ")+". Please correct the list(s) and try again");
127          return;
128       }
130       var token = new Date().getTime(); //use the current timestamp as the token value
131       $('#download_token_value').val(token);
133       $('#download_form').submit();
135       var fileDownloadCheckTimer;
136       fileDownloadCheckTimer = window.setInterval(function () { //checks for response cookie to keep working modal enabled until file is ready for download
137                              var cookieValue = $.cookie('fileDownloadToken');
138                              if (cookieValue == token) {
139                                 window.clearInterval(fileDownloadCheckTimer);
140                                 jQuery.removeCookie('fileDownloadToken'); //clears this cookie value
141                                 enable_ui();
142                                 }
143                         }, 1000);
144         });
146         function disable_ui() {
147         $('#working_modal').modal("show");
148         }
150         function enable_ui() {
151         $('#working_modal').modal("hide");
152         }
155 </script>
158 <!-- start of code for pedigree download -->
160 <div class="well well-sm">
161 <form id="download_pedigree" action="/breeders/download_pedigree_action" method="POST">
162 <table class="table"  cellpadding="10">
163   <thead>
164   <tr><td colspan="2"><h4>Download Pedigree </h4><p>Select parameter:</p></tr>
165   <tr>
166     <th>
167       Accessions
168     </th>
169     <th>
170       Action
171     </th>
172   </tr>
173   </thead>
174   <tbody>
175   <tr>
176     <td>
177       <div id="accession_list4">
178       </div>      
179     </td>
180     <td>
181       <input class="btn btn-primary" type="button" id="pedigree" value="Download" />
182     </td>
183   </tr>
184   </tbody>
185   </table>
186 </form>
187 </div>
190 <script>
191   $(document).ready(function() { 
193       var lo = new CXGN.List();
195       $('#accession_list4').html(lo.listSelect('pedigree_accession_list', [ 'accessions' ], 'select'));
197       $('#pedigree').click(function() {
199       disable_ui();
201       var accession_list_id = $('#pedigree_accession_list_list_select').val();
202       var trial_list_id = $('#genotype_trial_list_list_select').val();
205       var accession_validation = 1;
206       if (accession_list_id) { 
207         accession_validation = lo.validate(accession_list_id, 'accessions', true); 
209       }
211    if (! accession_list_id) { 
212         alert("You need to select an accession!");
213         return; 
214       }
216       var problem_lists = new Array();
218       if (accession_validation != 1) { 
219         problem_lists.push('accessions');
220       }
222    console.log(problem_lists);
224       if (problem_lists.length > 0) { 
225         alert("The following lists did not pass validation: "+problem_lists.join(", ")+". Please correct the list(s) and try again");
226         return;
227       }
228     
229      jQuery('#download_pedigree').submit();
231       enable_ui()
233     });
235 function disable_ui() {
236         $('#working_modal').modal("show");
237         }
239         function enable_ui() {
240         $('#working_modal').modal("hide");
241         }
243   });
244     
245 </script>
247 <!-- end of code for pedigree download -->
250 <div class="well well-sm">
251 <form id="download_gbs" action="/breeders/download_gbs_action" method="POST">
252 <table class="table"  cellpadding="10">
253   <thead>
254   <tr><td colspan="2"><h4>Download GBS Genotype </h4><p>Select parameter:</p></tr>
255   <tr>
256     <th>
257       Accessions
258     </th>
259     <th>
260       Genotyping Protocol
261     </th>
262     <th>
263       Action
264     </th>
265   </tr>
266   </thead>
267   <tbody>
268   <tr>
269     <td>
270       <div id="accession_list2">
271       </div>
272     </td>
273     <td>
274       <div id="protocol_list">
275       </div>
276     </td>
277     <td>
278       <input class="btn btn-primary" type="button" id="genotype" value="Download" />
279     </td>
280   </tr>
281   </tbody>
282   </table>
283 </form>
284 </div>
286 <script>
287   $(document).ready(function() {
289       var lo = new CXGN.List();
291       $('#accession_list2').html(lo.listSelect('genotype_accession_list', [ 'accessions' ], 'select'));
292       get_select_box("genotyping_protocols", "protocol_list");
294       $('#genotype').click(function() {
296       disable_ui()
298       var accession_list_id = $('#genotype_accession_list_list_select').val();
299       var protocol_list_id = $('#protocol_list').val();
301       var accession_validation = 1;
302       if (accession_list_id) {
303         accession_validation = lo.validate(accession_list_id, 'accessions', true);
304       }
306       if (!( accession_list_id || protocol_list_id) ) {
307         alert("You need to select a list of accessions and a protocol !");
308         return;
309       }
311       var problem_lists = new Array();
313       if (accession_validation != 1) {
314         problem_lists.push('accessions');
315       }
318       console.log(problem_lists);
320       if (problem_lists.length > 0) {
321         alert("The following lists did not pass validation: "+problem_lists.join(", ")+". Please correct the list(s) and try again");
322         return;
323       }
325       jQuery('#download_gbs').submit();
327       enable_ui()
330     });
332         function disable_ui() {
333         $('#working_modal').modal("show");
334         }
336         function enable_ui() {
337         $('#working_modal').modal("hide");
338         }
340   });
341 </script>
343 <div class="well well-sm">
344 <form id="gbs_qc" action="/breeders/gbs_qc_action" method="POST">
345 <table class="table" cellpadding="10">
346   <thead>
347   <tr><td colspan="3"><h4>GBS Genotype QC</h4><p>Select parameter:</p></tr>
348   <tr>
349     <th>
350       Trials
351     </th>
352     <th>
353       Accessions
354     </th>
355     <th>
356       Action
357     </th>
358   </tr>
359   </thead>
360   <tbody>
361   <tr>
362     <td>
363       <div id="trial_list3">
364       </div>
365     </td>
366     <td>
367       <div id="accession_list3">
368       </div>
369     </td>
370     <td>
371       <input class="btn btn-primary" type="button" id="genotype_qc" value="Quality Control" />
372     </td>
373   </tr>
374   </tbody>
375   </table>
376 </form>
377 </div>
379 </div>
381 <script>
382   $(document).ready(function() {
384       var lo = new CXGN.List();
386       $('#accession_list3').html(lo.listSelect('genotype_qc_accession_list', [ 'accessions' ], 'select'));
387       $('#trial_list3').html(lo.listSelect('genotype_trial_list', [ 'trials' ], 'select' ));
389       $('#genotype_qc').click(function() {
391         $('#working').dialog( {
392                 height: 100,
393                 width:  300,
394                 modal: true,
395                 autoOpen: false,
396                 closeOnEscape: true,
397                 draggable: true,
398                 resizable: true,
399                 open: function() { $(this).closest('.ui-dialog').find('.ui-dialog-titlebar-close').hide(); },
400                 title: 'Downloading genotype...'
401                 });
403       disable_ui()
405       var accession_list_id = $('#genotype_accession_list_list_select').val();
406       var trial_list_id = $('#genotype_trial_list_list_select').val();
408       var accession_validation = lo.validate(accession_list_id, 'accessions', true);
409       var trial_validation = lo.validate(trial_list_id, 'trials', true);
411       if (! (accession_list_id || trial_list_id) ) {
412         alert("You need to select an accession or a trail !");
413         return;
414       }
416       var problem_lists = new Array();
418       if (accession_validation != 1) {
419         problem_lists.push('accessions');
420       }
422       if (trial_validation != 1) {
423         problem_lists.push('trials');
424       }
427       //alert("problem_lists is " + problem_lists);
429       console.log(problem_lists);
431       if (problem_lists.length > 0) {
432         alert("The following lists did not pass validation: "+problem_lists.join(", ")+". Please correct the list(s) and try again");
433         return;
434       }
436       jQuery('#gbs_qc').submit();
438       enable_ui()
443     });
445         function disable_ui() {
446         $('#working_modal').modal("show");
447         }
449         function enable_ui() {
450         $('#working_modal').modal("hide");
451         }
453   });
454 </script>