add pdf download test
[sgn.git] / mason / breeders_toolbox / download.mas
blob42fd09ec620f01c35cf126ea8d10784a7ee7e57f
1 <%args>
3 </%args>
5 <& /util/import_javascript.mas, classes => [ 'jqueryui', 'jquery.cookie', 'CXGN.BreederSearch', 'CXGN.List', 'CXGN.BreedersToolbox.HTMLSelect', 'spin_min', 'ladda_min' ] &>
7 <& /page/page_title.mas, title=>"Download Using Lists" &>
9 <div class="container-fluid">
11 <div class="well">
12 Choose a list for each parameter and click "Download".
13 </div>
15 <div class="well well-sm">
16 <form id="download_form" action="/breeders/download_action" method="POST" >
17 <table class="table" cellpadding="10" border="0" >
18   <thead>
19   <tr><td colspan="4"><h4>Download Phenotype</h4><p>Select parameter:</p></tr>
20   <tr>
21     <th>
22       Accessions
23     </th>
24     <th>
25       Trials
26     </th>
27     <th>
28       Traits
29     </th>
30     <th>
31       Format
32     </th>
33     <th>
34       Timestamps
35     </th>
36     <th>
37       Data Level
38     </th>
39     <th>
40       Action
41     </th>
42   </tr>
43   </thead>
44   <tbody>
45   <tr>
46     <td>
47       <div id="accession_list">
48       </div>
49     </td>
50     <td>
51       <div id="trial_list">
52       </div>
53     </td>
54     <td>
55       <div id="trait_list">
56       </div>
57    </td>
58    <td>
59 <div class="radio">
60  <label><input type="radio" id="format" name="format" value=".csv" checked>.csv</label>
61 </div>
62 <div class="radio">
63   <label><input type="radio" id="format" name="format" value=".xls">.xls</label>
64 </div>
65 <div class="radio">
66   <label><input type="radio" id="format" name="format" value="html">html</label>
67 </div>
68     </td>
69     <td>
70     <select class="form-control" id="timestamp" name="timestamp">
71         <option value="0">No</option>
72         <option value="1">Yes</option>
73     </select>
74     </td>
75     <td>
76     <select class="form-control" id="phenotype_datalevel" name="phenotype_datalevel">
77         <option value="all">All</option>
78         <option value="plot">Plot</option>
79         <option value="plant">Plant</option>
80     </select>
81     </td>
82     <td>
83       <button class="btn btn-primary" type="button" id="phenotype">Download</button>
84       <input type="hidden" id="phenotype_download_token" name="phenotype_download_token"/>
85     </td>
86   </tr>
87   </tbody>
88   </table>
89 </form>
90 </div>
92 <script>
93 $(document).ready(function() {
95     var lo = new CXGN.List();
97     $('#accession_list').html(lo.listSelect('accession_list', [ 'accessions' ], 'select'));
98     $('#trial_list').html(lo.listSelect('trial_list', [ 'trials' ], 'select' ));
99     $('#trait_list').html(lo.listSelect('trait_list', [ 'traits' ], 'select'  ));
101     $('#phenotype').click(function() {
103       var accession_list_id = $('#accession_list_list_select').val();
104       var trial_list_id = $('#trial_list_list_select').val();
105       var trait_list_id = $('#trait_list_list_select').val();
107       var accession_validation = 1;
108       if (accession_list_id) { accession_validation = lo.validate(accession_list_id, 'accessions', true); }
110       var trial_validation = 1;
111       if (trial_list_id) { trial_validation = lo.validate(trial_list_id, 'trials', true); }
113       var trait_validation = 1;
114       if (trait_list_id) { trait_validation = lo.validate(trait_list_id, 'traits', true); }
116       var problem_lists = new Array();
118       if (accession_validation != 1) {
119         problem_lists.push('accessions');
120       }
121       if (trial_validation != 1) {
122         problem_lists.push('trials');
123       }
124       if (trait_validation != 1) {
125         problem_lists.push('trials');
126       }
128       if (problem_lists.length > 0) {
129          alert("The following lists did not pass validation: "+problem_lists.join(", ")+". Please correct the list(s) and try again");
130          return;
131       }
133       var ladda = Ladda.create(this);
134       ladda.start();
135       var token = new Date().getTime(); //use the current timestamp as the token name and value
136       manage_dl_with_cookie(token, ladda);
137       jQuery('#phenotype_download_token').val(token);
138       jQuery('#download_form').submit();
140         });
144 </script>
147 <!-- start of code for pedigree download -->
149 <div class="well well-sm">
150 <form id="download_pedigree" action="/breeders/download_pedigree_action" method="POST">
151 <table class="table"  cellpadding="10">
152   <thead>
153   <tr><td colspan="2"><h4>Download Pedigree </h4><p>Select parameter:</p></tr>
154   <tr>
155     <th>
156       Accessions
157     </th>
158     <th>
159       Format
160     </th>
161     <th>
162       Action
163     </th>
164   </tr>
165   </thead>
166   <tbody>
167   <tr>
168     <td>
169       <div id="accession_list4">
170       </div>
171     </td>
172     <td>
173  <div class="radio">
174   <label><input type="radio" id="ped_format" name="ped_format" value="parents_only" checked>Direct parents only</label>
175  </div>
176  <div class="radio">
177    <label><input type="radio" id="ped_format" name="ped_format" value="full">Full pedigrees</label>
178  </div>
179      </td>
180     <td>
181       <button class="btn btn-primary" type="button" id="pedigree">Download</button>
182       <input type="hidden" id="pedigree_download_token" name="pedigree_download_token"/>
183     </td>
184   </tr>
185   </tbody>
186   </table>
187 </form>
188 </div>
191 <script>
192 $(document).ready(function() {
194     var lo = new CXGN.List();
196     $('#accession_list4').html(lo.listSelect('pedigree_accession_list', [ 'accessions' ], 'select'));
198     $('#pedigree').click(function() {
200         var accession_list_id = $('#pedigree_accession_list_list_select').val();
201         if (!accession_list_id) {
202             alert("You need to select an accession list!");
203             return;
204         }
206         var accession_validation = 1;
207         if (accession_list_id) {
208             accession_validation = lo.validate(accession_list_id, 'accessions', true);
210         }
212         if (accession_validation != 1) {
213             alert("The accession list did not pass validation. Please correct the list and try again");
214             return;
215         }
217         var ladda = Ladda.create(this);
218         ladda.start();
219         var token = new Date().getTime(); //use the current timestamp as the token name and value
220         manage_dl_with_cookie(token, ladda);
221         jQuery('#pedigree_download_token').val(token);
222         jQuery('#download_pedigree').submit();
224     });
227 </script>
229 <!-- end of code for pedigree download -->
232 <div class="well well-sm">
233 <form id="download_gbs" action="/breeders/download_gbs_action" method="POST">
234 <table class="table"  cellpadding="10">
235   <thead>
236   <tr><td colspan="2"><h4>Download GBS Genotype </h4><p>Select parameter:</p></tr>
237   <tr>
238     <th>
239       Accessions
240     </th>
241     <th>
242       Genotyping Protocol
243     </th>
244     <th>
245       Action
246     </th>
247   </tr>
248   </thead>
249   <tbody>
250   <tr>
251     <td>
252       <div id="accession_list2">
253       </div>
254     </td>
255     <td>
256       <div id="protocol_list">
257       </div>
258     </td>
259     <td>
260       <button class="btn btn-primary" type="button" id="genotype">Download</button>
261       <input type="hidden" id="gbs_download_token" name="gbs_download_token"/>
262     </td>
263   </tr>
264   </tbody>
265   </table>
266 </form>
267 </div>
269 <script>
270   $(document).ready(function() {
272       var lo = new CXGN.List();
274       $('#accession_list2').html(lo.listSelect('genotype_accession_list', [ 'accessions' ], 'select'));
275       get_select_box("genotyping_protocols", "protocol_list");
277       $('#genotype').click(function() {
279       var accession_list_id = $('#genotype_accession_list_list_select').val();
280       var protocol_list_id = $('#protocol_list').val();
282       var accession_validation = 1;
283       if (accession_list_id) {
284         accession_validation = lo.validate(accession_list_id, 'accessions', true);
285       }
287       if (!( accession_list_id || protocol_list_id) ) {
288         alert("You need to select a list of accessions and a protocol !");
289         return;
290       }
292       var problem_lists = new Array();
294       if (accession_validation != 1) {
295         problem_lists.push('accessions');
296       }
299       console.log(problem_lists);
301       if (problem_lists.length > 0) {
302         alert("The following lists did not pass validation: "+problem_lists.join(", ")+". Please correct the list(s) and try again");
303         return;
304       }
306       var ladda = Ladda.create(this);
307       ladda.start();
308       var token = new Date().getTime(); //use the current timestamp as the token name and value
309       manage_dl_with_cookie(token, ladda);
310       jQuery('#gbs_download_token').val(token);
311       jQuery('#download_gbs').submit();
313     });
315   });
316 </script>
318 <div class="well well-sm">
319 <form id="gbs_qc" action="/breeders/gbs_qc_action" method="POST">
320 <table class="table" cellpadding="10">
321   <thead>
322   <tr><td colspan="3"><h4>GBS Genotype QC</h4><p>Select parameter:</p></tr>
323   <tr>
324     <th>
325       Trials
326     </th>
327     <th>
328       Accessions
329     </th>
330     <th>
331       Action
332     </th>
333   </tr>
334   </thead>
335   <tbody>
336   <tr>
337     <td>
338       <div id="trial_list3">
339       </div>
340     </td>
341     <td>
342       <div id="accession_list3">
343       </div>
344     </td>
345     <td>
346       <div id="protocol_list2">
347       </div>
348     </td>
349     <td>
350       <button class="btn btn-primary" type="button" id="genotype_qc">Download</button>
351       <input type="hidden" id="qc_download_token" name="qc_download_token"/>
352     </td>
353   </tr>
354   </tbody>
355   </table>
356 </form>
357 </div>
359 </div>
361 <script>
362   $(document).ready(function() {
364       var lo = new CXGN.List();
366       $('#accession_list3').html(lo.listSelect('genotype_qc_accession_list', [ 'accessions' ], 'select'));
367       $('#trial_list3').html(lo.listSelect('genotype_trial_list', [ 'trials' ], 'select' ));
368       get_select_box("genotyping_protocols", "protocol_list2", {'id':'protocol_list2_select', 'name':'protocol_list2_select'});
370       $('#genotype_qc').click(function() {
372         $('#working').dialog( {
373                 height: 100,
374                 width:  300,
375                 modal: true,
376                 autoOpen: false,
377                 closeOnEscape: true,
378                 draggable: true,
379                 resizable: true,
380                 open: function() { $(this).closest('.ui-dialog').find('.ui-dialog-titlebar-close').hide(); },
381                 title: 'Downloading genotype...'
382                 });
384       var accession_list_id = $('#genotype_qc_accession_list_list_select').val();
385       var trial_list_id = $('#genotype_trial_list_list_select').val();
387       var accession_validation = lo.validate(accession_list_id, 'accessions', true);
388       var trial_validation = lo.validate(trial_list_id, 'trials', true);
390       if (! (accession_list_id || trial_list_id) ) {
391         alert("You need to select an accession or a trail !");
392         return;
393       }
395       var problem_lists = new Array();
397       if (accession_validation != 1) {
398         problem_lists.push('accessions');
399       }
401       if (trial_validation != 1) {
402         problem_lists.push('trials');
403       }
406       //alert("problem_lists is " + problem_lists);
408       console.log(problem_lists);
410       if (problem_lists.length > 0) {
411         alert("The following lists did not pass validation: "+problem_lists.join(", ")+". Please correct the list(s) and try again");
412         return;
413       }
415       var ladda = Ladda.create(this);
416       ladda.start();
417       var token = new Date().getTime(); //use the current timestamp as the token name and value
418       manage_dl_with_cookie(token, ladda);
419       jQuery('#qc_download_token').val(token);
420       jQuery('#gbs_qc').submit();
422     });
424   });
425 </script>