[Bio] / SubsystemEditor / SubsysEditor.cgi Repository:
ViewVC logotype

Annotation of /SubsystemEditor/SubsysEditor.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (view) (download)

1 : parrello 1.1 use strict;
2 :     use warnings;
3 :    
4 : parrello 1.2 use FIG_Config;
5 :     use lib "$FIG_Config::fig_disk/dist/current/$FIG_Config::arch/lib/WebApplication";
6 :     use lib "$FIG_Config::common_runtime/lib/SubsystemEditor";
7 :    
8 : parrello 1.1 use WebApplication;
9 :     use WebMenu;
10 :     use WebLayout;
11 :    
12 : olson 1.6 my $have_fcgi;
13 :     eval {
14 :     require CGI::Fast;
15 :     $have_fcgi = 1;
16 :     };
17 : bartels 1.3
18 : olson 1.6 if ($have_fcgi && ! $ENV{REQUEST_METHOD})
19 :     {
20 : bartels 1.3
21 : olson 1.6 #
22 :     # Precompile modules. Find where we found one, and use that path
23 :     # to walk for the rest.
24 :     #
25 :     my $mod_path = $INC{"WebComponent/Ajax.pm"};
26 :     if ($mod_path && $mod_path =~ s,WebApplication/WebComponent/Ajax\.pm$,,)
27 :     {
28 :     local $SIG{__WARN__} = sub {};
29 :     for my $what (qw(SeedViewer RAST WebApplication))
30 :     {
31 :     for my $which (qw(WebPage WebComponent DataHandler))
32 :     {
33 :     opendir(D, "$mod_path/$what/$which") or next;
34 :     my @x = grep { /^[^.]/ } readdir(D);
35 :     for my $mod (@x)
36 :     {
37 :     $mod =~ s/\.pm$//;
38 :     my $fullmod = join("::", $what, $which, $mod);
39 :     eval " require $fullmod; ";
40 :     }
41 :     closedir(D);
42 :     }
43 :     }
44 :     }
45 : bartels 1.3
46 : olson 1.6 my $max_requests = $FIG_Config::fcgi_max_requests || 50;
47 : redwards 1.7 my $nothing = $FIG_Config::fcgi_max_requests; # this is a hack to stop errors in the log
48 : olson 1.6 my $n_requests = 0;
49 :    
50 :     warn "begin loop\n";
51 :     while (($max_requests == 0 || $n_requests++ < $max_requests) &&
52 :     (my $cgi = new CGI::Fast()))
53 :     {
54 :     eval {
55 :     &main($cgi);
56 :     };
57 :    
58 :     if ($@)
59 :     {
60 :     my $error = $@;
61 :     Warn("Script error: $error") if T(SeedViewer => 0);
62 :    
63 :     print CGI::header();
64 :     print CGI::start_html();
65 :    
66 :     # print out the error
67 :     print '<pre>'.$error.'</pre>';
68 :    
69 :     print CGI::end_html();
70 :     }
71 :     }
72 :     }
73 :     else
74 :     {
75 :     my $cgi = new CGI;
76 :     eval {
77 :     &main($cgi);
78 :     };
79 :     if ($@)
80 :     {
81 :     my $error = $@;
82 :     Warn("Script error: $error") if T(SeedViewer => 0);
83 :    
84 :     print CGI::header();
85 :     print CGI::start_html();
86 :    
87 :     # print out the error
88 :     print '<pre>'.$error.'</pre>';
89 :    
90 :     print CGI::end_html();
91 :     }
92 :     }
93 :    
94 :     sub main
95 :     {
96 :     my($cgi) = @_;
97 :    
98 :     my $layout = WebLayout->new('./Html/SubsystemEditorLayout.tmpl');
99 :     $layout->add_css('./Html/SubsystemEditor.css');
100 :     $layout->add_css('./Html/default.css');
101 :    
102 :     my $menu = WebMenu->new();
103 :     $menu->add_category( 'Home', 'SubsysEditor.cgi?page=SubsystemOverview' );
104 :     $menu->add_category( 'Logout', 'SubsysEditor.cgi?page=Logout', undef, [ 'login' ] );
105 :    
106 :     my $WebApp = WebApplication->new( { id => 'SubsystemEditor',
107 :     menu => $menu,
108 :     layout => $layout,
109 :     default => 'SubsystemOverview',
110 :     cgi => $cgi,
111 :     } );
112 :    
113 :     $WebApp->show_login_user_info(1);
114 :     $WebApp->run();
115 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3