package SGN::View::Mason::Commands;
use strict;
use vars qw($m $c);
HTML::Mason::Component::FileBased->new(
'code' => sub {
use utf8; local $SGN::View::Mason::Commands::m = $HTML::Mason::Commands::m;
HTML::Mason::Exception::Params->throw
    ( error =>
      "Odd number of parameters passed to component expecting name/value pairs"
    ) if @_ % 2;
my ( @locations, $breeding_programs, $preferred_species, $editable_stock_props, $editable_stock_props_definitions, $timestamp, $management_factor_types, $design_types );
{
    my %pos;
    for ( my $x = 0; $x < @_; $x += 2 )
    {
        $pos{ $_[$x] } = $x + 1;
    }

    foreach my $arg ( qw( breeding_programs preferred_species timestamp ) )
    {
        HTML::Mason::Exception::Params->throw
            ( error => "no value sent for required parameter '$arg'" )
                unless exists $pos{$arg};
    }
#line 3 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
     @locations = exists $pos{'locations'} ? HTML::Mason::Tools::coerce_to_array( $_[ $pos{'locations'} ], '@locations') :  ();
#line 4 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
    $breeding_programs = $_[ $pos{'breeding_programs'} ];
#line 5 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
    $preferred_species = $_[ $pos{'preferred_species'} ];
#line 6 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
     $editable_stock_props = exists $pos{'editable_stock_props'} ? $_[ $pos{'editable_stock_props'} ] :  {};
#line 7 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
     $editable_stock_props_definitions = exists $pos{'editable_stock_props_definitions'} ? $_[ $pos{'editable_stock_props_definitions'} ] :  {};
#line 8 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
    $timestamp = $_[ $pos{'timestamp'} ];
#line 9 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
     $management_factor_types = exists $pos{'management_factor_types'} ? $_[ $pos{'management_factor_types'} ] :  ();
#line 10 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
     $design_types = exists $pos{'design_types'} ? $_[ $pos{'design_types'} ] :  ();
}
$m->debug_hook( $m->current_comp->path ) if ( HTML::Mason::Compiler::IN_PERL_DB() );

#line 1 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '
' );
#line 12 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '
' );
#line 13 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/util/import_javascript.mas', classes => [ 'jstree.dist.jstree', 'bootstrap_min.js', 'jquery.iframe-post-form', 'CXGN.List', 'CXGN.BreedersToolbox.AddTrial','CXGN.BreedersToolbox.UploadTrial','CXGN.BreedersToolbox.Trial', 'CXGN.Trial','CXGN.BreedersToolbox.GenotypingTrial','CXGN.BreedersToolbox.Accessions', 'CXGN.BreedersToolbox.UploadPedigrees','CXGN.BreedersToolbox.Crosses','CXGN.BreedersToolbox.FieldBook','CXGN.BreedersToolbox.UploadPhenotype', 'CXGN.BreederSearch', 'CXGN.Trial','CXGN.TrialTreeFolders' ]   
); #line 13 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '

' );
#line 15 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/util/import_css.mas', paths => ['/static/documents/inc/jstree_theme/jstree-bstheme-min.css']   
); #line 15 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '

' );
#line 17 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/folder/folder_set.mas', project_type => 'field_trial'   
); #line 17 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '
' );
#line 18 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/folder/folder_new.mas', project_type => 'field_trial'   
); #line 18 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '
' );
#line 19 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/folder/folder_move.mas', project_type => 'field_trial'   
); #line 19 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '
' );
#line 20 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/folder/folders_edit.mas', folder_tree_type => 'Trial', folder_tree_identifier => 'trial_list', folder_tree_refresh_name => 'refresh_jstree_html'   
); #line 20 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '

' );
#line 22 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/trial/trial_create_dialogs.mas', locations => \@locations, breeding_programs => $breeding_programs, management_factor_types => $management_factor_types, design_types => $design_types   
); #line 22 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '

' );
#line 24 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/trial/download_trials_phenotypes_dialog.mas'  
); #line 24 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '

