view release on metacpan or search on metacpan
lib/Bio/Graphics/Browser2.pm view on Meta::CPAN
my $self = shift;
my $source = CGI::param('source') || CGI::param('src') || CGI::path_info();
$source =~ s!\#$!!; # get rid of trailing # left by IE
$source =~ s!^/+!!; # get rid of leading & trailing / from path_info()
$source =~ s!/+$!!;
$source;
}
sub update_data_source {
my $self = shift;
my $session = shift;
my $new_source = shift;
my $old_source = $session->source || $self->default_source;
$new_source ||= $self->get_source_from_cgi();
my $source;
if ($self->valid_source($new_source)) {
$session->source($new_source);
lib/Bio/Graphics/Browser2/Render.pm view on Meta::CPAN
#
##################################################################3
sub set_default_state {
my $self = shift;
my $state = $self->state;
$self->default_state if !$state->{tracks} # always set in one form or another
or param('reset');
}
sub update_state {
my $self = shift;
warn "[$$] update_state()" if DEBUG;
return if param('gbgff'); # don't let gbgff requests update our coordinates!!!
# return if url() =~ /gbrowse_img/; # don't let gbrowse_img requests update our coordinates either!!
$self->_update_state;
}
sub _update_state {
my $self = shift;
lib/Bio/Graphics/Browser2/Render.pm view on Meta::CPAN
warn '[',Bio::Graphics::Browser2::Session->time,'] ',"[$$] remove_track_from_state($label)" if DEBUG;
delete $self->state->{features}{$label};
}
sub track_visible {
my $self = shift;
my $label = shift;
return $self->state->{features}{$label}{visible};
}
sub update_state_from_cgi {
my $self = shift;
my $state = $self->state;
warn "state = $state" if DEBUG;
$self->update_options($state);
$self->update_coordinates($state);
$self->update_region($state);
if (param('revert')) {
$self->default_tracks($state);
}
lib/Bio/Graphics/Browser2/Render.pm view on Meta::CPAN
my $self = shift;
my ($semconf,$length) = @_;
my @ranges = keys %$semconf;
for my $r (@ranges) {
my ($low,$hi) = split ':',$r;
return $r if $length >= $low && (!defined $hi || $length < $hi);
}
return;
}
sub update_options {
my $self = shift;
my $state = shift || $self->state;
my $data_source = shift || $self->data_source;
# return unless param('width'); # not submitted
$state->{width} ||= $self->setting('default width'); # working around a bug during development
$state->{grid} = 1 unless exists $state->{grid}; # to upgrade from older settings
$state->{flip} = 0; # obnoxious for this to persist
lib/Bio/Graphics/Browser2/Render.pm view on Meta::CPAN
}
else {
$state->{name} ||= '';
$state->{name} =~ s/^\s+//; # strip leading
$state->{name} =~ s/\s+$//; # and trailing whitespace
}
$self->session->modified;
}
sub update_tracks {
my $self = shift;
my $state = shift;
if (my @add = multi_param('add')) {
my @style = multi_param('style');
$self->handle_quickie(\@add,\@style);
}
# selected tracks can be set by the 'l', 'label' or 't' parameter
# the preferred parameter is 'l', because it implements correct
lib/Bio/Graphics/Browser2/Render.pm view on Meta::CPAN
# 2. If param('ref'),param('start') and param('stop') are defined, or if param('q') is defined, then we
# reset {ref,start,stop}
# 3. Otherwise, if {ref,start,stop} are defined, then
# 2a. interrogate param('span'). If span != (stop-start+1) then user has changed the zoom popup menu and we do a zoom.
# 2b. interrogate /left|right|zoom|nav|regionview|overview/, which define the various zoom and scroll buttons.
# If any of them exist, then we do the appropriate coordinate adjustment
# 3. If we did NOT change the coordinates, then we look for param('name') and use that to set the coordinates
# using a database search.
# 4. set {name} to "ref:start..stop"
sub update_coordinates {
my $self = shift;
my $state = shift || $self->state;
delete $self->{region}; # clear cached region
my $position_updated;
if (param('ref')) {
$state->{ref} = param('ref');
$state->{view_start} = param('start') if defined param('start') && param('start') =~ /^[\d-]+/;
$state->{view_stop} = param('stop') if defined param('stop') && param('stop') =~ /^[\d-]+/;
lib/Bio/Graphics/Browser2/Render.pm view on Meta::CPAN
}
}
}
# update our "name" state and the CGI parameter
$state->{name} = $self->region_string;
}
$position_updated;
}
sub update_state_from_details_mult {
my $self = shift;
my $state = $self->state;
my $view_start = $state->{view_start} || 0;
my $view_stop = $state->{view_stop} || 0;
my $details_mult = $self->details_mult;
my $length = $view_stop - $view_start;
my $length_to_load = int($length * $details_mult);
lib/Bio/Graphics/Browser2/Render.pm view on Meta::CPAN
my $click_position = $state->{region_size} * ($position_data-$padl)/$regionview_width;
my $span = $state->{stop} - $state->{start} + 1;
my ($regionview_start, $regionview_end) = $self->regionview_bounds();
$state->{start} = int($click_position - $span/2 + $regionview_start);
$state->{stop} = $state->{start} + $span - 1;
}
sub update_region {
my $self = shift;
my $state = shift || $self->state;
if ($self->setting('region segment')) {
$state->{region_size} = param('region_size')
if defined param('region_size');
$state->{region_size} = $self->setting('region segment')
unless defined $state->{region_size};
}
else {
delete $state->{region_size};
}
}
sub update_section_visibility {
my $self = shift;
my $state = shift;
for my $div (grep {/^div_visible_/} CGI::cookie()) {
my ($section) = $div =~ /^div_visible_(\w+)/ or next;
my $visibility = CGI::cookie($div);
$state->{section_visible}{$section} = $visibility;
}
}
sub update_galaxy_url {
my $self = shift;
my $state = shift;
if (my $url = param('GALAXY_URL')) {
warn "[$$] setting galaxy" if DEBUG;
$state->{GALAXY_URL} = $url;
} elsif (param('clear_galaxy')) {
warn "clearing galaxy" if DEBUG;
delete $state->{GALAXY_URL};
}
}
lib/Bio/Graphics/Browser2/Render/Slave/AWS_Balancer.pm view on Meta::CPAN
}
sub running_as_instance {
my $self = shift;
return -e '/var/lib/cloud/data/previous-instance-id'
&& head('http://169.254.169.254');
}
# update conf file with new snapshot images
sub update_data_snapshots {
my $self = shift;
my @snapshot_ids = @_;
my $timestamp = 'synchronized with local filesystem on '.localtime;
my $conf_file = $self->conf_file;
my ($user,$group) = (stat($conf_file))[4,5];
open my $in,'<',$conf_file or die "Couldn't open $conf_file: $!";
open my $out,'>',"$conf_file.new" or die "Couldn't open $conf_file: $!";
while (<$in>) {
chomp;
s/^(data_snapshots\s*=).*/$1 @snapshot_ids # $timestamp/;
lib/Bio/Graphics/Browser2/Render/Slave/AWS_Balancer.pm view on Meta::CPAN
$self->remove_slave($c);
$reconfigure++;
}
}
# we reconfigure master immediately to avoid calling instance that were terminated
$self->reconfigure_master() if $reconfigure;
}
}
# this is called to act on state changes in spot requests and instances
sub update_requests {
my $self = shift;
my @requests = $self->pending_spot_requests;
for my $sr (@requests) {
my $state = $sr->current_status;
$self->log_debug("Status of $sr is $state");
my $instance = $sr->instance;
if ($state eq 'fulfilled' && $instance && $instance->instanceState eq 'running') {
$instance->add_tag(Name => 'GBrowse Slave');
$self->log_debug("New instance $instance; testing readiness");
next unless $self->ping_slave($instance); # not ready - try again on next poll
lib/Bio/Graphics/Browser2/UserTracks.pm view on Meta::CPAN
sub get_file_id { warn "get_file_id() has been called, without properly inheriting subclass Database.pm"; }
sub filename { warn "filename() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub nowfun { warn "nowfun() has been called, without properly inheriting subclass Database.pm"; }
sub get_uploaded_files { warn "get_uploaded_files() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub get_public_files { warn "get_public_files() has been called, without properly inheriting subclass Database.pm"; }
sub get_imported_files { warn "get_imported_files() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub get_shared_files { warn "get_shared_files() has been called, without properly inheriting subclass Database.pm"; }
sub share { warn "share() has been called, without properly inheriting subclass Database.pm"; }
sub unshare { warn "unshare() has been called, without properly inheriting subclass Database.pm"; }
sub field { warn "field() has been called, without properly inheriting subclass Database.pm"; }
sub update_modified { warn "update_modified() has been called, without properly inheriting subclass Database.pm"; }
sub created { warn "created() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub modified { warn "modified() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub description { warn "description() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub add_file { warn "add_file() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub delete_file { warn "delete_file() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub is_imported { warn "is_imported() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub permissions { warn "permissions() has been called, without properly inheriting subclass Database.pm"; }
sub is_mine { warn "is_mine() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub owner { warn "owner() has been called, without properly inheriting a subclass (like Filesystem.pm or Database.pm)"; }
sub is_shared_with_me { warn "is_shared_with_me() has been called, without properly inheriting subclass Database.pm"; }
lib/Bio/Graphics/Browser2/UserTracks/Database.pm view on Meta::CPAN
$value =~ s/\s+$//;
my $result = $uploadsdb->do("UPDATE uploads SET $field = ? WHERE trackid = ?", undef, $value, $file);
$self->update_modified($file);
return $result;
} else {
return $uploadsdb->selectrow_array("SELECT $field FROM uploads WHERE trackid = ?", undef, $file);
}
}
# Update Modified (File ID[, User ID]) - Updates the modification date/time of the specified file to right now.
sub update_modified {
my $self = shift;
my $uploadsdb = $self->{uploadsdb};
my $file = shift or return;
my $now = $self->nowfun;
# Do not swap out this line for a field() call, since it's used inside field().
return $uploadsdb->do("UPDATE uploads SET modification_date = $now WHERE trackid = " . $uploadsdb->quote($file));
}
# Created (File ID) - Returns creation date of $file, cannot be set.
sub created {