display obsoleted and current number of transformants
[sgn.git] / mason / breeders_toolbox / add_accessions_dialogs.mas
blobf8f1332aec32895aae874cb8c6b588aecee5d417
1 <%args>
2 $preferred_species => ""
3 $editable_stock_props
4 $editable_stock_props_definitions
5 </%args>
7 <%perl>
8     my $user_role = '';
9     my $email_address = '';
10     if ($c->user) {
11         $user_role = $c->user->get_object()->get_user_type();
12         $email_address = $c->user->get_object()->get_private_email();
13     }
14 </%perl>
16 <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">
17   <div class="modal-dialog modal-lg" role="document">
18     <div class="modal-content">
19       <div class="modal-header">
20         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
21         <h4 class="modal-title" id="addAccessionsDialog">Add Accessions</h4>
22       </div>
23       <div class="modal-body">
24         <div class="container-fluid">
26             <ul class="nav nav-pills nav-justified" id="add_new_accessions_tab_select">
27                 <li class="active" id="add_new_accessions_list_tab"><a data-toggle="tab" href="#with_list_tab">Using Lists</a></li>
28                 <li id="add_new_accessions_file_tab"><a data-toggle="tab" href="#with_file_tab">Uploading a File</a></li>
29             </ul>
31             <div class="tab-content">
33                 <div id="with_list_tab" class="tab-pane fade in active">
34                     <hr>
35                     <form class="form-horizontal" role="form" name="new_accessions_form" id="new_accessions_form">
36                         <div class="form-group">
37                             <label class="col-sm-4 control-label">Choose a List of Accessions to Add: </label>
38                             <div class="col-sm-8" id="list_div" name="list_div">
39                             </div>
40                         </div>
41                         <div class="form-group">
42                             <label class="col-sm-4 control-label"></label>
43                             <div class="col-sm-8">
44                                 <button name="lists_link" class="btn btn-info btn-sm" style="margin:6px 0px 0px 0px" type="button" >Manage Lists</button>
45                             </div>
46                         </div>
47                         <div class="form-group">
48                             <label class="col-sm-4 control-label">Use Fuzzy Search: </label>
49                             <div class="col-sm-8">
50 % if ( $user_role eq 'curator' ) {
51                                 <input type="checkbox" id="fuzzy_check" name="fuzzy_check" checked></input>
52 % } else {
53                                 <input type="checkbox" id="fuzzy_check" name="fuzzy_check" checked disabled></input>
54 % }
55                                 <br/>
56                                 <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>
57                             </div>
58                         </div>
59                     </form>
60                 </div>
62                 <div id="with_file_tab" class="tab-pane fade">
63                     <hr>
64                     <&| /page/explanation.mas, title=>'Template information' &>
65                         <p>
66                             <b>File format information</b>
67                             <br>
68                             <a id="accessions_upload_spreadsheet_format_info">Spreadsheet format</a>
69                         </p>
70                     </&>
72                     <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">
73                         <div class="form-group">
74                             <label class="col-sm-4 control-label">Upload File: </label>
75                             <div class="col-sm-8" >
76                                 <input type="file" name="new_accessions_upload_file" id="new_accessions_upload_file" encoding="multipart/form-data" />
77                             </div>
78                         </div>
79                         <div class="form-group">
80                             <label class="col-sm-4 control-label">Email Alert: </label>
81                             <div class="col-sm-8">
82                                 <input id="email_option_to_recieve_accession_upload_status" name="email_option_to_recieve_upload_status" type="checkbox" data-toggle="toggle" style="margin-right: 10px;">
83                                 <label id="email_label_upload" class="control-label" style="display: none; margin-right: 10px;">Email:</label>
84                                 <input id="email_address_upload" name="email_address_upload" type="email" value="<% $email_address %>" style="display: none;">
85                             </div>
86                         </div>
87                         <div class="form-group">
88                             <label class="col-sm-4 control-label">Use Fuzzy Search: </label>
89                             <div class="col-sm-8">
90 % if ( $user_role eq 'curator' ) {
91                                 <input type="checkbox" id="fuzzy_check_upload_accessions" name="fuzzy_check_upload_accessions" checked></input>
92 % } else {
93                                 <input type="checkbox" id="fuzzy_check_upload_accessions" name="fuzzy_check_upload_accessions" checked disabled></input>
94 % }
95                                 <br/>
96                                 <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>
97                             </div>
98                         </div>
99                         <div class="form-group">
100                             <label class="col-sm-4 control-label">Append Synonyms:</label>
101                             <div class="col-sm-8">
102                                 <input type="checkbox" id="append_synonyms" name="append_synonyms" checked />
103                                 <br />
104                                 <small>When checked, add synonyms of existing accession entries to the synonyms already stored in the database.  When not checked, remove any existing synonyms of existing accession entries and store only the synonyms in the upload file.</small>
105                             </div>
106                         </div>
107                     </form>
109                     <& /help/file_upload_type.mas, type => "Accessions", optional_column => 1 &>
111                 </div>
113             </div>
115         </div>
116       </div>
117       <div class="modal-footer">
118         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
119         <button type="button" class="btn btn-primary" name="new_accessions_submit" id="new_accessions_submit">Continue</button>
120       </div>
121     </div>
122   </div>
123 </div>
125 <div class="modal fade" id="accessions_upload_spreadsheet_format_modal" name="accessions_upload_spreadsheet_format_modal" tabindex="-1" role="dialog" aria-labelledby="uploadAccessionsInfoDialog">
126     <div class="modal-dialog modal-xl" role="document">
127         <div class="modal-content">
128             <div class="modal-header" style="text-align: center">
129                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
130                 <h4 class="modal-title" id="uploadAccessionsInfoDialog">Upload Accessions Template Information</h4>
131             </div>
132             <div class="modal-body">
133                 <div class="container-fluid">
134                     <b>Header:</b>
135                     <br>
136                     The first row (header) should contain the following:
137                     <br />
139                     <table class="table table-hover table-bordered table-condensed" >
140                         <thead></thead>
141                         <tbody>
142                             <tr>
143                                 <td>accession_name</td>
144                                 <td>species_name</td>
145                                 <td>population_name</td>
146                                 <td>organization_name</td>
147                                 <td>synonym</td>
148 %  foreach my $editable_stockprop (sort keys %$editable_stock_props) {
149 %                               print "<td>$editable_stockprop</td>";
150 % }
151                             </tr>
152                         </tbody>
153                     </table>
155                     <b>Comma Separated Fields:</b>
156                     <ul>
157                     <li>The following fields can take comma-separated values to indicate there are several values for the accession: organization_name, synonym
158 %  foreach my $editable_stockprop (sort keys %$editable_stock_props) {
159 %                   print ", $editable_stockprop";
160 %  }
161                     </li>
162                     </ul>
164                     <b>Required Fields:</b>
165                     <ul>
166                     <li>accession_name (must be unique)</li>
167                     <li>species_name (must exist in the database)</li>
168                     </ul>
169                     <b>Optional Fields:</b>
170                     <ul>
171                     <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>
172                     <li>organization_name (the name(s) of the organization(s) which use this accession e.g. NARO,IITA)</li>
173                     <li>synonym (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. e.g. accession_synonym1,accession_synonym001)</li>
174 %  foreach my $editable_stockprop (sort keys %$editable_stock_props) {
175 %    if (exists($editable_stock_props_definitions->{$editable_stockprop})) {
176 %                   print "<li>$editable_stockprop (".$editable_stock_props_definitions->{$editable_stockprop}.")</li>";
177 %    } else {
178 %                   print "<li>$editable_stockprop (no definition available)</li>";
179 %    }
180 %  }
181                     </ul>
182                 </div>
183                 <& /help/file_upload_type.mas, type => "Accessions", optional_column => 1 &>
184             </div>
185             <div class="modal-footer">
186                 <button id="close_trial_upload_dialog" type="button" class="btn btn-default" data-dismiss="modal">Close</button>
187             </div>
188         </div>
189     </div>
190 </div>
192 <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">
193   <div class="modal-dialog modal-xl" role="document">
194     <div class="modal-content ui-front">
195       <div class="modal-header">
196         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
197         <h4 class="modal-title" id="reviewAbsentDialog">Accessions to be Added</h4>
198       </div>
199       <div class="modal-body">
200         <div class="container-fluid">
201             <div id="add_accessions_using_list_inputs" style="display:none">
202                 <label for="species_name_input">Species name for added accessions</label>
203                 <input class="form-control" type="text" id="species_name_input" value="<% $preferred_species %>"></input>
204                 <br><br>
205                 <label for="population_name_input">Population name for added accessions (optional)</label>
206                 <input class="form-control" type="text" id="population_name_input"></input>
207                 <br><br>
208                 <label for="organization_name_input">Organization name for added accessions (optional)</label>
209                 <input class="form-control" type="text" id="organization_name_input"></input>
210                 <br><br>
211                 <b>The following accessions are new and will be added to the database:</b>
212                 <div id="count_of_absent_accessions"></div>
213                 <br>
214                 <div id="view_absent"></div>
215             </div>
216             <div id="view_infoToAdd"></div>
217         </div>
218       </div>
219       <div class="modal-footer">
220         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
221         <button type="button" class="btn btn-primary" name="review_absent_accessions_submit" id="review_absent_accessions_submit">Add Accessions</button>
222       </div>
223     </div>
224   </div>
225 </div>
227 <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">
228   <div class="modal-dialog modal-xl" role="document">
229     <div class="modal-content">
230       <div class="modal-header">
231         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
232         <h4 class="modal-title" id="reviewFuzzyDialog">Fuzzy Matches</h4>
233       </div>
234       <div class="modal-body">
235         <div class="container-fluid">
236           <b>Accessions were found with similar names.</b>
237           <br/><br/>
238           <div id="view_fuzzy_matches"></div>
239         </div>
240       </div>
241       <div class="modal-footer">
242         <button type="button" class="btn btn-default" name="review_fuzzy_matches_download" id="review_fuzzy_matches_download">Download Fuzzy Matches</button>
243         <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>
244       </div>
245     </div>
246   </div>
247 </div>
249 <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">
250   <div class="modal-dialog modal-xl" role="document">
251     <div class="modal-content">
252       <div class="modal-header">
253         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
254         <h4 class="modal-title" id="reviewFoundDialog">Found Accessions</h4>
255       </div>
256       <div class="modal-body">
257         <div class="container-fluid">
258           <b>The following accessions already exist in the database:</b>
259           <div id="count_of_found_accessions"></div>
260           <br/>
261           <div id="view_found_matches"></div>
262         </div>
263       </div>
264       <div class="modal-footer">
265         <button type="button" class="btn btn-primary" name="review_found_matches_hide" id="review_found_matches_hide" data-dismiss="modal">Continue</button>
266       </div>
267     </div>
268   </div>
269 </div>
271 <div class="modal fade" id="add_accessions_saved_message_modal" name="add_accessions_saved_message_modal" tabindex="-1" role="dialog" aria-labelledby="addAccessionsSavedDialog">
272     <div class="modal-dialog" role="document">
273         <div class="modal-content">
274             <div class="modal-header" style="text-align: center">
275                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
276                 <h4 class="modal-title" id="addAccessionsSavedDialog">Accessions Saved</h4>
277             </div>
278             <div class="modal-body">
279                 <div class="container-fluid">
280                     <div id="add_accessions_saved_message"></div>
281                 </div>
282             </div>
283             <div class="modal-footer">
284                 <button id="close_add_accessions_saved_message_modal" type="button" class="btn btn-default" data-dismiss="modal">Close</button>
285             </div>
286         </div>
287     </div>
288 </div>
290 <form id="add_accession_fuzzy_match_download" method="post" action="/ajax/accession_list/fuzzy_download" target="TheWindow">
291     <input type="hidden" name="fuzzy_response" value="" />
292 </form>
294 <style>
295 .ui-autocomplete {
296   max-height: 100px;
297   overflow-y: auto;
298   /* prevent horizontal scrollbar */
299   overflow-x: hidden;
302 /* IE 6 doesn't support max-height
303 * we use height instead, but this forces the menu to always be this tall
305 * html .ui-autocomplete {
306   height: 100px;
308 </style>