[Bio] / SeedViewer / seedviewer.cgi Repository:
ViewVC logotype

Diff of /SeedViewer/seedviewer.cgi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.29, Wed Jul 8 00:02:57 2009 UTC revision 1.38, Fri Sep 16 19:28:10 2011 UTC
# Line 10  Line 10 
10  use FIGRules;  use FIGRules;
11  use FIG_Config;  use FIG_Config;
12  use WebConfig;  use WebConfig;
13    use Data::Dumper;
14    
15    my $have_fcgi;
16  eval {  eval {
17      &main;      require CGI::Fast;
18        $have_fcgi = 1;
19    };
20    
21    if ($have_fcgi && ! $ENV{REQUEST_METHOD})
22    {
23    
24        #
25        # Precompile modules. Find where we found one, and use that path
26        # to walk for the rest.
27        #
28        my $mod_path = $INC{"WebComponent/Ajax.pm"};
29        if ($mod_path && $mod_path =~ s,WebApplication/WebComponent/Ajax\.pm$,,)
30        {
31            local $SIG{__WARN__} = sub {};
32            for my $what (qw(SeedViewer RAST WebApplication))
33            {
34                for my $which (qw(WebPage WebComponent DataHandler))
35                {
36                    opendir(D, "$mod_path/$what/$which") or next;
37                    my @x = grep { /^[^.]/ } readdir(D);
38                    for my $mod (@x)
39                    {
40                        $mod =~ s/\.pm$//;
41                        my $fullmod = join("::", $what, $which, $mod);
42                        eval " require $fullmod; ";
43                    }
44                    closedir(D);
45                }
46            }
47        }
48    
49        my $max_requests = $FIG_Config::fcgi_max_requests || 50;
50        my $n_requests = 0;
51    
52        warn "begin loop\n";
53        while (($max_requests == 0 || $n_requests++ < $max_requests) &&
54               (my $cgi = new CGI::Fast()))
55        {
56            eval {
57                &main($cgi);
58  };  };
59    
60  if ($@)  if ($@)
# Line 27  Line 69 
69      print '<pre>'.$error.'</pre>';      print '<pre>'.$error.'</pre>';
70    
71      print CGI::end_html();      print CGI::end_html();
72            }
73        }
74    }
75    else
76    {
77        my $cgi = new CGI;
78        eval {
79            &main($cgi);
80        };
81        if ($@)
82        {
83            my $error = $@;
84            Warn("Script error: $error") if T(SeedViewer => 0);
85    
86            print CGI::header();
87            print CGI::start_html();
88    
89            # print out the error
90            print '<pre>'.$error.'</pre>';
91    
92            print CGI::end_html();
93        }
94  }  }
95    
96  sub main {  sub main {
97        my($cgi) = @_;
98    
     # initialize cgi  
     my $cgi = new CGI();  
99      # Initialize tracing.      # Initialize tracing.
100      ETracing($cgi);      ETracing($cgi);
101      if (FIGRules::nmpdr_mode($cgi)) {      if (FIGRules::nmpdr_mode($cgi)) {
# Line 47  Line 109 
109          print CGI::redirect(-uri => "$FIG_Config::cgi_url/wiki/rest.cgi/NmpdrPlugin/SeedViewer$parms",          print CGI::redirect(-uri => "$FIG_Config::cgi_url/wiki/rest.cgi/NmpdrPlugin/SeedViewer$parms",
110                              -status => 301);                              -status => 301);
111      } else {      } else {
112            if ($FIG_Config::log_cgi)
113            {
114                if (open(CLOG, ">>", $FIG_Config::log_cgi))
115                {
116                    for my $p (sort $cgi->param)
117                    {
118                        print CLOG Data::Dumper->dump([$cgi->params($p)], [qq(\$params{'$p'})]);
119                    }
120                    close(CLOG);
121                }
122            }
123    
124          # initialize layout          # initialize layout
125          # Use the template file for the current mode-- NMPDR or SEED          # Use the template file for the current mode-- NMPDR or SEED
126          my $templateFile = TMPL_PATH . "/SeedViewer.tmpl";          my $templateFile = TMPL_PATH . "/SeedViewer.tmpl";
# Line 55  Line 129 
129          # Choose the body/header style sheet according to the mode.          # Choose the body/header style sheet according to the mode.
130          $layout->add_css("$FIG_Config::cgi_url/Html/seedviewer.css");          $layout->add_css("$FIG_Config::cgi_url/Html/seedviewer.css");
131          $layout->add_css("$FIG_Config::cgi_url/Html/commonviewer.css");          $layout->add_css("$FIG_Config::cgi_url/Html/commonviewer.css");
132          $layout->add_css("$FIG_Config::cgi_url/Html/default.css");          $layout->add_css("$FIG_Config::cgi_url/Html/web_app_default.css");
133          # build menu          # build menu
134          my $menu;          my $menu;
135          $menu = WebMenu->new();          $menu = WebMenu->new();
# Line 65  Line 139 
139          $menu->add_entry('&raquo;Navigate', 'Subsystems', '?page=SubsystemSelect');          $menu->add_entry('&raquo;Navigate', 'Subsystems', '?page=SubsystemSelect');
140          $menu->add_entry('&raquo;Navigate', 'Scenarios', '?page=Scenarios');          $menu->add_entry('&raquo;Navigate', 'Scenarios', '?page=Scenarios');
141          $menu->add_entry('&raquo;Navigate', 'FigFams', '?page=FigFamViewer');          $menu->add_entry('&raquo;Navigate', 'FigFams', '?page=FigFamViewer');
142            if ($FIG_Config::atomic_regulon_dir && -d $FIG_Config::atomic_regulon_dir)
143            {
144                $menu->add_entry('&raquo;Navigate', 'Atomic Regulons', '?page=AtomicRegulon&genome=all');
145            }
146          $menu->add_entry('&raquo;Navigate', 'BLAST Search', '?page=BlastRun');          $menu->add_entry('&raquo;Navigate', 'BLAST Search', '?page=BlastRun');
147            $menu->add_entry('&raquo;Navigate', 'Request a Subsystem', '?page=SubsystemPrimer');
148          if (defined($FIG_Config::teacher_db)) {          if (defined($FIG_Config::teacher_db)) {
149              $menu->add_category('&raquo;Teacher', '?page=Teach', undef, ['edit', 'problem_list'], 96);              $menu->add_category('&raquo;Teacher', '?page=Teach', undef, ['edit', 'problem_list'], 96);
150              $menu->add_entry('&raquo;Teacher', 'Class Performance', '?page=Teach');              $menu->add_entry('&raquo;Teacher', 'Class Performance', '?page=Teach');
# Line 74  Line 153 
153              $menu->add_entry('&raquo;Teacher', 'Annotation Resolve', '?page=ClassAnnotationResolve');              $menu->add_entry('&raquo;Teacher', 'Annotation Resolve', '?page=ClassAnnotationResolve');
154          }          }
155          $menu->add_category('&raquo;Help', 'http://www.theseed.org', 'help', undef, 98);          $menu->add_category('&raquo;Help', 'http://www.theseed.org', 'help', undef, 98);
156          $menu->add_entry('&raquo;Help', 'What is the SEED', 'http://www.theseed.org/wiki/Home_of_the_SEED');          $menu->add_entry('&raquo;Help', 'What is the SEED', 'http://www.theseed.org/wiki/index.php/Home_of_the_SEED');
157          $menu->add_entry('&raquo;Help', 'HowTo use the SEED Viewer', 'http://www.theseed.org/wiki/SEED_Viewer_Tutorial');          $menu->add_entry('&raquo;Help', 'HowTo use the SEED Viewer', 'http://www.theseed.org/wiki/index.php/SEED_Viewer_Tutorial');
158          $menu->add_entry('&raquo;Help', 'Submitting Data to SEED', 'http://www.theseed.org/wiki/RAST_Tutorial');          $menu->add_entry('&raquo;Help', 'Submitting Data to SEED', 'http://www.theseed.org/wiki/index.php/RAST_Tutorial');
159    
160          # check which contact info to show          # check which contact info to show
161          if (defined($FIG_Config::server_type) && ($FIG_Config::server_type eq 'MG-RAST')) {          if (defined($FIG_Config::server_type) && ($FIG_Config::server_type eq 'MG-RAST')) {
# Line 88  Line 167 
167          }          }
168          $menu->add_entry('&raquo;Help', 'Register', '?page=Register');          $menu->add_entry('&raquo;Help', 'Register', '?page=Register');
169          $menu->add_entry('&raquo;Help', 'I forgot my Password', '?page=RequestNewPassword');          $menu->add_entry('&raquo;Help', 'I forgot my Password', '?page=RequestNewPassword');
170    
171            my $default_page = $FIG_Config::seedviewer_default_home || "Home";
172    
173          # initialize application          # initialize application
174          my $WebApp = WebApplication->new( { id => 'SeedViewer',          my $WebApp = WebApplication->new( { id => 'SeedViewer',
175                                              menu     => $menu,                                              menu     => $menu,
176                                              layout   => $layout,                                              layout   => $layout,
177                                              default  => 'Home',                                              default  => $default_page,
178                                                cgi      => $cgi,
179                                            } );                                            } );
180    
181          my $prefix = "Seed Viewer - ";          my $prefix = "Seed Viewer - ";
182          $WebApp->page_title_prefix($prefix);          $WebApp->page_title_prefix($prefix);
183          $WebApp->show_login_user_info(1);          $WebApp->show_login_user_info(1);

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.38

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3