check if stock_dbxref exists before transferring new as it might violate a unique...
[sgn.git] / mason / breeders_toolbox / cross / intercross_parents_download.mas
blob8d2cac8e5f083017a5c6351acf6923b3d4b2aee0
1 <%args>
2 $trial_id
3 </%args>
5 <& /util/import_javascript.mas, classes => [ 'jquery', 'jquery.dataTables' ] &>
6 <& /util/import_css.mas, paths => ['/documents/inc/datatables/jquery.dataTables.css'] &>
9 <div class="modal fade" id="intercross_parents_download_dialog" name="intercross_parents_download_dialog" tabindex="-1" role="dialog" aria-labelledby="intercrossParentsDownloaddialog">
10     <div class="modal-dialog modal-lg" role="document">
11         <div class="modal-content">
12             <div class="modal-header">
13                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
14                 <h4 class="modal-title" id="intercrossParentsDownloaddialog">Download Intercross Parents File</h4>
15             </div>
16             <div class="modal-body">
17                 <div class="container-fluid">
18                     <div class="row">
19                         <div class="col-sm-11">
20                             <&| /page/explanation.mas, title=>'File Information' &>
21                                 <p>
22                                     <b>File Information</b>
23                                     <br>
24                                     <a id="intercross_parents_file_info">Intercross Parents</a>
25                                     <br>
26                                 </p>
27                             </&>
28                             <div class="form-horizontal">
29                                 <div class="form-group">
30                                     <label class="control-label col-sm-3">Female parents:</label>
31                                     <div class="col-sm-7" >
32                                         <div class="input-group">
33                                             <select class="form-control" id="female_parents_list_select"></select>
34                                         </div>
35                                     </div>
36                                 </div>
37                                 <div class="form-group">
38                                     <label class="control-label col-sm-3">Male parents:</label>
39                                     <div class="col-sm-7" >
40                                         <div class="input-group">
41                                             <select class="form-control" id="male_parents_list_select"></select>
42                                         </div>
43                                     </div>
44                                 </div>
45                             </div>
46                         </div>
47                     </div>
48                 </div>
49             </div>
50             <div class="modal-footer">
51                 <button id="download_intercross_parents_submit" type="button" class="btn btn-primary" >Download</button>
52                 <input type="hidden" id="intercross_parents_download_token" name="intercross_parents_download_token"/>
53             </div>
54         </div>
55     </div>
56 </div>
58 <div class="modal fade" id="intercross_parents_download_message" name="intercross_parents_download_message" tabindex="-1" role="dialog" aria-labelledby="intercrossParentsDownloadMessage">
59     <div class="modal-dialog" role="document">
60         <div class="modal-content">
61             <div class="modal-header">
62                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
63                 <h4 class="modal-title" id="intercrossParentsDownloadMessage">Intercross Parents File Created</h4>
64             </div>
65             <div class="modal-body">
66                 <div class="container-fluid">
67                     <p>
68                         <span class="ui-icon ui-icon-circle-check" style="float: left; margin: 0 7px 50px 0;"></span>
69                         The Intercross parents file was created successfully.
70                     </p>
71                     <p>
72                         <a id="intercross_parents_download_link">Download Intercross Parents</a>
73                     </p>
74                 </div>
75             </div>
76             <div class="modal-footer">
77                 <button type="button" class="btn btn-default" name="intercross_parents_download_close_button" id="intercross_parents_download_close_button" data-dismiss="modal">Close</button>
78             </div>
79         </div>
80     </div>
81 </div>
83 <div class="modal fade" id="intercross_parents_file_info_dialog" name="intercross_parents_file_info_dialog" tabindex="-1" role="dialog" aria-labelledby="intercrossParentsFileInfoDialog">
84     <div class="modal-dialog modal-lg" role="document">
85         <div class="modal-content">
86             <div class="modal-header">
87                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
88                 <h4 class="modal-title" id="intercrossParentsFileInfoDialog">Intercross Parents</h4>
89             </div>
90             <div class="modal-body">
91                 <div class="container-fluid">
92                     <b>
93                         Names in the list must be uniquenames.
94                     </b>
95                     <br>
96                         Intercross Parents file is a CSV file (.csv).
97                     <br>
98                         The file can be used directly with Intercross app.
99                     <br><br>
100                     <b>
101                         Header:
102                     </b>
103                     <br>
104                         The first row (header) contains the following:
105                     <br>
106                     <table class="table table-bordered table-hover">
107                         <tbody>
108                             <tr>
109                                 <td>codeId</td>
110                                 <td>sex</td>
111                                 <td>name</td>
112                             </tr>
113                         </tbody>
114                     </table>
115                     <b>
116                         Column Information:
117                     </b>
118                     <ul>
119                         <li><b>codeId:</b> stock_ids in the database.</li>
120                         <li><b>sex:</b> 0 (female), 1 (male)</li>
121                         <li><b>name:</b> uniquenames in the database.</li>
122                     </ul>
123                 </div>
124             </div>
125             <div class="modal-footer">
126                 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
127             </div>
128         </div>
129     </div>
130 </div>
133 <script>
135 jQuery(document).ready(function(){
137     var crossing_experiment_id = "<% $trial_id %>";
138     var lo = new CXGN.List();
140     jQuery('#female_parents_list_select').html(lo.listSelect('female_parents_list_select', ['accessions'], 'Select a list of female parents', undefined, undefined));
141     jQuery('#male_parents_list_select').html(lo.listSelect('male_parents_list_select', ['accessions'], 'Select a list of male parents', undefined, undefined));
143     jQuery('#download_intercross_parents').click(function(){
144         jQuery('#intercross_parents_download_dialog').modal("show");
145     });
147     jQuery("#intercross_parents_file_info").click(function(){
148         jQuery("#intercross_parents_file_info_dialog").modal("show");
149     });
151     jQuery('#download_intercross_parents_submit').click(function(){
153         var female_list_id = jQuery('#female_parents_list_select').val();
154         var male_list_id = jQuery('#male_parents_list_select').val();
156         if (!female_list_id) {
157             alert("Please choose a list of female parents");
158             return;
159         }
161         if (!male_list_id) {
162             alert("Please choose a list of male parents");
163             return;
164         }
166         jQuery.ajax({
167             url: '/ajax/intercross/create_parents_file',
168             dataType: "json",
169             type: 'POST',
170             data:{
171                 'female_list_id': female_list_id,
172                 'male_list_id': male_list_id,
173                 'crossing_experiment_id': crossing_experiment_id
174             },
175             beforeSend: function() {
176                 jQuery("#working_modal").modal("show");
177             },
178             success: function(response) {
179                 jQuery("#working_modal").modal("hide");
180                 if (response.error) {
181                     alert(response.error);
182                 } else {
183                     jQuery('#intercross_parents_download_link').attr('href', "/fieldbook/trait_file_download/" + response.file_id);
184                     jQuery("#intercross_parents_download_message").modal("show");
185                     jQuery('#intercross_parents_download_dialog').modal("hide");
186                 }
187             },
188             error: function() {
189                 jQuery("#working_modal").modal("hide");
190                 alert('An error occurred creating the parents file.');
191                 jQuery('#intercross_parents_download_dialog').modal("hide");
192             },
193         });
194     });
196     jQuery("#intercross_parents_download_close_button").click(function(){
197         location.reload();
198     });
204 </script>