summaryrefslogtreecommitdiffstats
path: root/Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/kasten/zettel.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/kasten/zettel.pm')
-rw-r--r--Bachelor/Systemprogrammierung in Perl/zettel.zip_FILES/kasten/zettel.pm153
1 files changed, 153 insertions, 0 deletions
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