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

View of /FigWebServices/add_links.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (download) (annotate)
Sat May 24 23:09:40 2008 UTC (11 years, 8 months ago) by golsen
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2008_06_18, myrast_rel40, rast_rel_2008_06_16, mgrast_dev_05262011, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, mgrast_dev_10262011, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, mgrast_dev_02222011, rast_rel_2009_03_26, rast_rel_2008_11_24, rast_rel_2008_08_07
Changes since 1.2: +3 -0 lines
Fix the code for adding links to a fid page so that the code to write
the new link to a file works (all old links were put in DBMS, but not
written to the disk), and add HTML escaping to the use-supplied link
name.

#
# Copyright (c) 2003-2006 University of Chicago and Fellowship
# for Interpretations of Genomes. All Rights Reserved.
#
# This file is part of the SEED Toolkit.
# 
# The SEED Toolkit is free software. You can redistribute
# it and/or modify it under the terms of the SEED Toolkit
# Public License. 
#
# You should have received a copy of the SEED Toolkit Public License
# along with this program; if not write to the University of Chicago
# at info@ci.uchicago.edu or the Fellowship for Interpretation of
# Genomes at veronika@thefig.info or download a copy from
# http://www.theseed.org/LICENSE.TXT.
#

use HTML;

use FIG;
my $fig = new FIG;

use CGI;
my $cgi = new CGI;

if (0)
{
    print $cgi->header;
    my @params = $cgi->param;
    print "<pre>\n";
    foreach $_ (@params)
    {
	print "$_\t:",join(",",$cgi->param($_)),":\n";
    }
    exit;
}

my $html = [];
unshift @$html, "<TITLE>Adding Links</TITLE>\n";

my $peg = $cgi->param('peg');
if (! $peg)
{
    push(@$html,"<h1>Sorry, you need to specify a protein encoding gene (PEG)</h1>\n");
    &HTML::show_page($cgi,$html);
    exit;
}

my $label     = $cgi->param('label');
my $url       = $cgi->param('url');
my $propagate = $cgi->param('propagate');

if ($label && $url)
{
    &set_labels($fig,$cgi,$html,$peg,$label,$url,$propagate);
    &HTML::show_page($cgi,$html);
    exit;
}    

push(@$html,$cgi->start_form(-action => "add_links.cgi"),
            $cgi->hidden(-name => 'peg', -value => $peg),
            $cgi->h1("Adding Links"),
	    "You can add a single link by filling in the fields specifying the URL and the label you wish assigned to 
             the link.  If you check the <i>propagate</> option, the link will be assigned to all similar sequences
             that have an identical function",
            $cgi->br,
            "Label: ", $cgi->textfield(-name => "label", -size => 60, -value => "", -override => 1),
            $cgi->br,
            "URL: ", $cgi->textfield(-name => "url", -size => 60, -value => "", -override => 1),
            $cgi->br,
            "Propagate: ", $cgi->checkbox(-name => "propagate", -value => 1, -checked => 0, -override => 1),
            $cgi->submit("Do it")
     );
&HTML::show_page($cgi,$html);
exit;

sub set_labels {
    my($fig,$cgi,$html,$peg,$label,$url,$propagate) = @_;
    my($peg1,$func,$func1);

    &add_label($fig,$peg,$label,$url);
    if ($propagate && ($func = $fig->function_of($peg)) && (! &FIG::hypo($func)))
    {
	foreach $peg1 (map { $_->id2 } $fig->sims($peg,1000,1.0e-5,"fig",1000))
	{
	    $func1 = $fig->function_of($peg1);
	    if ($func eq $func1)
	    {
		&add_label($fig,$peg1,$label,$url);
	    }
	}
    }
    push(@$html,$cgi->h1("Set Link"));
}

sub add_label {
    my($fig,$peg,$label,$url) = @_;

    $label =~ s/\&/&amp;/;
    $label =~ s/\</&lt;/;
    $label =~ s/\>/&gt;/;
    $fig->add_peg_links([$peg,"<a href=$url>$label</a>"]);
}

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3