On Mon, Apr 18, 2011 at 6:17 PM, Shlomi Fish <[email protected]> wrote:
> Hi Agnello,
>
> some comments on your code.
>
> On Monday 18 Apr 2011 15:18:22 Agnello George wrote:
> > Hi
> >
> > I am trying my hand in CGI , i have script that runs svn list on-submit
> > which obviously takes 30 to 40 secs for the page to load , i plan to use
> a
> > ajax loader to be printed untill those 30 to 40 seconds. But even after
> > the page has finished loading i can still see the image. I am not good in
> > java script but can this be done using perl only .. here is a snip of my
> > code ..
>
> Please include your entire code - not a snippet of it.
>
> >
> >
> > my @all_svn;
> >
> > unless (@all_svn) {
>
> This will always be executed since @all_svn is empty.
>
> > print '<p> <img alt="" src="
> http://192.168.1.25/template/ajax-loader.gif"
> > /></p>';
> > }
> > @all_svn = qx(svn list -R $virticals{$sitei}{svnurl}) ;
>
> 1. You've misspelled "verticals".
>
> 2. What is "sitei"?
>
> 3. Be careful from interpolating strings into qx/.../ :
>
> http://community.livejournal.com/shlomif_tech/35301.html
>
> >
> > s/\s+$// for @all_svn;
>
> Subversion has Application Programmers Interfaces (APIs) for that, so you
> don't need to parse its output non-reliably.
>
> >
> > my %allsus = map {$_ => 1 } @filesi;
>
> What is "filesi"? What is "allsus"?
>
> > my @allgood = grep {defined $allsus{$_ } } @all_svn ;
> > print "@allgood";
>
> Here you can have a cross site scripting attack:
>
> http://community.livejournal.com/shlomif_tech/35301.html
>
> Best Regards,
>
> Shlomi Fish
>
>
I am sorry i had only posted a snip of my code , here is the whole code (
which too is not complete ) .
I am using template toolkit for output ( do you need me to paste my html
code also )
i have a simple UI , with a text area to input my files and a drop down
menu to select which site i need to do deployment for .
This code is not complete but among the many other issues I am facing , the
main issue is the ajax-loader.gif that i need to show on the UI whne the
pages loads or on press of submit .
#!/usr/bin/perl
use strict ;
use warnings ;
use Template;
use Data::Dumper;
use CGI;
my $query = new CGI;
print "Content-type: text/html\n\n";
my $tt = Template->new( INCLUDE_PATH => "/var/www/html/template" ) || die
"template process failed:$!";
my %tag ;
my %verticals = ( 'website1_v' => { 'tempdir' => '/temp/auto' , 'svnurl' =>
'http://svn.int.com/repos/branch/website1' } );
my ($files, $site,$valu,$ma_status);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
$files = $query->param('element_1');
$site = $query->param('mydropdown');
$ma_status = gtfls_cfe("$files");
}
sub gtfls_cfe {
my (@files,$status);
@files = split(/\s+/, $_[0]) ;
$valu = check_if_exist_in_svn(\@files,$site);
if ($$valu{ireturn} == 1){
$status = " the following files not exist in svn <BR> ";
$status .= "$_<BR>" foreach @{$$valu{notgood}};
} elsif ($$valu{ireturn} == 0 ) {
$status = " the following files are OK to deployed in production
server <BR> ";
# Do more code here
#
}
return $status
}
sub check_if_exist_in_svn {
my (@filesi) = @{$_[0]};
my ($sitei )= $_[1];
my @all_svn;
#my $WW = '<p> <img alt="" src="
http://192.168.1.25/template/ajax-loader.gif" /></p>'; ### cant sem to
make this work!!
@all_svn = qx(svn list -R $verticals{$sitei}{svnurl}) ;
s/\s+$// for @all_svn;
my %allsus = map {$_ => 1 } @all_svn;
my (@allgood,@notgood,%hash1 ) ;
foreach (@filesi){
if ( defined $allsus{$_} ){
push (@allgood , $_);
} elsif ( !defined $allsus{$_}) {
push (@notgood, $_ ) ;
}
}
if ( @notgood ) {
%hash1 = ( 'ireturn' => 1 , notgood => \@notgood ) ;
return (\%hash1) ;
} elsif (@allgood){
%hash1 = ( 'ireturn' => 0 , allgood => \@allgood ) ;
return (\%hash1) ;
}
}
%tag = ( 'result' => $ma_status );
# 'alldb' => @alldb );
print Dumper ([\%tag]);
$tt->process("form/form.html",\%tag) || die $tt->error();
===================================
thanks for all the help again .
--
Regards
Agnello D'souza