From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../zettel.zip_FILES/kasten/zettel.pm | 153 +++++++++++++++++++++ .../zettel.zip_FILES/zettel.pl | 4 + 2 files changed, 157 insertions(+) create mode 100644 Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/kasten/zettel.pm create mode 100644 Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/zettel.pl (limited to 'Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES') diff --git a/Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/kasten/zettel.pm b/Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/kasten/zettel.pm new file mode 100644 index 0000000..60dc876 --- /dev/null +++ b/Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/kasten/zettel.pm @@ -0,0 +1,153 @@ +package Zettel; +use base CGI::Application; +use CGI::Application::Plugin::AutoRunmode; +use CGI qw(:standard *table ); +use CGI::Pretty; +use strict; +#use Data::Dumper; +use Storable; +#use CGI::Application::Plugin::Session; + + +my $kasten =[]; +$kasten = retrieve("d:/xampp/cgi-bin/kasten/kasten.txt") if -e "d:/xampp/cgi-bin/kasten/kasten.txt"; +my %start_labels = ( + delete_func => "delete", + edit_func => "edit", + new_func => "new", + list_func => "list" + ); + + + +sub cgiapp_init { + my $self = shift; +} + + sub teardown { + my $self = shift; + store $kasten, 'd:/xampp/cgi-bin/kasten/kasten.txt'; + } + +sub start_func : StartRunmode +{ + my $self = shift; + my $output = ""; + + $output .= start_form(); + $output .= radio_group(-name=>'rm', + -values=>[keys %start_labels], + -labels => \%start_labels, + -rows => 5); + $output .= br; + $output .= submit(); + + $output .= end_form; +} + +sub delete_func : Runmode +{ + my $self = shift; + $self->select_func("delete1_func"); +} + +sub delete1_func : Runmode +{ + my $output = ""; + my $self = shift; + my $q = $self->query(); + my $index = $q->param('liste'); + splice @$kasten, $index, 1; + $self->start_func(); +} + +sub edit_func : Runmode +{ + my $self = shift; + $self->select_func("edit1_func"); +} + +sub edit1_func : Runmode +{ + my $output = ""; + my $self = shift; + my $q = $self->query(); + my $index = $q->param('liste'); + $output .= start_form(); + $output .= textarea(-name=>'zettel', + -default=>$kasten->[$index], + -rows=>10, + -columns=>50); + $output .= input({ -type=>'hidden', -name=> 'rm', -value => 'edit2_func'}); + $output .= br; + $output .= submit(); + $output .= end_form(); +} + +sub edit2_func : Runmode +{ + my $self = shift; + $self->start_func(); +} + +sub new_func : Runmode +{ + my $output = ""; + $output .= start_form(); + $output .= textarea(-name=>'zettel', + -default=>'', + -rows=>10, + -columns=>50); + $output .= input({ -type=>'hidden', -name=> 'rm', -value => 'new1_func'}); + $output .= br; + $output .= submit(); + $output .= end_form(); +} + +sub new1_func : Runmode +{ + my $output = ""; + my $self = shift; + my $q = $self->query(); + push @$kasten, $q->param("zettel"); + $self->start_func(); +} + +sub list_func() : Runmode +{ + my $output = ""; + my $self = shift; + $self->start_func(); +} + +sub select_func +{ + my $self = shift; + my $next_rm = shift; + my $output = ""; + #~ my $i = 0; + #~ my %labels = map {$i++ => substr($_, 0, 20) } @$kasten; + my %labels ; + @labels{0 .. scalar @$kasten -1} = map {substr($_, 0, 20) } @$kasten; + my $size = @$kasten > 12 ? 12 : @$kasten; + $output .= start_form(); + $output .= scrolling_list(-name=>'liste', + -values=>[keys %labels], + -default=>[0], + -size => $size, + -multiple=>'false', + -labels=> \%labels); + $output .= input({ -type=>'hidden', -name=> 'rm', -value => $next_rm}); + $output .= submit(); + $output .= end_form; +} + +sub cgiapp_postrun +{ + my $self = shift; + my $output_ref = shift; + my $output = start_html('Zettelkasten') . h1('Zettelkasten'); + $$output_ref = $output . $$output_ref . end_html(); +} + +1; \ No newline at end of file diff --git a/Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/zettel.pl b/Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/zettel.pl new file mode 100644 index 0000000..ddd7970 --- /dev/null +++ b/Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/zettel.pl @@ -0,0 +1,4 @@ + use lib "d:/xampp/cgi-bin/kasten"; + use zettel; + my $webapp = Zettel->new(); + $webapp->run(); \ No newline at end of file -- cgit v1.2.3