added the list of management factor types in controllers
[sgn.git] / mason / breeders_toolbox / add_accessions_dialogs.mas
bloba610416bb2d102a7ad2751a659eabd2641e02c51
1 <%args>
2 $preferred_species => ""
3 $editable_stock_props => {}
4 </%args>
6 <%perl>
7     my $user_role = '';
8     if ($c->user) {
9         $user_role = $c->user->get_object()->get_user_type();
10     }
11 </%perl>
13 <div class="modal fade" id="add_accessions_dialog" name="add_accessions_dialog" tabindex="-1" role="dialog" aria-labelledby="addAccessionsDialog" data-backdrop="static" data-keyboard="false">
14   <div class="modal-dialog modal-lg" role="document">
15     <div class="modal-content">
16       <div class="modal-header">
17         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
18         <h4 class="modal-title" id="addAccessionsDialog">Add Accessions</h4>
19       </div>
20       <div class="modal-body">
21         <div class="container-fluid">
23             <ul class="nav nav-pills nav-justified" id="add_new_accessions_tab_select">
24                 <li class="active" id="add_new_accessions_list_tab"><a data-toggle="tab" href="#with_list_tab">Using Lists</a></li>
25                 <li id="add_new_accessions_file_tab"><a data-toggle="tab" href="#with_file_tab">Uploading a File</a></li>
26             </ul>
28             <div class="tab-content">
30                 <div id="with_list_tab" class="tab-pane fade in active">
31                     <hr>
32                     <form class="form-horizontal" role="form" name="new_accessions_form" id="new_accessions_form">
33                         <div class="form-group">
34                             <label class="col-sm-4 control-label">Choose a List of Accessions to Add: </label>
35                             <div class="col-sm-8" id="list_div" name="list_div">
36                             </div>
37                         </div>
38                         <div class="form-group">
39                             <label class="col-sm-4 control-label"></label>
40                             <div class="col-sm-8">
41                                 <button name="lists_link" class="btn btn-info btn-sm" style="margin:6px 0px 0px 0px" type="button" >Manage Lists</button>
42                             </div>
43                         </div>
44                         <div class="form-group">
45                             <label class="col-sm-4 control-label">Use Fuzzy Search: </label>
46                             <div class="col-sm-8">
47 % if ( $user_role eq 'curator' ) {
48                                 <input type="checkbox" id="fuzzy_check" name="fuzzy_check" checked></input>
49 % } else { 
50                                 <input type="checkbox" id="fuzzy_check" name="fuzzy_check" checked disabled></input>
51 % }
52                                 <br/>
53                                 <small>Note: Use the fuzzy search to match similar names to prevent uploading of duplicate accessions. Fuzzy searching is much slower than regular search. Only a curator can disable the fuzzy search.</small>
54                             </div>
55                         </div>
56                     </form>
57                 </div>
59                 <div id="with_file_tab" class="tab-pane fade">
60                     <hr>
61                     <&| /page/explanation.mas, title=>'Template information' &>
62                         <p>
63                             <b>File format information</b>
64                             <br>
65                             <a id="accessions_upload_spreadsheet_format_info">Spreadsheet format</a>
66                         </p>
67                     </&>
69                     <form class="form-horizontal" role="form" method="post" enctype="multipart/form-data" encoding="multipart/form-data" id="upload_new_accessions_form" name="upload_new_accessions_form">
70                         <div class="form-group">
71                             <label class="col-sm-4 control-label">Upload File: </label>
72                             <div class="col-sm-8" >
73                                 <input type="file" name="new_accessions_upload_file" id="new_accessions_upload_file" encoding="multipart/form-data" />
74                             </div>
75                         </div>
76                         <div class="form-group">
77                             <label class="col-sm-4 control-label">Use Fuzzy Search: </label>
78                             <div class="col-sm-8">
79 % if ( $user_role eq 'curator' ) {
80                                 <input type="checkbox" id="fuzzy_check_upload_accessions" name="fuzzy_check_upload_accessions" checked></input>
81 % } else {
82                                 <input type="checkbox" id="fuzzy_check_upload_accessions" name="fuzzy_check_upload_accessions" checked disabled></input>
83 % }
84                                 <br/>
85                                 <small>Note: Use the fuzzy search to match similar names to prevent uploading of duplicate accessions. Fuzzy searching is much slower than regular search. Only a curator can disable the fuzzy search.</small>
86                             </div>
87                         </div>
88                     </form>
90                 </div>
92             </div>
94         </div>
95       </div>
96       <div class="modal-footer">
97         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
98         <button type="button" class="btn btn-primary" name="new_accessions_submit" id="new_accessions_submit">Continue</button>
99       </div>
100     </div>
101   </div>
102 </div>
104 <div class="modal fade" id="accessions_upload_spreadsheet_format_modal" name="accessions_upload_spreadsheet_format_modal" tabindex="-1" role="dialog" aria-labelledby="uploadAccessionsInfoDialog">
105     <div class="modal-dialog modal-xl" role="document">
106         <div class="modal-content">
107             <div class="modal-header" style="text-align: center">
108                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
109                 <h4 class="modal-title" id="uploadAccessionsInfoDialog">Upload Accessions Template Information</h4>
110             </div>
111             <div class="modal-body">
112                 <div class="container-fluid">
113                     <b>Accessions may be uploaded in an Excel file (.xls)</b>
114                     <br />
115                     (.xlsx format not supported)
116                     <br /><br />
117                     <b>Header:</b>
118                     <br>
119                     The first row (header) should contain the following:
120                     <br />
122                     <table class="table table-hover table-bordered table-condensed" >
123                         <thead></thead>
124                         <tbody>
125                             <tr>
126                                 <td>accession_name</td>
127                                 <td>species_name</td>
128                                 <td>population_name</td>
129                                 <td>organization_name(s)</td>
130                                 <td>synonym(s)</td>
131 % if (exists($editable_stock_props->{'location_code'})){
132                                 <td>location_code(s)</td>
133 % }
134 % if (exists($editable_stock_props->{'ploidy_level'})){
135                                 <td>ploidy_level(s)</td>
136 % }
137 % if (exists($editable_stock_props->{'genome_structure'})){
138                                 <td>genome_structure(s)</td>
139 % }
140 % if (exists($editable_stock_props->{'variety'})){
141                                 <td>variety(s)</td>
142 % }
143 % if (exists($editable_stock_props->{'donor'})){
144                                 <td>donor(s)</td>
145 % }
146 % if (exists($editable_stock_props->{'donor institute'})){
147                                 <td>donor_institute(s)</td>
148 % }
149 % if (exists($editable_stock_props->{'donor PUI'})){
150                                 <td>donor_PUI(s)</td>
151 % }
152 % if (exists($editable_stock_props->{'country of origin'})){
153                                 <td>country_of_origin(s)</td>
154 % }
155 % if (exists($editable_stock_props->{'state'})){
156                                 <td>state(s)</td>
157 % }
158 % if (exists($editable_stock_props->{'institute code'})){
159                                 <td>institute_code(s)</td>
160 % }
161 % if (exists($editable_stock_props->{'institute name'})){
162                                 <td>institute_name(s)</td>
163 % }
164 % if (exists($editable_stock_props->{'biological status of accession code'})){
165                                 <td>biological_status_of_accession_code(s)</td>
166 % }
167 % if (exists($editable_stock_props->{'notes'})){
168                                 <td>notes(s)</td>
169 % }
170 % if (exists($editable_stock_props->{'accession number'})){
171                                 <td>accession_number(s)</td>
172 % }
173 % if (exists($editable_stock_props->{'PUI'})){
174                                 <td>PUI(s)</td>
175 % }
176 % if (exists($editable_stock_props->{'seed source'})){
177                                 <td>seed_source(s)</td>
178 % }
179 % if (exists($editable_stock_props->{'type of germplasm storage code'})){
180                                 <td>type_of_germplasm_storage_code(s)</td>
181 % }
182 % if (exists($editable_stock_props->{'acquisition date'})){
183                                 <td>acquisition_date(s)</td>
184 % }
185 % if (exists($editable_stock_props->{'transgenic'})){
186                                 <td>transgenic</td>
187 % }
188 % if (exists($editable_stock_props->{'introgression_parent'})){
189                                 <td>introgression_parent</td>
190 % }
191 % if (exists($editable_stock_props->{'introgression_backcross_parent'})){
192                                 <td>introgression_backcross_parent</td>
193 % }
194 % if (exists($editable_stock_props->{'introgression_map_version'})){
195                                 <td>introgression_map_version</td>
196 % }
197 % if (exists($editable_stock_props->{'introgression_chromosome'})){
198                                 <td>introgression_chromosome</td>
199 % }
200 % if (exists($editable_stock_props->{'introgression_start_position_bp'})){
201                                 <td>introgression_start_position_bp</td>
202 % }
203 % if (exists($editable_stock_props->{'introgression_end_position_bp'})){
204                                 <td>introgression_end_position_bp</td>
205 % }
206                             </tr>
207                         </tbody>
208                     </table>
210                     <b>Required fields:</b>
211                     <ul>
212                     <li>accession_name (must be unique)</li>
213                     <li>species_name (must exist in the database)</li>
214                     </ul>
215                     <b>Optional fields:</b>
216                     <ul>
217                     <li>population_name (a population is a grouping of accessions. if the population already exists in the database, the accession will be added into it, otherwise, the new population will be created.)</li>
218                     <li>organization_names (the name(s) of the organization(s) which use this accession. multiple organizations can be given with comma separation (e.g. NARO,IITA))</li>
219                     <li>synonyms (an accession can be known by many names including local popular names. a synonym name can be used instead of the accession_name throughout the database; because of this, synonyms must themselves be unique. multiple synonyms can be given with comma separation (e.g. accession_synonym1,accession_synonym001))</li>
220 % if (exists($editable_stock_props->{'location_code'})){
221                     <li>location_code(s) (location code(s) for the accession. many can be uploaded at once in comma separated list)</li>
222 % }
223 % if (exists($editable_stock_props->{'ploidy_level'})){
224                     <li>ploidy_level(s) (a number indicating the ploidy (e.g. 2 for diploid, 3 for triploid), numeric. many values can be uploaded as comma separated list.)</li>
225 % }
226 % if (exists($editable_stock_props->{'genome_structure'})){
227                     <li>genome_structure(s) (genome structure(s) for accession which take into account ploidy and ancestral genome info e.g. AAA, AB. many can be uploaded as comma separated list.)</li>
228 % }
229 % if (exists($editable_stock_props->{'variety'})){
230                     <li>variety(s) (variety can be defined as a group of individuals or plants having similar traits that can be reproduced "true to type" from generation to generation. may be uploaded as comma separated list.)</li>
231 % }
232 % if (exists($editable_stock_props->{'donor'})){
233                     <li>donor(s) (the accession_name of the donor accession. may be uploaded as comma separated list.)</li>
234 % }
235 % if (exists($editable_stock_props->{'donor institute'})){
236                     <li>donor_institute(s) (the institute of the donor accession. may be uploaded as comma separated list.)</li>
237 % }
238 % if (exists($editable_stock_props->{'donor PUI'})){
239                     <li>donor_PUI(s) (the permanent unique identifier of the donor accession. may be uploaded as comma separated list.)</li>
240 % }
241 % if (exists($editable_stock_props->{'country of origin'})){
242                     <li>country_of_origin(s) (the country of origin. may be uploaded as comma separated list.)</li>
243 % }
244 % if (exists($editable_stock_props->{'state'})){
245                     <li>state(s) (the state of origin. may be uploaded as comma separated list.)</li>
246 % }
247 % if (exists($editable_stock_props->{'institute code'})){
248                     <li>institute_code(s) (the institute code of origin. may be uploaded as comma separated list.)</li>
249 % }
250 % if (exists($editable_stock_props->{'institute name'})){
251                     <li>institute_name(s) (the institute name of origin. may be uploaded as comma separated list.)</li>
252 % }
253 % if (exists($editable_stock_props->{'biological status of accession code'})){
254                     <li>biological_status_of_accession_code(s) (code indicating the state of accession. may be uploaded as comma separated list.)</li>
255 % }
256 % if (exists($editable_stock_props->{'notes'})){
257                     <li>notes(s) (free text for notes. may be uploaded as comma separated list.)</li>
258 % }
259 % if (exists($editable_stock_props->{'accession number'})){
260                     <li>accession_number(s) (accession number for accession from germplasm bank. may be uploaded as comma separated list.)</li>
261 % }
262 % if (exists($editable_stock_props->{'PUI'})){
263                     <li>PUI(s) (permanent unique identifier of the accession. may be uploaded as comma separated list.)</li>
264 % }
265 % if (exists($editable_stock_props->{'seed source'})){
266                     <li>seed_source(s) (origin of seed source. may be uploaded as comma separated list.)</li>
267 % }
268 % if (exists($editable_stock_props->{'type of germplasm storage code'})){
269                     <li>type_of_germplasm_storage_code(s) (code indicating the type of germplasm storage. may be uploaded as comma separated list.)</li>
270 % }
271 % if (exists($editable_stock_props->{'acquisition date'})){
272                     <li>acquisition_date(s) (date(s) of acquisition YYYYMMDD for accession. may be uploaded as comma separated list.)</li>
273 % }
274 % if (exists($editable_stock_props->{'transgenic'})){
275                     <li>transgenic (indicates if accession is transgenic. Please indicate 1 if transgenic and empty if otherwise.)</li>
276 % }
277 % if (exists($editable_stock_props->{'introgression_parent'})){
278                     <li>introgression_parent (if the accession you are adding has an introgression that originated from one of the parents, you can specify the parent here)</li>
279 % }
280 % if (exists($editable_stock_props->{'introgression_backcross_parent'})){
281                     <li>introgression_backcross_parent (the backcross parent for introducing an introgression into the accession being added)</li>
282 % }
283 % if (exists($editable_stock_props->{'introgression_map_version'})){
284                     <li>introgression_map_version (the map version for identifying the start and stop position of the introgression. e.g. AGPv2)</li>
285 % }
286 % if (exists($editable_stock_props->{'introgression_chromosome'})){
287                     <li>introgression_chromosome (the chromosome number that the introgression is on.)</li>
288 % }
289 % if (exists($editable_stock_props->{'introgression_start_position_bp'})){
290                     <li>introgression_start_position_bp (the start position of the introgression in base pairs)</li>
291 % }
292 % if (exists($editable_stock_props->{'introgression_end_position_bp'})){
293                     <li>introgression_start_position_bp (the end position of the introgression in base pairs)</li>
294 % }
295                     </ul>
296                 </div>
297             </div>
298             <div class="modal-footer">
299                 <button id="close_trial_upload_dialog" type="button" class="btn btn-default" data-dismiss="modal">Close</button>
300             </div>
301         </div>
302     </div>
303 </div>
305 <div class="modal fade" id="review_absent_dialog" name="review_absent_dialog" tabindex="-1" role="dialog" aria-labelledby="reviewAbsentDialog" data-backdrop="static" data-keyboard="false">
306   <div class="modal-dialog modal-xl" role="document">
307     <div class="modal-content ui-front">
308       <div class="modal-header">
309         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
310         <h4 class="modal-title" id="reviewAbsentDialog">Accessions to be Added</h4>
311       </div>
312       <div class="modal-body">
313         <div class="container-fluid">
314             <div id="add_accessions_using_list_inputs" style="display:none">
315                 <label for="species_name_input">Species name for added accessions</label>
316                 <input class="form-control" type="text" id="species_name_input" value="<% $preferred_species %>"></input>
317                 <br><br>
318                 <label for="population_name_input">Population name for added accessions (optional)</label>
319                 <input class="form-control" type="text" id="population_name_input"></input>
320                 <br><br>
321                 <label for="organization_name_input">Organization name for added accessions (optional)</label>
322                 <input class="form-control" type="text" id="organization_name_input"></input>
323                 <br><br>
324                 <b>The following accessions are new and will be added to the database:</b>
325                 <div id="count_of_absent_accessions"></div>
326                 <br>
327                 <div id="view_absent"></div>
328             </div>
329             <div id="view_infoToAdd"></div>
330         </div>
331       </div>
332       <div class="modal-footer">
333         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
334         <button type="button" class="btn btn-primary" name="review_absent_accessions_submit" id="review_absent_accessions_submit">Add Accessions</button>
335       </div>
336     </div>
337   </div>
338 </div>
340 <div class="modal fade" id="review_fuzzy_matches_dialog" name="review_fuzzy_matches_dialog" tabindex="-1" role="dialog" aria-labelledby="reviewFuzzyDialog" data-backdrop="static" data-keyboard="false">
341   <div class="modal-dialog modal-xl" role="document">
342     <div class="modal-content">
343       <div class="modal-header">
344         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
345         <h4 class="modal-title" id="reviewFuzzyDialog">Fuzzy Matches</h4>
346       </div>
347       <div class="modal-body">
348         <div class="container-fluid">
349           <b>Accessions were found with similar names.</b>
350           <br/><br/>
351           <div id="view_fuzzy_matches"></div>
352         </div>
353       </div>
354       <div class="modal-footer">
355         <button type="button" class="btn btn-default" name="review_fuzzy_matches_download" id="review_fuzzy_matches_download">Download Fuzzy Matches</button>
356         <button type="button" class="btn btn-primary" name="review_fuzzy_matches_continue" id="review_fuzzy_matches_continue" data-dismiss="modal">Make Changes and Continue</button>
357       </div>
358     </div>
359   </div>
360 </div>
362 <div class="modal fade" id="review_found_matches_dialog" name="review_found_matches_dialog" tabindex="-1" role="dialog" aria-labelledby="reviewFoundDialog" data-backdrop="static" data-keyboard="false">
363   <div class="modal-dialog modal-xl" role="document">
364     <div class="modal-content">
365       <div class="modal-header">
366         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
367         <h4 class="modal-title" id="reviewFoundDialog">Found Accessions</h4>
368       </div>
369       <div class="modal-body">
370         <div class="container-fluid">
371           <b>The following accessions already exist in the database:</b>
372           <div id="count_of_found_accessions"></div>
373           <br/>
374           <div id="view_found_matches"></div>
375         </div>
376       </div>
377       <div class="modal-footer">
378         <button type="button" class="btn btn-primary" name="review_found_matches_hide" id="review_found_matches_hide" data-dismiss="modal">Continue</button>
379       </div>
380     </div>
381   </div>
382 </div>
384 <div class="modal fade" id="add_accessions_saved_message_modal" name="add_accessions_saved_message_modal" tabindex="-1" role="dialog" aria-labelledby="addAccessionsSavedDialog">
385     <div class="modal-dialog" role="document">
386         <div class="modal-content">
387             <div class="modal-header" style="text-align: center">
388                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
389                 <h4 class="modal-title" id="addAccessionsSavedDialog">Accessions Saved</h4>
390             </div>
391             <div class="modal-body">
392                 <div class="container-fluid">
393                     <div id="add_accessions_saved_message"></div>
394                 </div>
395             </div>
396             <div class="modal-footer">
397                 <button id="close_add_accessions_saved_message_modal" type="button" class="btn btn-default" data-dismiss="modal">Close</button>
398             </div>
399         </div>
400     </div>
401 </div>
403 <form id="add_accession_fuzzy_match_download" method="post" action="/ajax/accession_list/fuzzy_download" target="TheWindow">
404     <input type="hidden" name="fuzzy_response" value="" />
405 </form>
407 <style>
408 .ui-autocomplete {
409   max-height: 100px;
410   overflow-y: auto;
411   /* prevent horizontal scrollbar */
412   overflow-x: hidden;
415 /* IE 6 doesn't support max-height
416 * we use height instead, but this forces the menu to always be this tall
418 * html .ui-autocomplete {
419   height: 100px;
421 </style>