DTA-CAB
view release on metacpan or search on metacpan
CAB/Client/CGIWrapper.pm view on Meta::CPAN
);
}
## @html = html_begin_content($h1_title_text)
sub html_begin_content {
my $wr = shift;
return
(openTag('div',{id=>'outer'}),
div({id=>'headers'}, h1(@_ ? @_ : 'DTA::CAB Client Wrapper')),
openTag('div',{id=>'content'}),
);
}
## @html = $wr->html_footer()
sub html_footer {
my $wr = shift;
my $q = $wr->{q};
return
(
closeTag('div',{id=>'content'}),
'<div id="footers">',
"<tt>$wr->{sysid}</tt>", $q->br,
'<address><a href="mailto:moocow@cpan.org">moocow@cpan.org</a></address>',
'</div>',
closeTag('div',{id=>'outer'}),
$q->end_html,
);
}
## @html = $wr->html_vars()
sub html_vars {
my $wr = shift;
local $Data::Dumper::Indent = 2;
return $wr->{q}->pre(Data::Dumper->Dump([$wr->{qv}],['vars']));
}
## @html = $wr->html_qform()
sub html_qform {
my $wr = shift;
my $q = $wr->{q};
##-- get analyzer list
if (!defined($wr->{analyzers})) {
my @a = $wr->analyzers();
return $wr->set_error("could get analyzer list: ".$a[0]->value) if (!@a || ref($a[0]));
$wr->{analyzers} = \@a;
}
return
(
div({id=>'section'},
#h2('Query'),
start_form(-method=>'GET', -id=>'queryForm'),
table({class=>'sep'},
tbody(
Tr(td({id=>'searchLabel'}, "Query:"),
td({colspan=>3}, textfield(-name=>'q',-size=>64,-id=>'searchText')),
),
##
Tr(td({id=>'searchLabel'}, "Analyzer:"),
td(popup_menu({-name=>'analyzer',
-values=>[ @{$wr->{analyzers}} ],
-default=>($wr->{analyzers}[0] || 'dta.cab.default')
}))),
##
Tr(
td({id=>'searchLabelE'}, "Format:"),
td(popup_menu({-name=>'format',
-values=>[ map {$_->{key}} @{$wr->{fmts}} ],
-default=>$wr->{defaultFmt},
-labels => { map {($_->{key}=>$_->{label})} @{$wr->{fmts}} },
}))),
##
Tr(
td({id=>'searchLabelE'}, "Debug:"),
td(checkbox(-name=>'debug',
-checked=>($wr->{autoClean} || !$wr->{debug} ? 0 : 1),
-value=>1,
-label=>'',
($wr->{autoClean} ? (-disabled=>1) : qw()))),
),
##
Tr(td(),
td(submit(-name=>'submit',-value=>'submit')),
),
)),
end_form,
),
);
}
##==============================================================================
## Functions: utils
sub htmlesc {
my $str = shift;
$str =~ s/\&/&/g;
$str =~ s/\</</g;
$str =~ s/\>/>/g;
$str =~ s/\"/"/g;
$str =~ s/\'/'/g;
return $str;
}
sub openTag {
my ($name,$attrs) = @_;
return "<$name".join('', map {" $_=\"".htmlesc($attrs->{$_})."\""} sort keys %$attrs).">";
}
sub closeTag {
my $name = shift;
return "</$name>";
}
sub elt {
my ($name,$attrs,@content) = @_;
return (openTag($name,$attrs), @content, closeTag($name));
}
sub mydiv { return elt('div',@_); }
sub mytable { return elt('table',@_); }
sub mytbody { return elt('tbody',@_); }
sub mytr { return elt('tr',@_); }
sub mytd { return elt('td',@_); }
sub myth { return elt('th',@_); }
sub myspan { return elt('span',@_); }
sub mya { return elt('a',@_); }
1; ##-- be happy
__END__
( run in 1.715 second using v1.01-cache-2.11-cpan-364913b4093 )