[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.19, Thu May 8 14:42:23 2008 UTC revision 1.38, Fri Sep 16 19:28:10 2011 UTC
# Line 9  Line 9 
9  use Tracer;  use Tracer;
10  use FIGRules;  use FIGRules;
11  use FIG_Config;  use FIG_Config;
12    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 ($@)
61  {  {
62      my $error = $@;      my $error = $@;
     Trace("In error recovery with message $error") if T(3);  
63      Warn("Script error: $error") if T(SeedViewer => 0);      Warn("Script error: $error") if T(SeedViewer => 0);
64    
65      print CGI::header();      print CGI::header();
# 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    
99      # initialize cgi      # Initialize tracing.
100      my $cgi = new CGI();      ETracing($cgi);
101        if (FIGRules::nmpdr_mode($cgi)) {
102            Trace("NMPDR mode selected.") if T(3);
103            my $parms = $cgi->query_string();
104            if ($parms) {
105                $parms = "?$parms";
106            } else {
107                $parms = "?page=Home";
108            }
109            print CGI::redirect(-uri => "$FIG_Config::cgi_url/wiki/rest.cgi/NmpdrPlugin/SeedViewer$parms",
110                                -status => 301);
111        } 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 = (FIGRules::nmpdr_mode($cgi) ? './Html/NmpdrViewer.tmpl' : './Html/SeedViewer.tmpl');          my $templateFile = TMPL_PATH . "/SeedViewer.tmpl";
127      Trace("Template file is $templateFile") if T(3);      Trace("Template file is $templateFile") if T(3);
128      my $layout = WebLayout->new($templateFile);      my $layout = WebLayout->new($templateFile);
129      # Choose the body/header style sheet according to the mode.      # Choose the body/header style sheet according to the mode.
130      if (FIGRules::nmpdr_mode($cgi)) {          $layout->add_css("$FIG_Config::cgi_url/Html/seedviewer.css");
131          # NMPDR mode.          $layout->add_css("$FIG_Config::cgi_url/Html/commonviewer.css");
132          $layout->add_css('./Html/nmpdrviewer.css');          $layout->add_css("$FIG_Config::cgi_url/Html/web_app_default.css");
         # Display the official NMPDR icon for this machine.  
         $layout->add_metatag("<link rel=\"icon\" href=\"${FIG_Config::cgi_base}wiki/pub/logos/nmpdr.ico\" type=\"image/x-icon\" />");  
         $layout->add_metatag("<link rel=\"shortcut icon\" href=\"${FIG_Config::cgi_base}wiki/pub/logos/nmpdr.ico\" type=\"image/x-icon\" />");  
     } else {  
         # SEED mode.  
         $layout->add_css('./Html/seedviewer.css');  
    }  
     # Add the common styles.  
     $layout->add_css('./Html/commonviewer.css');  
     # Add the normal style.  
     $layout->add_css('./Html/default.css');  
133      # build menu      # build menu
134      my $menu;      my $menu;
135      $menu = WebMenu->new();      $menu = WebMenu->new();
     if (FIGRules::nmpdr_mode($cgi)) {  
         $menu->add_category('&raquo;Navigate', '?page=Home');  
         $menu->add_entry('&raquo;Navigate', 'NMPDR home', "$FIG_Config::nmpdr_site_url/index.php");  
         $menu->add_entry('&raquo;Navigate', 'Organisms', "$FIG_Config::nmpdr_site_url/content/organisms.php");  
         $menu->add_entry('&raquo;Navigate', 'Subsystems', "$FIG_Config::nmpdr_site_url/content/subsystems.php");  
         $menu->add_entry('&raquo;Navigate', 'FigFams', '?page=FigFamViewer');  
     } else {  
136          $menu->add_category('&raquo;Navigate', '?page=Home');          $menu->add_category('&raquo;Navigate', '?page=Home');
137          $menu->add_entry('&raquo;Navigate', 'Startpage', '?page=Home');          $menu->add_entry('&raquo;Navigate', 'Startpage', '?page=Home');
138          $menu->add_entry('&raquo;Navigate', 'Organisms', '?page=OrganismSelect');          $menu->add_entry('&raquo;Navigate', 'Organisms', '?page=OrganismSelect');
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');
141          $menu->add_entry('&raquo;Navigate', 'FigFams', '?page=FigFamViewer');          $menu->add_entry('&raquo;Navigate', 'FigFams', '?page=FigFamViewer');
142          $menu->add_entry('&raquo;Navigate', '<a>Jump to Feature by</a>');          if ($FIG_Config::atomic_regulon_dir && -d $FIG_Config::atomic_regulon_dir)
143          $menu->add_entry('&raquo;Navigate', '&nbsp;&nbsp;BLAST Search', '?page=BlastRun');          {
144          $menu->add_entry('&raquo;Navigate', "<form style='margin: 0px 0px 0px 6px;'>&nbsp;&nbsp;ID&nbsp;&nbsp;<input type='text' name='pattern' style='border: 1px solid #5da668; width: 100px; height: 17px; margin-top: 2px; font-size: 11px;'><input type='hidden' name='page' value='SearchResult'><input type='hidden' name='action' value='check_search'><input type='submit' style='display:none;'></form>");              $menu->add_entry('&raquo;Navigate', 'Atomic Regulons', '?page=AtomicRegulon&genome=all');
145      }      }
146            $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 81  Line 152 
152          $menu->add_entry('&raquo;Teacher', 'Problem Sets', '?page=ManageProblemSets');          $menu->add_entry('&raquo;Teacher', 'Problem Sets', '?page=ManageProblemSets');
153          $menu->add_entry('&raquo;Teacher', 'Annotation Resolve', '?page=ClassAnnotationResolve');          $menu->add_entry('&raquo;Teacher', 'Annotation Resolve', '?page=ClassAnnotationResolve');
154      }      }
     #$menu->add_category('&raquo;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', 'Contact', "$FIG_Config::nmpdr_site_url/content/contactus.php");  
     } else {  
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          $menu->add_entry('&raquo;Help', 'Contact', 'http://www.theseed.org/wiki/Contact');  
160            # check which contact info to show
161            if (defined($FIG_Config::server_type) && ($FIG_Config::server_type eq 'MG-RAST')) {
162                $menu->add_entry('&raquo;Help', 'Contact', 'mailto:mg-rast@mcs.anl.gov', undef, ['login']);
163            } elsif (defined($FIG_Config::server_type) && ($FIG_Config::server_type eq 'RAST')) {
164                $menu->add_entry('&raquo;Help', 'Contact', 'mailto:rast@mcs.anl.gov', undef, ['login']);
165            } else {
166                $menu->add_entry('&raquo;Help', 'Contact', 'mailto:info@theseed.org');
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      my $prefix = (FIGRules::nmpdr_mode($cgi) ? "NMPDR " : "") . "Seed Viewer - ";  
181            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);
   
184      # run application      # run application
185      $WebApp->run();      $WebApp->run();
186        }
187  }  }

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3