Index: ossp-pkg/tabea/test/output.cgi RCS File: /v/ossp/cvs/ossp-pkg/tabea/test/output.cgi,v co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/tabea/test/output.cgi,v' | diff -u /dev/null - -L'ossp-pkg/tabea/test/output.cgi' 2>/dev/null --- ossp-pkg/tabea/test/output.cgi +++ - 2025-11-04 18:10:37.619905163 +0100 @@ -0,0 +1,551 @@ +#!/usr/opkg/bin/perl -w +# +# This program is for testing the possibilities +# of creating an output in html +# Later test the possibiliies to read in the values +# from an cfg file and convert this to html +# + +require 5.000; +use strict; +use CGI; +use IO; +use Data::Dumper; + +use lib "."; + +use TESTPM::Cfg; + + +$|++; + + +# establish CGI query object +my $cgi = new CGI; + +# activate a general error handler +$SIG{__DIE__} = sub { +my ($err) = @_; + + #$err =~ s|at\s+\S+\s+line\s+(\d+)|(line $1)|s; + $err =~ s|\n|
\n|sg; + print STDOUT $cgi->header(-expires => '+1s') . + "TabeaTest :: ERROR", + "

TabeaTest :: ERROR

\n" . + "
$err
\n"; + exit(0); +}; + + + + + +# read config + +my $filename = "/d1/ps/work/ossp-pkg/tabea/test/tabea-cfg.in"; +my $filein = new IO::File "<$filename" || die; +my $config = ''; + $config .= $_ while (<$filein>); + +$filein->close(); + +my @resword = ("item", "visible", "type", "value", "checked", "description", "selected"); +my @types =("text", "password", "checkbox", "radio", "image", "hidden", "submit", "reset", +"selectmultiple", "textarea"); + +my $CF = &config_read($filename); +#my $dump = Data::Dumper->Dump([$CF]); +#my $cfgtext = $dump ; + +my $dump = Data::Dumper->Dump([$CF]) ; + +#print $cfgtext $dump; +#print $cfgtext . Data::Dumper->Dump([$CF]); +#print Data::Dumper->Dump([$CF]); + + + +my @cf = TESTPM::Cfg->parsit($dump); + + + +my $form = ''; + +for my $name (qw(output results)) { + my $val = $cgi->param("dialog_$name") || ""; + if ($val ne '') { + $form = $name; + } +} + + + + +my $page = $cgi->startform( -method => "POST", -action => $cgi->url(-full => 1)); + +if ($form eq '') { + + $page .= "
Config text
\n"; +# $page .= "
$config
\n"; +# $page .= "
Break
\n"; +# $page .= "
$CF
"; +# $page .= "
Break
\n"; + $page .= "
$dump
"; + $page .= "
Geparster Text
\n"; +# $page .= "
$cfgtext
"; +# $page .= "
@cf
"; + my $cfgtext = Data::Dumper->Dump([@cf]); +# foreach (@cf) { +# $page .= "
$_
"; +# } + + $page .= "
$cfgtext
"; + $page .= $cgi->submit(-name => 'dialog_output', -value => 'Show output'); +} +elsif ($form eq 'output') { + $page .= "

We are testing
" ; + $page .= "\n\nHere comes the text output:
\n" ; + $page .= &text(); + $page .= "

\n" ; + $page .= "\n\nHere comes the password output:
\n" ; + $page .= &password(); + $page .= "

\n" ; + $page .= "\n\nHere comes the checkbox output:
\n" ; + $page .= &checkbox(); + $page .= "

\n" ; + $page .= "\n\nHere comes the radio output:
\n" ; + $page .= &radio(); + $page .= "

\n" ; + $page .= "\n\nHere comes the image output:
\n" ; + $page .= &image(); +# $page .= &hidden(); + $page .= "

\n" ; + $page .= "\n\nHere comes the submit output:
\n" ; + $page .= &submit(); + $page .= "

\n" ; + $page .= "\n\nHere comes the reset output:
\n" ; + $page .= &reset(); + $page .= "

\n" ; + $page .= "\n\nHere comes the select output:
\n" ; + $page .= &select(); + $page .= "

\n" ; + $page .= "\n\nHere comes the textaraea output:
\n" ; + $page .= &textarea(); + #$page .= "



\n" + $page .= $cgi->submit(-name => 'dialog_results', -value => 'Show results'); +} +elsif ( $form eq 'results' ) { + $page .= "

Here are the results
\n"; + $page .= "\n\nHere comes the text result: \n" ; + $page .= &text_result(); + $page .= "

\n" ; + $page .= "\n\nHere comes the password result: \n" ; + $page .= &password_result(); + $page .= "

\n" ; + $page .= "\n\nHere comes the checkbox result: \n" ; + $page .= &checkbox_result(); + $page .= "

\n" ; + $page .= "\n\nHere comes the radio result: \n" ; + $page .= &radio_result(); + $page .= "

\n" ; +# $page .= "\n\nHere comes the image result:
\n" ; +# $page .= &image_result(); +# $page .= &hidden(); + $page .= "

\n" ; + $page .= "\n\nHere comes the submit result: \n" ; + $page .= &submit_result(); + $page .= "

\n" ; +# $page .= "\n\nHere comes the reset result:
\n" ; +# $page .= &reset_result(); + $page .= "

\n" ; + $page .= "\n\nHere comes the select result: \n" ; + $page .= &select_result(); + $page .= "

