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

Diff of /SubsystemEditor/SubsysEditor.cgi

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

revision 1.2, Mon Jul 16 20:07:16 2007 UTC revision 1.6, Thu Jan 27 22:37:23 2011 UTC
# Line 5  Line 5 
5  use lib "$FIG_Config::fig_disk/dist/current/$FIG_Config::arch/lib/WebApplication";  use lib "$FIG_Config::fig_disk/dist/current/$FIG_Config::arch/lib/WebApplication";
6  use lib "$FIG_Config::common_runtime/lib/SubsystemEditor";  use lib "$FIG_Config::common_runtime/lib/SubsystemEditor";
7    
 use DBMaster;  
8  use WebApplication;  use WebApplication;
9  use WebMenu;  use WebMenu;
10  use WebLayout;  use WebLayout;
 use Tracer;  
 use FigSubsystemMaster;  
11    
12  my $cgi = new CGI();  my $have_fcgi;
 ETracing($cgi);  
13  eval {  eval {
14      my $dbmaster = DBMaster->new('WebServerBackend');      require CGI::Fast;
15      Trace("Setting up layout.") if T(3);      $have_fcgi = 1;
16    };
17    
18    if ($have_fcgi && ! $ENV{REQUEST_METHOD})
19    {
20    
21        #
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    
46        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');      my $layout = WebLayout->new('./Html/SubsystemEditorLayout.tmpl');
98      $layout->add_css('./Html/SubsystemEditor.css');      $layout->add_css('./Html/SubsystemEditor.css');
99      Trace("Creating menu.") if T(3);      $layout->add_css('./Html/default.css');
100    
101      my $menu = WebMenu->new();      my $menu = WebMenu->new();
102      $menu->add_category('Home', 'SubsysEditor.cgi?page=SubsystemList');      $menu->add_category( 'Home', 'SubsysEditor.cgi?page=SubsystemOverview' );
103      Trace("Creating application object.") if T(3);      $menu->add_category( 'Logout', 'SubsysEditor.cgi?page=Logout', undef, [ 'login' ] );
104    
105      my $WebApp = WebApplication->new( { id       => 'SubsystemEditor',      my $WebApp = WebApplication->new( { id       => 'SubsystemEditor',
                                         dbmaster => $dbmaster,  
106                                          menu     => $menu,                                          menu     => $menu,
107                                          layout   => $layout,                                          layout   => $layout,
108                                          default  => 'SubsystemList'                                              default  => 'SubsystemOverview',
109                                                cgi => $cgi,
110                                        } );                                        } );
111    
112      # For now, only use the FIG subsystem object. Later we may need to      $WebApp->show_login_user_info(1);
     # parameterize this somehow. In order to switch to a different  
     # database technology, you need to replace FigSubsystemMaster and  
     # FigSubsystem.  
     Trace("Connecting to subsystem object.") if T(3);  
     $WebApp->setAppData(SubsystemObject => FigSubsystemMaster->new());  
     Trace("Starting to run web app.") if T(3);  
113      $WebApp->run();      $WebApp->run();
 };  
 if ($@) {  
     Confess("Unhandled exception: $@");  
114  }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3