use strict; use warnings; no warnings 'once'; use DBMaster; use WebApplication; use WebMenu; use WebLayout; use Tracer; use FIGRules; use FIG_Config; use WebConfig; eval { &main; }; if ($@) { my $error = $@; Warn("Script error: $error") if T(SeedViewer => 0); print CGI::header(); print CGI::start_html(); # print out the error print '
'.$error.'
'; print CGI::end_html(); } sub main { # initialize cgi my $cgi = new CGI(); # Initialize tracing. ETracing($cgi); if (FIGRules::nmpdr_mode($cgi)) { Trace("NMPDR mode selected.") if T(3); my $parms = $cgi->query_string(); if ($parms) { $parms = "?$parms"; } else { $parms = "?page=Home"; } print CGI::redirect(-uri => "$FIG_Config::cgi_url/wiki/rest.cgi/NmpdrPlugin/SeedViewer$parms", -status => 301); } else { # initialize layout # Use the template file for the current mode-- NMPDR or SEED my $templateFile = TMPL_PATH . "/SeedViewer.tmpl"; Trace("Template file is $templateFile") if T(3); my $layout = WebLayout->new($templateFile); # Choose the body/header style sheet according to the mode. $layout->add_css("$FIG_Config::cgi_url/Html/seedviewer.css"); $layout->add_css("$FIG_Config::cgi_url/Html/commonviewer.css"); $layout->add_css("$FIG_Config::cgi_url/Html/default.css"); # build menu my $menu; $menu = WebMenu->new(); $menu->add_category('»Navigate', '?page=Home'); $menu->add_entry('»Navigate', 'Startpage', '?page=Home'); $menu->add_entry('»Navigate', 'Organisms', '?page=OrganismSelect'); $menu->add_entry('»Navigate', 'Subsystems', '?page=SubsystemSelect'); $menu->add_entry('»Navigate', 'Scenarios', '?page=Scenarios'); $menu->add_entry('»Navigate', 'FigFams', '?page=FigFamViewer'); $menu->add_entry('»Navigate', 'BLAST Search', '?page=BlastRun'); if (defined($FIG_Config::teacher_db)) { $menu->add_category('»Teacher', '?page=Teach', undef, ['edit', 'problem_list'], 96); $menu->add_entry('»Teacher', 'Class Performance', '?page=Teach'); $menu->add_entry('»Teacher', 'Class Management', '?page=ManageClass'); $menu->add_entry('»Teacher', 'Problem Sets', '?page=ManageProblemSets'); $menu->add_entry('»Teacher', 'Annotation Resolve', '?page=ClassAnnotationResolve'); } $menu->add_category('»Help', 'http://www.theseed.org', 'help', undef, 98); $menu->add_entry('»Help', 'What is the SEED', 'http://www.theseed.org/wiki/Home_of_the_SEED'); $menu->add_entry('»Help', 'HowTo use the SEED Viewer', 'http://www.theseed.org/wiki/SEED_Viewer_Tutorial'); $menu->add_entry('»Help', 'Submitting Data to SEED', 'http://www.theseed.org/wiki/RAST_Tutorial'); # check which contact info to show if (defined($FIG_Config::server_type) && ($FIG_Config::server_type eq 'MG-RAST')) { $menu->add_entry('»Help', 'Contact', 'mailto:mg-rast@mcs.anl.gov', undef, ['login']); } elsif (defined($FIG_Config::server_type) && ($FIG_Config::server_type eq 'RAST')) { $menu->add_entry('»Help', 'Contact', 'mailto:rast@mcs.anl.gov', undef, ['login']); } else { $menu->add_entry('»Help', 'Contact', 'mailto:info@theseed.org'); } $menu->add_entry('»Help', 'Register', '?page=Register'); $menu->add_entry('»Help', 'I forgot my Password', '?page=RequestNewPassword'); # initialize application my $WebApp = WebApplication->new( { id => 'SeedViewer', menu => $menu, layout => $layout, default => 'Home', } ); my $prefix = "Seed Viewer - "; $WebApp->page_title_prefix($prefix); $WebApp->show_login_user_info(1); # run application $WebApp->run(); } }