\n" ; + $page .= "\n\nHere comes the textaraea result: \n" ; + $page .= &textarea_result(); + +} +else { + die "no correct dialog found"; +} + +$page .= $cgi->endform; + + +#print STDOUT $cgi->header(-cookie => $cookies, -expires => '+1s') . $page; +print STDOUT $cgi->header() . $page; + +sub text{ + my $text; + # Text Field: INPUT TYPE=TEXT + + #

Street Address:
+ # Postal City code:
+ # Zip Code:
+ + $text .= "

Street Address:
" . + "Postal City code:
" . + "Zip Code:
" ; + + + #item { + # name street + # visible "Street Address:" + # type text + #} + #item { + # name city + # visible "Postal City code:" + # type text[16][16] + #} + #item { + # name zip + # visible "Zip Code:" + # type text[10][10] + # value { + # name "99999-9999" + # } + #} + return $text; +} + +sub text_result{ + my $text; + + $text .= $cgi->param('street') . "
" ; + + return $text; +} + + +sub password { + my $text; +# # Password Field: INPUT TYPE=PASSWORD + + #

Name: Password: + + $text .= "

Name: Password: " ; + +# item { +# name login +# visible "Name:" +# type text +# } +# item { +# name passwd +# visible "Password:" +# type password +# } +# +# + return $text; +} + +sub password_result{ + my $text; + + $text .= $cgi->param('passwd') . "
" ; + + return $text; +} + +sub checkbox { + my $text; +# # Check Box: INPUT TYPE=CHECKBOX +# +# #

What flavors do you like? +## # Vanilla
+ # Strawberry
+# # Chocolate
+ + $text .= "

What flavors do you like?\n" . + "Vanilla
\n" . + "Strawberry
\n" . + "Chocolate
\n" ; +# +# item { +# name flavor +# visible "What flavors do you like?" +# type checkbox +# value { +# name vanilla +# visible "Vanilla" +# checked +# } +# value { +# name strawberry +# visible "Strawberry" +# } +# value { +# name chocolate +# visible "Chocolate" +# checked +# } +# } +# + return $text; +} + +sub checkbox_result{ + my $text; + + $text .= $cgi->param('flavor') . "
" ; + + return $text; +} + +sub radio { + my $text; +# # Radio Button: INPUT TYPE=RADIO +# +# #

Which is your favorite? +# # Vanilla
+# # Strawberry
+# # Chocolate
+ + $text .= "

Which is your favorite?\n" . + "Vanilla
\n" . + "Strawberry
\n" . + "Chocolate
\n" ; +# +# item { +# name flavor +# visible "Which is your favorite?" +# type radio +# value { +# name vanilla +# visible "Vanilla" +# checked +# } +# value { +# name strawberry +# visible "Strawberry" +# } +# value { +# name chocolate +# visible "Chocolate" +# } +# } +# +# + return $text; +} + +sub radio_result{ + my $text; + + $text .= $cgi->param('flavor') . "
" ; + + return $text; +} + +sub image { + my $text; +# # Image Pixel: INPUT TYPE=IMAGE +# +# # + +# $text .= "\n" ; + $text .= "\"gif\n"; +# +# item { +# name point +# visible "Choose a point on the map:" +# type image +# value { +# name "map.gif" +# } +# } +# +# + return $text; +} + + +sub hidden { + my $text; +# # Hidden Field: INPUT TYPE=HIDDEN (FIXME do we really need this?) +# +# # + + $text .= "\n" ; +# +# item { +# name context +# type hidden +# value { +# name "l2k3j4l2k3j4l2k3j4lk23" +# } +# } +# +# + return $text; +} + +sub submit { + my $text; +# # Submit Button: INPUT TYPE=SUBMIT +# +# #
+# # + + $text .= "
\n" . + "\n" ; + + +# +# item { +# name recipient +# type submit +# value { +# name internal +# } +# value { +# name world +# } +# } +# + return $text; +} + +sub submit_result{ + my $text; + + $text .= $cgi->param('recipient') . "
" ; + + return $text; +} + +sub reset { + my $text; +# +# # Reset Button: INPUT TYPE=RESET +# +# # + + $text .= "\n" ; +# +# item { +# description "You may clear the form and start over at any time:" +# type reset +# } + return $text; +} + +sub select { + my $text; +# # Selection: SELECT +# # Option: OPTION +# +# # +# + + $text .= "\n" ; + + +# item { +# name flavor +# type select[2] //or type selectmultipe[2] +# value { +# name "Vanilla" +# } +# value { +# name "Strawberry" +# } +# value { +# name RumRasin +# visible "Rum and Raisin" +# } +# value { +# name "Peach and Orange" +# selected +# } +# +# } +# +# + return $text; +} + +sub select_result{ + my $text; + + $text .= $cgi->param('flavor') . "
" ; + + return $text; +} + +sub textarea { + my $text; +# # Text Area: TEXTAREA +# +# # +# + $text .= "\n" ; + +# item { +# name "address" +# type textarea[64][6] +# value { +# name "HaL Computer Systems\n1315 Dell Avenue\nCampbell, California 95008" +# } +# } +# + return $text; +} + +sub textarea_result{ + my $text; + + $text .= $cgi->param('address') . "
" ; + + return $text; +} + + + + + + + + +# read configuration +sub config_read { + my ($file) = @_; + + # read file into memory + my $fh = new IO::File "<$file" || die; + my $config = ''; + $config .= $_ while (<$fh>); + + $fh->close(); + + ## Class method usage + my $cf = TESTPM::Cfg->parsit($config); + + + ## Object method usage + + #my $te=new PM2::Cfg(); + #my $cf=$te->parsit($config); + + return $cf; +}