GBrowse

 view release on metacpan or  search on metacpan

lib/Bio/Graphics/Browser2/Render.pm  view on Meta::CPAN

      -value   => $id,
      -path    => $path,
      -httponly=> 1,
      -expires => '+'.$globals->time2sec($globals->remember_settings_time).'s',
      );
  return $cookie;
}

sub auth_cookie {
    my $self = shift;
    my $path = url(-absolute => 1);
    $path    =~ s!gbrowse/?$!!;
    my $auth     = (shift || param('authority')) or return;
    my $globals  = $self->globals;
    my $remember = $self->session->remember_auth;
    my @args = (-name => 'authority',
		-value=> $auth,
		-httponly=>1,
		-path => $path);
    if ($remember) {
	push @args,(-expires => '+'.$globals->time2sec($globals->remember_settings_time).'s');
    }
    return CGI::Cookie->new(@args);
}

# for backward compatibility
sub create_cookie { 
    my $self = shift;
    return [
	$self->state_cookie,
	$self->auth_cookie
	];
}

# For debugging
sub allparams {
  my $args = {};
  for my $key (param()) {
    $args->{$key} = param($key)
  }
  "<pre>".Data::Dumper::Dumper($args)."</pre>";
}
#print "All params:<br>\n".dumperonscreen($self->allparams);

sub render_body {
  my $self     = shift;

  warn "render_body()" if DEBUG;

  my $region   = $self->region;
  my $features = $region->features;
  my $settings = $self->state;
  my $source   = $self->data_source;

  my $title    = $self->generate_title($features);

  my $output;
  my @post_load = $self->get_post_load_functions;
  $output .= $self->render_html_start($title,@post_load);
  $output .= $self->render_user_header;
  $output .= $self->render_busy_signal;
  $output .= $self->render_actionmenu;
  $output .= $self->render_top($title,$features);

  my $main_page   .= $self->render_navbar($region->seg);

  if ($region->feature_count > 1) {
      $main_page .= $self->render_multiple_choices($features,$self->state->{name});
      $main_page .= $self->render_select_track_link;
  }

  elsif (my $seg = $region->seg) {
      $main_page .= $self->render_panels($seg,{overview   => $source->show_section('overview'),
					       regionview => $source->show_section('region'),
					       detailview => $source->show_section('detail')});
      $main_page .= $self->render_galaxy_form($seg);
  }

  elsif ($region->feature_count > 0) { # feature but no segment? Admin error
      my $message = $self->translate('CHROM_NOT_FOUND');
      my $details = $self->translate('CHROM_NOT_FOUND_DETAILS',  $features->[0]->display_name, $features->[0]->seq_id);
      $main_page .= script({-type=>'text/javascript'},"Controller.show_error('$message','$details')")
  }
  
  my $tracks        = $self->render_tracks_section;
  my $snapshots     = $self->snapshot_manager->render_snapshots_section;
  my $community     = $self->user_tracks->database? $self->render_community_tracks_section : "";
  my $custom        = $self->render_custom_tracks_section;
  my $global_config = $self->render_global_config;

  $output .= $self->render_tabbed_pages($main_page,$tracks,$snapshots,$community,$custom,$global_config);
  $output .= $self->login_manager->render_confirm;
  $output .= $self->render_bottom($features);

  print $output;
}

sub render_tracks_section {
    my $self = shift;
    return $self->render_toggle_track_table;
}

sub generate_title {
    my $self     = shift;
    my $features = shift;

    my $dsn         = $self->data_source;
    my $state       = $self->state;
    my $description = $dsn->description;
    my $divider     = $self->data_source->unit_divider;

    return $description unless $features;
    return !$features || !$state->{name}     ? $description
         : @$features == 0                   ? $self->translate('NOT_FOUND',$state->{name})
	 : @$features == 1 ? "$description: ".
				   $self->translate('SHOWING_FROM_TO',
					     scalar $dsn->unit_label($state->{view_stop} - $state->{view_start}+1),
					     $state->{ref},
					     $dsn->commas($state->{view_start}),
					     $dsn->commas($state->{view_stop}))
	 : $description;



( run in 0.405 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )