fix test with new description field.
[sgn.git] / mason / breeders_toolbox / delete_seedlots.mas
blob9dfdc73c34dbdc95c0673cde1b2b7a01eb3f080e
2 <%args>
3 $user_role => undef
4 </%args>
6 <& /util/import_javascript.mas, classes => [ 'jquery', 'jqueryui', 'CXGN.BreedersToolbox.HTMLSelect', 'CXGN.List' ] &>
8 <div class="modal fade" id="delete_seedlots_using_list_dialog" name="delete_seedlots_using_list_dialog" tabindex="-1" role="dialog" aria-labelledby="deleteSeedlotsDialog">
9     <div class="modal-dialog modal-lg" role="document">
10         <div class="modal-content">
11             <div class="modal-header">
12                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
13                 <h4 class="modal-title" id="deleteSeedlotsDialog">Delete Seedlots </h4>
14             </div>
15             <div class="modal-body">
16                 <div class="container-fluid">
17                     <div class="well well-sm">
18                         <form class="form-horizontal" id="delete_seedlot_info" name="delete_seedlot_info">
19                             <div class="form-group form-group-sm">
20                                 <ul>
21                                     <strong>Note:</strong>
22                                     <li>Only seedlots that are not associated with crosses or trials can be deleted.</li>
23                                     <li>Deleting seedlots cannot be undone.</li>
24                                 </ul>
25                             </div>
26                         </form>
27                     </div>
28                     <form class="form-horizontal" role="form" method="post" id="delete_seedlots_form" name="delete_seedlots_form">
29                         <div class="form-group" id="delete_seedlot_list_section" >
30                             <label class="col-sm-4 control-label">Select a List of Seedlots:</label>
31                             <div class="col-sm-8" id="seedlots_to_delete_html" name="seedlots_to_delete_html"></div>
32                         </div>
33                     </form>
34                 </div>
35             </div>
36             <div class="modal-footer">
37                 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
38                 <button type="button" class="btn btn-primary" name="delete_seedlots_submit" id="delete_seedlots_submit">Delete Seedlots</button>
39             </div>
40         </div>
41     </div>
42 </div>
44 <div class="modal fade" id="delete_seedlots_modal" name="delete_seedlots_modal" tabindex="-1" role="dialog">
45     <div class="modal-dialog modal-lg" role="document">
46         <div class="modal-content">
47             <div class="modal-header">
48                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
49                 <h4 class="modal-title">Seedlot Deletion Verify</h4>
50             </div>
51             <div class="modal-body">
52               <div class="container-fluid">
53                 <div id="seedlot_deletion_verify">
54                 </div>
55               </div>
56             </div>
57             <div class="modal-footer">
58                 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
59                 <button type="button" class="btn btn-primary" name="delete_seedlots_confirm" id="delete_seedlots_confirm">Delete green elements</button>
60             </div>
61         </div>
62     </div>
63 </div>
66 <script>
68 jQuery(window).ready( function() {
70     jQuery("#delete_seedlots_link").click( function() {
71         jQuery('#delete_seedlots_using_list_dialog').modal('show');
72     });
74     jQuery("#seedlots_to_delete_html").append(list.listSelect("seedlots_to_delete_html_select", [ 'seedlots' ], 'None', undefined, undefined));
75     
76 });
78 jQuery('#delete_seedlots_submit').click( function() {
79    var list_id = jQuery('#seedlots_to_delete_html_select_list_select').val();
80    if (list_id === "") { alert("Please select a list "+list_id); return; }
81    verify_seedlot_deletion(list_id).then(function(r) { display_seedlot_deletion_info(r) }, function(r) { alert("ERROR!")});
82 });
84 jQuery('#delete_seedlots_confirm').click( function() {
85     var list_id = jQuery('#seedlots_to_delete_html_select_list_select').val();
86     if (list_id) {
87         delete_seedlots(list_id).then( function(r) { alert(r.delete_count+" elements have been deleted"); }, function(r) { alert('An error occurred'); });
88     }
89 });
91 function verify_seedlot_deletion(list_id) {
93    return jQuery.ajax( {
94         url: '/ajax/seedlots/verify_delete_by_list?list_id='+list_id,
95     });
98 function delete_seedlots(list_id) {
99    return jQuery.ajax( {
100        url: '/ajax/seedlots/confirm_delete_by_list?list_id='+list_id,
101    });
104 function display_seedlot_deletion_info(r) {
105     jQuery('#delete_seedlots_modal').modal('show');
107     var ok = r.ok;
108     var errors = r.errors;
110     var html = "";
112     for (const n of ok) {
113         html += "<li class='list-group-item list-group-item-success'>"+n+"</li>";
114     }
116     for (const n of errors) {
117        html += "<li class='list-group-item list-group-item-danger' >"+n[0]+" ("+n[1]+")</li>";
118     }
120     html += "</ul>";
122     if (ok.length === 0) {
123         html += '<br /><img src="/static/documents/img/info_icon.png"> No items can be deleted.';
124         jQuery('#delete_seedlots_confirm').prop('disabled', true);
125     }
126     else {
127         jQuery('#delete_seedlots_confirm').prop('disabled', false);
128     }
130     jQuery('#seedlot_deletion_verify').html(html);
134 </script>