added the list of management factor types in controllers
[sgn.git] / mason / breeders_toolbox / folder / folder_set.mas
blobf994c5fcbe41efb437d8260696390d8b44ff3430
2 <%args>
3 $project_type => undef #Trial or Cross or Genotyping Plate
4 $trial_id => undef
5 $trial_name => undef
6 $folder_id => undef
7 $folder_name => undef
8 $breeding_program_id => undef
9 $breeding_program_name => undef
10 $folder_for_trials => undef
11 $folder_for_crosses => undef
12 $folder_for_genotyping_trials => undef
13 </%args>
15 % my $get_field_trials = $folder_for_trials ? 1 : 0;
16 % my $get_crossing_trials = $folder_for_crosses ? 1 : 0;
17 % my $get_genotyping_trials = $folder_for_genotyping_trials ? 1 : 0;
18 % my $dialog_type;
19 % if ($project_type eq 'Trials and Analyses') { $get_field_trials = 1; $folder_for_trials = 1; $dialog_type = 'Trial(s) and Analyses'}
20 % if ($project_type eq 'Genotyping Plate') { $get_genotyping_trials = 1; $folder_for_genotyping_trials = 1; $dialog_type = 'Genotyping Plate(s)'}
21 % if ($project_type eq 'Cross') { $get_crossing_trials = 1; $folder_for_crosses = 1; $dialog_type = 'Crossing Experiment(s)' }
22 % if (!$project_type) { $dialog_type = 'Trial(s)' }
24 <& /util/import_javascript.mas, classes => [ 'CXGN.TrialTreeFolders' ] &>
26 <div class="modal fade" id="set_folder_dialog" name="set_folder_dialog" tabindex="-1" role="dialog" aria-labelledby="setFolderDialog">
27   <div class="modal-dialog" role="document">
28     <div class="modal-content">
29       <div class="modal-header">
30         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
31         <h4 class="modal-title" id="setFolderDialog">Place <% $dialog_type %> in folder</h4>
32       </div>
33       <div class="modal-body">
34         <div class="container-fluid">
36                <form class="form-horizontal" role="form" method="post" id="set_folder_dialog_form" name="set_folder_dialog_form">
38          <div class="form-group">
39              <label class="col-sm-3 control-label">Breeding Program: </label>
40              <div class="col-sm-9" >
41                <div id="folder_set_breeding_program_select_div">
42 % if ($breeding_program_id) {
43                <input type="text" class="form-control" value="<% $breeding_program_name %>" disabled/>
44                <input type="hidden" id="folder_set_breeding_program_id" name="folder_set_breeding_program_id" value="<% $breeding_program_id %>" />
45 % } else {
46  [Loading...]
47 % }
48                </div>
49              </div>
50          </div>
51          <hr>
52          <div class="form-group">
53              <label class="col-sm-3 control-label"><% $dialog_type %> Folders: </label>
54              <div class="col-sm-9" >
55                <div id="trial_folder_select_div">
56 % if ($folder_id) {
57                 <input type="text" class="form-control" value="<% $folder_name %>" disabled/>
58                 <input type="hidden" id="html_select_folder_for_trial" name="html_select_folder_for_trial" value="<% $folder_id %>" />
59 % } else {
60  [Loading...]
61 % }
62                </div>
63              </div>
64          </div>
65                 <div class="form-group">
66               <label class="col-sm-3 control-label"><% $dialog_type %>: </label>
67               <div class="col-sm-9" >
68                 <div id="select_trial_for_folder">
69 % if ($trial_id) {
70                 <input type="text" class="form-control" value="<% $trial_name %>" disabled/>
71                 <input type="hidden" id="html_select_trial_for_folder" name="html_select_trial_for_folder" value="<% $trial_id %>" />
72 % } else {
73   [Loading...]
74 % }
75                 </div>
76               </div>
77                 </div>
78                </form><br/>
79         </div>
80       </div>
81       <div class="modal-footer">
82         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
83               <button type="button" class="btn btn-primary" name="set_trial_folder" id="set_trial_folder" title="Save a trial to a folder">Save</button>
84       </div>
85     </div>
86   </div>
87 </div>
89 <div class="modal fade" id="folder_set_success_dialog_message" name="folder_set_success_dialog_message" tabindex="-1" role="dialog" aria-labelledby="setFolderSuccessDialog">
90     <div class="modal-dialog" role="document">
91         <div class="modal-content">
92             <div class="modal-header" style="text-align: center">
93                 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
94                 <h4 class="modal-title" id="setFolderSuccessDialog"><% $project_type %> Move Successful</h4>
95             </div>
96             <div class="modal-body">
97                 <div class="container-fluid">
98                     <p>
99                         <span class="ui-icon ui-icon-circle-check" style="float: left; margin: 0 7px 50px 0;"></span>
100                         The <% $project_type %> was moved into the folder successfully
101                     </p>
102                 </div>
103             </div>
104             <div class="modal-footer">
105                 <button id="close_set_folder_success_dialog" type="button" class="btn btn-default" data-dismiss="modal">Close</button>
106             </div>
107         </div>
108     </div>
109 </div>
111 <script defer="defer">
112 jQuery(document).ready(function() {
114   if(jQuery("#folder_set_breeding_program_id").length == 0) {
115     get_select_box('breeding_programs', 'folder_set_breeding_program_select_div', { 'name' : 'folder_set_breeding_program_id', 'id' : 'folder_set_breeding_program_id' });
116   }
118   jQuery('#open_folder_dialog_link').click( function() {
119     jQuery('#set_folder_dialog').modal("show");
120     if(jQuery("#html_select_folder_for_trial").length == 0) {
121       breeding_program_change_folders();
122     }
123     if(jQuery("#html_select_trial_for_folder").length == 0) {
124       breeding_program_change_trials();
125     }
126   });
128   jQuery("#folder_set_breeding_program_select_div").on('change', "#folder_set_breeding_program_id", function() {
129     breeding_program_change_folders();
130     breeding_program_change_trials();
131   });
133   jQuery('#set_trial_folder').click( function() {
134     jQuery('#trial_folder_div').html('[Updating...]');
135     set_trial_folder();
136     display_trial_folder();
137     jQuery('#set_folder_dialog').modal("hide");
138   });
140   jQuery('#folder_set_success_dialog_message').on('hidden.bs.modal', function () {
141       location.reload();
142   })
146 function breeding_program_change_folders() {
147   var breeding_program_id = jQuery("#folder_set_breeding_program_id").val();
148   var folder_for_trials;
149   var folder_for_crosses;
150   var folder_for_genotyping_trials;
151 % if ($folder_for_trials){
152   folder_for_trials = true;
153 % }
154 % if ($folder_for_crosses){
155     folder_for_crosses = true;
156 % }
157 % if ($folder_for_genotyping_trials){
158     folder_for_genotyping_trials = true;
159 % }
160   get_select_box('folders', 'trial_folder_select_div', { 'name' : 'html_select_folder_for_trial', 'id' : 'html_select_folder_for_trial', 'breeding_program_id' : breeding_program_id, 'empty' : 1, 'folder_for_trials' : folder_for_trials, 'folder_for_crosses' : folder_for_crosses, 'folder_for_genotyping_trials': folder_for_genotyping_trials });
163 function breeding_program_change_trials() {
164   var breeding_program_id = jQuery("#folder_set_breeding_program_id").val();
165   var get_field_trials = <% $get_field_trials %>;
166   var include_analyses = 0;
167   if (get_field_trials == 1) {
168     include_analyses = 1;
169   }
170   get_select_box('projects', 'select_trial_for_folder', { 'name' : 'html_select_trial_for_folder', 'id' : 'html_select_trial_for_folder', 'breeding_program_id' : breeding_program_id, 'size':'20', 'get_field_trials':get_field_trials, 'get_crossing_trials':<% $get_crossing_trials %>, 'get_genotyping_trials':<% $get_genotyping_trials %>, 'include_analyses':include_analyses, 'multiple': true });
173 function set_trial_folder() {
174   var trial_ids = jQuery('#html_select_trial_for_folder').val();
175   console.log(trial_ids);
176   var folder_id = jQuery('#html_select_folder_for_trial').val();
178   if ( jQuery.isArray(trial_ids) ) {
179     var errors = 0;
180     jQuery.each(trial_ids, function(index, value) {
181         //console.log(value);
182         if (value == folder_id) {
183           alert("Cannot make a folder its own parent.");
184           return;
185         }
186         jQuery.ajax( {
187             url: '/ajax/folder/'+value+'/associate/parent/'+folder_id,
188             success: function(response) {
189                 if (response.error) {
190                     errors = 1;
191                     alert(response.error);
192                 }
193             },
194             error: function(response) {
195                 errors = 1;
196                 alert('An error occurred trying to associate a folder to the trial.');
197             }
198         });
199     });
200     if (errors == 0) {
201 %  if ($project_type eq 'Trial') {
202                     refreshTrailJsTree(0);
203 %  } elsif ($project_type eq 'Cross') {
204                     refreshCrossJsTree(0);
205 %  } elsif ($project_type eq 'Genotyping Plate') {
206                     refreshGenotypingTrialJsTree(0);
207 %  }
208         jQuery('#folder_set_success_dialog_message').modal("show");
209     }
210   } else {
211       if (trial_ids == folder_id) {
212         alert("Cannot make a folder its own parent.");
213         return;
214       }
215       jQuery.ajax( {
216           url: '/ajax/folder/'+trial_ids+'/associate/parent/'+folder_id,
217           success: function(response) {
218               if (response.error) {
219                   alert(response.error);
220               }
221               else {
222                     jQuery('#folder_set_success_dialog_message').modal("show");
223               }
224           },
225           error: function(response) {
226               alert('An error occurred trying to associate a folder to the trial.');
227           }
228       });
229   }
232 function display_trial_folder() {
233     var trial_id = jQuery('#html_select_trial_for_folder').val();
234     if (!jQuery.isArray(trial_id) ) {
235         jQuery.ajax( {
236             url: '/ajax/breeders/trial/'+trial_id+'/folder',
237             success: function(response) {
238                 jQuery('#trial_folder_div').html("<a href='/folder/"+response.folder[0]+"'>"+response.folder[1]+"</a>");
239             },
240             error: function(response) {
241                 jQuery('#trial_folder_div').html('[ Protocol error. ]');
242             }
243         });
244     }
247 </script>