package EnsEMBL::Web::Command::Account::LoadConfig; ### Sets a configuration as the one in current use use strict; use warnings; use Class::Std; use EnsEMBL::Web::RegObj; use EnsEMBL::Web::Data::User; use base 'EnsEMBL::Web::Command'; { sub process { my $self = shift; my $object = $self->object; my @scripts = qw(contigview cytoview); ## This bit only applies if you want to load the config and not jump to the bookmark saved with it my $url = $object->param('url'); if ($url) { my ($host, $params) = split(/\?/, $url); my (@parameters) = split(/;/, $params); my $new_params = ""; foreach my $p (@parameters) { if ($p !~ /bottom/) { $new_params .= ";" . $p; } } $new_params =~ s/^;/\?/; $url = $host . $new_params; } my $session = $EnsEMBL::Web::RegObj::ENSEMBL_WEB_REGISTRY->get_session; $session->set_input($object); my $configuration = EnsEMBL::Web::Data::Record::Configuration::User->new($object->param('id')); my $string = $configuration->viewconfig; my $r = Apache2::RequestUtil->request(); $session->create_session_id($r); foreach my $script_name (@scripts) { warn "SETTING CONFIG ", $object->param('id'), " FOR SCRIPT: " , $script_name; $session->set_view_config_from_string($script_name, $string); } my $new_param = {'id' => $object->param('id')}; if ($url) { $new_param->{'url'} = $url; } $object->redirect($self->url('/Account/SetConfig', $new_param );); } } 1;