[Bio] / FigWebServices / start.cgi Repository:
ViewVC logotype

Annotation of /FigWebServices/start.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download)

1 : olson 1.1 #
2 :     # New-style front end.
3 :     #
4 :     # User login
5 :     # Dropdown for subsystems.
6 :     # Dropdown for orgs.
7 :     # Text search
8 :     # Pattern search.
9 :     #
10 :    
11 :     use FIG;
12 :     use HTML;
13 :     use CGI;
14 :     use URI::Escape;
15 :    
16 :     my $cgi = new CGI;
17 :     my $fig = new FIG;
18 :    
19 :     my $html = [];
20 :    
21 :     my $user = $cgi->param('user');
22 :    
23 :     my $click_js = <<'EJS';
24 :     <script language="JavaScript">
25 :    
26 :     haveClickedSearch = 0;
27 :    
28 :     function check_first_search_click(what)
29 :     {
30 :     if (!haveClickedSearch)
31 :     {
32 :     what.value = '';
33 :     haveClickedSearch = 1;
34 :     }
35 :     }
36 :     </script>
37 :     EJS
38 :    
39 :     push(@$html, $cgi->start_head,
40 :     $cgi->title("Wecome to the SEED"),
41 :     $click_js,
42 :     q(<body onload="document.search_form.search_string.focus(); document.search_form.search_string.value = 'Enter search terms'">));
43 :    
44 :     push(@$html, $cgi->hidden("user"));
45 :    
46 :     #
47 :     # Command handlers
48 :     #
49 :     handle_action('view_subsystem', \&do_view_subsystem, $cgi, $html);
50 :     handle_action('view_genome', \&do_view_genome, $cgi, $html);
51 :     handle_action('text_search', \&do_text_search, $cgi, $html);
52 :     handle_action('go_old', \&do_go_old_seed, $cgi, $html);
53 :    
54 :    
55 :     push(@$html, $cgi->start_form(-name => "search_form"));
56 :    
57 :     gen_user_login($cgi, $html);
58 :    
59 :     gen_text_search($cgi, $html);
60 :     push(@$html, $cgi->p);
61 :    
62 :     gen_orglist_dropdown($cgi, $html);
63 :     push(@$html, $cgi->p);
64 :     gen_subsystem_dropdown($cgi, $html);
65 :    
66 :     push(@$html,
67 :     $cgi->p,
68 :     $cgi->submit(-name => 'go_old',
69 :     -value => 'Advanced SEED entrypoint'),
70 :     $cgi->p,
71 :     $cgi->a({href => "Html/help_front_page.html"}, "Help")
72 :     );
73 :    
74 :    
75 :    
76 :     push(@$html, $cgi->end_form());
77 :    
78 :     my @hdr = &HTML::compute_html_header(undef, undef, no_fig_search => 1 );
79 :    
80 :     push(@$html, $cgi->end_body);
81 :     open(T, ">/tmp/t.html");
82 :     print T join("", @$html);
83 :     close(T);
84 :    
85 :     &HTML::show_page($cgi, $html, 1, \@hdr);
86 :    
87 :     exit(0);
88 :    
89 :     sub gen_user_login
90 :     {
91 :     my($cgi, $html) = @_;
92 :    
93 :     push(@$html, $cgi->p("User id:",
94 :     $cgi->textfield(-name => 'user',
95 :     -default => ""),
96 :     " (of the form JohnDoe - <b>no spaces or special characters</b>)",
97 :    
98 :     $cgi->p,
99 :     ));
100 :    
101 :    
102 :    
103 :     }
104 :    
105 :     sub gen_subsystem_dropdown
106 :     {
107 :     my($cgi, $html) = @_;
108 :    
109 :     # push(@$html, $cgi->h2("Subsystems"));
110 :    
111 :     my @values = sort $fig->all_subsystems();
112 :    
113 :     my %labels;
114 :     for my $v (@values)
115 :     {
116 :     my $l = $v;
117 :     $l =~ s/_/ /g;
118 :     $labels{$v} = $l;
119 :     }
120 :    
121 :     $labels{_choose_sub} = "Pick a subsystem";
122 :     unshift(@values, "_choose_sub");
123 :    
124 :     push (@$html,
125 :     $cgi->popup_menu(-name => 'sel_subsystem',
126 :     -style => "width: 4in",
127 :     -values => \@values,
128 :     -labels => \%labels),,
129 :     "&nbsp;",
130 :     $cgi->submit(-name => 'view_subsystem',
131 :     -value => "Go"),
132 :     );
133 :    
134 :    
135 :     }
136 :    
137 :     sub gen_orglist_dropdown
138 :     {
139 :     my($cgi, $html) = @_;
140 :    
141 :     # push(@$html, $cgi->h2("Metabolic Reconstructions"));
142 :    
143 :     my $res = $fig->db_handle()->SQL("select genome, gname from genome order by gname");
144 :    
145 :     my %labels;
146 :     my @values;
147 :     for my $ent (@$res)
148 :     {
149 :     my($genome, $gs) = @$ent;
150 :    
151 :     push(@values, $genome);
152 :     $labels{$genome} = "$gs ($genome)";
153 :     }
154 :    
155 :    
156 :     unshift(@values, "_choose_org");
157 :     $labels{_choose_org} = "Pick an organism";
158 :    
159 :    
160 :     push (@$html, ($cgi->popup_menu(-name => 'sel_genome',
161 :     -style => "width: 4in",
162 :     -values => \@values,
163 :     -labels => \%labels),,
164 :     "&nbsp;",
165 :     $cgi->submit(-name => 'view_genome',
166 :     -value => "Go"),
167 :     $cgi->p,
168 :     ));
169 :     }
170 :    
171 :     sub gen_text_search
172 :     {
173 :     my($cgi, $html) = @_;
174 :    
175 :    
176 :     push(@$html, ($cgi->textfield(-name => 'search_string',
177 :     -default => 'Enter search terms',
178 :     -style => "width: 4in",
179 :     -override => 1,
180 :     -onClick => 'check_first_search_click(this)',
181 :     -size => 60),
182 :     "&nbsp;",
183 :     $cgi->submit(-name => 'text_search',
184 :     -value => 'Go'),
185 :     ));
186 :    
187 :     }
188 :    
189 :     sub handle_action
190 :     {
191 :     my($field, $sub, $cgi, $html) = @_;
192 :    
193 :     if ($cgi->param($field))
194 :     {
195 :     &$sub($cgi, $html);
196 :     }
197 :     }
198 :    
199 :     sub do_view_subsystem
200 :     {
201 :     my($cgi, $html) = @_;
202 :    
203 :     #
204 :     # Just redirect to the subsystem page.
205 :     #
206 :    
207 :     my $sub = $cgi->param('sel_subsystem');
208 :     if ($sub eq "_choose_sub")
209 :     {
210 :     return;
211 :     }
212 :     #
213 :     # bring up clustered in phylogenetic sort
214 :     #
215 :    
216 :     my $esc_ssa = uri_escape($sub);
217 :    
218 :     my @params;
219 :     push(@params, "sort=by_phylo");
220 :     push(@params, "show_clusters=1");
221 :     push(@params, "request=show_ssa");
222 :     push(@params, "user=$user");
223 :     push(@params, "ssa_name=$esc_ssa");
224 :    
225 :     my $params = join("&", @params);
226 :     my $sub_url = $fig->cgi_url() . "/subsys.cgi?$params";
227 :     print $cgi->redirect($sub_url);
228 :     exit 0;
229 :     }
230 :    
231 :     sub do_view_genome
232 :     {
233 :     my($cgi, $html) = @_;
234 :    
235 :     #
236 :     # For now, redirect to the organism statistics page.
237 :     #
238 :    
239 :     my $genome = $cgi->param('sel_genome');
240 :     if ($genome eq "_choose_org")
241 :     {
242 :     return;
243 :     }
244 :    
245 :     my $sub_url = $fig->cgi_url() . "/genome_statistics.cgi?user=$user&genome=$genome";
246 :     warn "Redirect to $sub_url\n";
247 :     print $cgi->redirect($sub_url);
248 :     exit 0;
249 :     }
250 :    
251 :     sub do_text_search
252 :     {
253 :     my($cgi, $html) = @_;
254 :    
255 :     my $str = $cgi->param('search_string');
256 :    
257 :     my $esc_str = uri_escape($str);
258 :    
259 :     my $redir = $fig->cgi_url() . "/index.cgi?pattern=$esc_str&Search=1&user=$user";
260 :     print $cgi->redirect($redir);
261 :     }
262 :    
263 :     sub do_go_old_seed
264 :     {
265 :     my($cgi, $html) = @_;
266 :    
267 :     my $url = $fig->cgi_url() . "/index.cgi?user=$user";
268 :     print $cgi->redirect($url);
269 :     exit 0;
270 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3