use strict; use warnings; no warnings 'once'; use DBMaster; use WebApplication; use WebMenu; use WebLayout; use Tracer; use FIGRules; use FIG_Config; eval { &main; }; if ($@) { my $cgi = new CGI(); print $cgi->header(); print $cgi->start_html(); # print out the error print '
'.$@.''; print $cgi->end_html(); } sub main { # initialize cgi my $cgi = new CGI(); ETracing($cgi); # initialize layout # Use the template file for the current mode-- NMPDR or SEED my $templateFile = (FIGRules::nmpdr_mode($cgi) ? './Html/NmpdrViewer.tmpl' : './Html/SeedViewer.tmpl'); Trace("Template file is $templateFile") if T(3); my $layout = WebLayout->new($templateFile); # Start with the normal style. $layout->add_css('./Html/default.css'); # Choose the body/header style sheet according to the mode. if (FIGRules::nmpdr_mode($cgi)) { # NMPDR mode. $layout->add_css('./Html/nmpdrviewer.css'); # Show the NMPDR version in the header. $layout->set_variable(VERSION => "Sprout version $FIG_Config::nmpdr_version on $ENV{HTTP_HOST}."); } else { # SEED mode. $layout->add_css('./Html/seedviewer.css'); } # Add the common styles. $layout->add_css('./Html/commonviewer.css'); # build menu my $menu; # For now, NMPDR does not use the 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', 'Search by', '?page=Home'); $menu->add_entry('»Navigate', ' - BLAST', '?page=BlastRun'); $menu->add_entry('»Navigate', ""); 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('»Admin', '?page=Admin', undef, ['edit', 'scope', '*'], 99); if (FIGRules::nmpdr_mode($cgi)) { $menu->add_category('»Help', "$FIG_Config::nmpdr_site_url/content/help.php", 'help', undef, 98); $menu->add_entry('»Help', 'Searching NMPDR', "$FIG_Config::nmpdr_site_url/content/find.php"); $menu->add_entry('»Help', 'SEED Viewer Tutorial', 'http://www.theseed.org/wiki/SEED_Viewer_Tutorial'); $menu->add_entry('»Help', 'Contact', "$FIG_Config::nmpdr_site_url/content/contact.php"); } else { $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'); $menu->add_entry('»Help', 'Contact', 'http://www.theseed.org/wiki/Contact'); $menu->add_entry('»Help', 'Register', '?page=Register'); } # initialize application my $WebApp = WebApplication->new( { id => 'SeedViewer', menu => $menu, layout => $layout, default => 'Home', } ); $WebApp->page_title_prefix('SEED Viewer - '); $WebApp->show_login_user_info(1); my $site_meter = $FIG_Config::site_meter; unless (defined($site_meter)) { $site_meter = 0; } $WebApp->site_meter($site_meter); # run application $WebApp->run(); }