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

Annotation of /SubsystemEditor/SubsysEditor.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (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 :     my $n_requests = 0;
48 :    
49 :     warn "begin loop\n";
50 :     while (($max_requests == 0 || $n_requests++ < $max_requests) &&
51 :     (my $cgi = new CGI::Fast()))
52 :     {
53 :     eval {
54 :     &main($cgi);
55 :     };
56 :    
57 :     if ($@)
58 :     {
59 :     my $error = $@;
60 :     Warn("Script error: $error") if T(SeedViewer => 0);
61 :    
62 :     print CGI::header();
63 :     print CGI::start_html();
64 :    
65 :     # print out the error
66 :     print '<pre>'.$error.'</pre>';
67 :    
68 :     print CGI::end_html();
69 :     }
70 :     }
71 :     }
72 :     else
73 :     {
74 :     my $cgi = new CGI;
75 :     eval {
76 :     &main($cgi);
77 :     };
78 :     if ($@)
79 :     {
80 :     my $error = $@;
81 :     Warn("Script error: $error") if T(SeedViewer => 0);
82 :    
83 :     print CGI::header();
84 :     print CGI::start_html();
85 :    
86 :     # print out the error
87 :     print '<pre>'.$error.'</pre>';
88 :    
89 :     print CGI::end_html();
90 :     }
91 :     }
92 :    
93 :     sub main
94 :     {
95 :     my($cgi) = @_;
96 :    
97 :     my $layout = WebLayout->new('./Html/SubsystemEditorLayout.tmpl');
98 :     $layout->add_css('./Html/SubsystemEditor.css');
99 :     $layout->add_css('./Html/default.css');
100 :    
101 :     my $menu = WebMenu->new();
102 :     $menu->add_category( 'Home', 'SubsysEditor.cgi?page=SubsystemOverview' );
103 :     $menu->add_category( 'Logout', 'SubsysEditor.cgi?page=Logout', undef, [ 'login' ] );
104 :    
105 :     my $WebApp = WebApplication->new( { id => 'SubsystemEditor',
106 :     menu => $menu,
107 :     layout => $layout,
108 :     default => 'SubsystemOverview',
109 :     cgi => $cgi,
110 :     } );
111 :    
112 :     $WebApp->show_login_user_info(1);
113 :     $WebApp->run();
114 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3