' );
#line 26 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/trial/trial_upload_dialogs.mas', locations => \@locations, breeding_programs => $breeding_programs, design_types => $design_types   
); #line 26 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '
' );
#line 27 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/add_accessions_dialogs.mas', preferred_species=>$preferred_species, editable_stock_props=>$editable_stock_props, editable_stock_props_definitions=>$editable_stock_props_definitions   
); #line 27 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '
' );
#line 28 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/upload_seedlots_dialogs.mas'  
); #line 28 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '
' );
#line 29 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->comp(   '/breeders_toolbox/add_seedlot_dialogs.mas', timestamp=>$timestamp   
); #line 29 "/home/production/cxgn/sgn/mason/breeders_toolbox/trialtreefolders.mas"
$m->print( '

<table class="table table-bordered">
  <thead>
    <tr>
      <th>Information</th>
      <th>Breeding Programs -- Folders -- Trials&nbsp;&nbsp;&nbsp;&nbsp;<button class="btn btn-sm btn-default" id="refresh_jstree_html_trialtree_button" name="refresh_jstree_html">Refresh</button></th>
    </tr>
  </thead>
  <tbody>
  <tr>
    <td>
        <h4>Search</h4>
        <input type="text" class="form-control input-sm" id="trial_tree_search" placeholder="Search" />
        <hr>
      <h4>Download Trial Phenotypes</h4>
      <h5><i>Select multiple trials by holding \'Ctrl\'.</i></h5>
      <button class="btn btn-primary" id="trials_download_phenotypes_button" disabled="disabled" title="First Select Trial(s) to Download">Download Phenotypes</button>
      <hr>
      <h5><i>Double click<br />trial (&nbsp;<span class="glyphicon glyphicon-leaf text-success"></span>&nbsp;) or folder (&nbsp;<span class="glyphicon glyphicon-folder-open text-danger"></span>&nbsp;)<br/>to view detail page.</i></h5>
      <h5><i>Breeding programs (&nbsp;<span class="glyphicon glyphicon-briefcase text-info"></span>&nbsp;)</i></h5>
      <h5><i>Analyses (&nbsp;<span class="glyphicon glyphicon-stats text-success"></span>&nbsp;)</i></h5>
      <h5><i>Sampling trials (&nbsp;<span class="glyphicon glyphicon-th text-success"></span>&nbsp;)</i></h5>
      <hr>
      <h4>Folders</h4>
      <button class="btn btn-sm btn-default" id="new_folder_dialog_link">Create new folder</button><br/><br/>
      <button class="btn btn-sm btn-default" id="open_folder_dialog_link">Move trial(s) to folder</button><br/><br/>
      <button class="btn btn-sm btn-default" id="move_folder_dialog_link">Move folder</button>

      <div id="folder_edit_options" style="display:none">
          <hr>
          <h5><i>Select multiple folders by holding \'Ctrl\'.</i></h5>
          <button class="btn btn-primary" id="edit_folders_button" title="First Select Folder(s) to Edit">Edit Folder(s)</button>
          <br/>
      </div>

      <!--<button id="delete" disabled="disabled" >Delete</button -->
      <br />
    </td>
    <td>
        <div id="trial_list" >[loading...]</div>
    </td>
  </tr>
  </tbody>
</table>


<script>

  jQuery.noConflict();

  jQuery(document).ready(function($) {

    jQuery.ajax( {
      url: \'/ajax/breeders/get_trials_with_folders_cached?type=trial\',
      success: function(response) {
        var html = \'<ul>\'+response.html+\'</ul>\';

        jQuery(\'#trial_list\').html(html);
        //console.log(html);
        jQuery(\'#trial_list\').jstree( {
            "core": { \'themes\': { \'name\': \'proton\', \'responsive\': true}},
            "valid_children" : [ "folder", "trial", "breeding_program", "analyses" ],
            "types" : {
                "breeding_program" : {
                    "icon": \'glyphicon glyphicon-briefcase text-info\',
                },
                "folder" : {
                    "icon": \'glyphicon glyphicon-folder-open text-danger\',
                },
                "trial" : {
                    "icon": \'glyphicon glyphicon-leaf text-success\',
                },
                "analyses" : {
                    "icon": \'glyphicon glyphicon-stats text-success\',
                },
                "sampling_trial" : {
                    "icon": \'glyphicon glyphicon-th text-success\',
                },
            },
            "search" : {
                 "case_insensitive" : true,
             },
          "plugins" : ["html_data","types","search"],

        });

      },
      error: function(response) {
        alert("An error occurred while loading the trial data.");
      }
  });

  jQuery(\'#refresh_jstree_html_trialtree_button\').click(function(){
      jQuery.ajax( {
        url: \'/ajax/breeders/get_trials_with_folders_cached?type=trial\',
        success: function(response) {
          var html = \'<ul>\'+response.html+\'</ul>\';

          jQuery(\'#trial_list\').html(html);
          //console.log(html);
          jQuery(\'#trial_list\').jstree( {
              "core": { \'themes\': { \'name\': \'proton\', \'responsive\': true}},
              "valid_children" : [ "folder", "trial", "breeding_program", "analyses", "sampling_trial" ],
              "types" : {
                  "breeding_program" : {
                      "icon": \'glyphicon glyphicon-briefcase text-info\',
                  },
                  "folder" : {
                      "icon": \'glyphicon glyphicon-folder-open text-danger\',
                  },
                  "trial" : {
                      "icon": \'glyphicon glyphicon-leaf text-success\',
                  },
                  "analyses" : {
                      "icon": \'glyphicon glyphicon-stats text-success\',
                  },
                  "sampling_trial" : {
                      "icon": \'glyphicon glyphicon-th text-success\',
                  }
              },
              "search" : {
                   "case_insensitive" : true,
               },
            "plugins" : ["html_data","types","search"],

          });

        },
        error: function(response) {
          alert("An error occurred while loading the trial data.");
        }
    });
  });

    jQuery("#trial_tree_search").keyup(function() {
        var v = jQuery("#trial_tree_search").val();
        jQuery("#trial_list").jstree(true).search(v);
    });



  jQuery(\'#trial_list\').on("changed.jstree", function (e, data) {
    //console.log(data);
       if ($(\'#trial_list\').jstree(\'is_leaf\', data.node) && data.node.data.jstree.type == \'trial\') {
         jQuery(\'#trials_download_phenotypes_button\').removeAttr(\'disabled\');
         jQuery("#folder_edit_options").hide();
       }
       else if ($(\'#trial_list\').jstree(\'is_leaf\', data.node) && data.node.data.jstree.type == \'folder\') {
         jQuery(\'#trials_download_phenotypes_button\').attr(\'disabled\', \'disabled\');
         jQuery("#folder_edit_options").show();
       }
       else {
         jQuery(\'#trials_download_phenotypes_button\').attr(\'disabled\', \'disabled\');
         jQuery("#folder_edit_options").hide();
       }
    });


    $("#trial_list").delegate("li", "dblclick", function(event){
      var node = $("#trial_list").jstree("get_node", this);
      //console.log(node);
      if (node.id.substr(0,1) !== \'j\') {
        if (node.type == \'folder\') {
            window.open(\'/folder/\'+node.id);
            event.stopPropagation();
        } else if (node.type == \'breeding_program\') {
            window.open(\'/breeders/program/\'+node.id);
            event.stopPropagation();
        } else if (node.type == \'analyses\') {
            window.open(\'/analyses/\'+node.id);
            event.stopPropagation();
        } else if (node.type == \'trial\') {
            window.open(\'/breeders_toolbox/trial/\'+node.id);
            event.stopPropagation();
        } else if (node.type == \'sampling_trial\') {
            window.open(\'/breeders_toolbox/trial/\'+node.id);
            event.stopPropagation();
        }
      }
    });
  });

</script>
' );
;return;
},
'declared_args' => {
  '$breeding_programs' => { default => undef },
  '$design_types' => { default => ' ()' },
  '$editable_stock_props' => { default => ' {}' },
  '$editable_stock_props_definitions' => { default => ' {}' },
  '$management_factor_types' => { default => ' ()' },
  '$preferred_species' => { default => undef },
  '$timestamp' => { default => undef },
  '@locations' => { default => ' ()' }
},
'load_time' => 1763106045,

)
;