package XxxApp::Controller::Api::Jstreetemplate; use Mojo::Base 'Mojolicious::Controller'; use Data::Printer; my @liste = qw|Anstand Aufmerksamkeit Auftrieb Ausgelassenheit Ausgewogenheit Auszeichnung Bedeutung Begeisterung Beglückung Behaglichkeit Beherztheit Belohnung Bereicherung Bewunderung Chance Charisma Charme Dankbarkeit Daseinsfreude Ehrlichkeit Einfallsreichtum Einigkeit Empfehlung Energie Engagement Entspannung Erfolg Erfüllung Ermutigung Faszination Freiheit Freude Freunde Freundlichkeit Fröhlichkeit Fülle Füreinandereintreten Gabe Geduld Gegenseitigkeit Gemeinschaftsgeist Geschenk Geschlossenheit Gesundheit Glück Glückseligkeit Glückwunsch Großzügigkeit Güte Harmonie Hauptgewinn Heiterkeit Herzenswärme Herzensgüte Herzlichkeit Hilfsbereitschaft Hinwendung Hochgefühl Hoffnung Höflichkeit Idealismus Intuition Ideenreichtum Idylle Inspiration Interesse Jubel Jugendlichkeit Kompliment Köstlichkeit Kraft Kreativität Lächeln Lachen Leben Lebenslust Lebendigkeit Lebensfreude Lebhaftigkeit Leichtigkeit Leidenschaft Liebe Liebenswürdigkeit Luxus Munterkeit Mut Nähe Offenheit Optimismus Originalität Pracht Prestige Problemlösung Pünktlichkeit Reichhaltigkeit Reichtum Respekt Richtigkeit Rücksicht Rücksichtnahme Schönheit Schutz Seelenverwandtschaft Selbstachtung Selbstbestimmung Selbstliebe Selbstlosigkeit Selbstsicherheit Selbstwertgefühl Selbstzufriedenheit Seligkeit Sicherheit Solidarität Sorgfalt Spaß Spontanität Stärke Sympathie Toleranz Treue Überfluss Überraschung Überschwang Überzeugung Überzeugungskraft Unbeschwertheit Unterstützung Verbesserung Verbundenheit Verehrung Verlockung Verspieltheit Verständnis Vertrauen Vertrauenswürdigkeit Vertrautheit Vertraulichkeit Vielfalt Vielseitigkeit Wahrhaftigkeit Wärme Willenskraft Willkommen Wohlbefinden Wohlgefallen Wohlstand Wohltat Wonne Würde Wunder Zauber Zufriedenheit Zuneigung Zusammengehörigkeit Zusammenhalt Zuverlässigkeit Zuwendung|; sub jstreedata { my $c = shift->openapi->valid_input or return; my ($src, $tab ) = _generatetestdata(); my @tree; push @tree, @{$src}; push @tree, @{$tab}; return $c->render(json => { rc => 0, msg => 'OK', data => \@tree} ); } sub _generatetestdata { my ( $liste ) = @_; my $src; my $tab; my $cnt = @liste; my $first = int(rand( 10)); $first ++; my $second = int(rand( 10)); $second ++; my $third = int(rand( 10)); $third ++; for my $f ( 1..$first ) { my $word = int(rand( $cnt )); push @{$src}, { parent => '#', id => $f, text => $liste[$word] }; for my $s ( 1..$second ) { my $fs = $f * 10 + $s; my $wordchild = int(rand( $cnt )); push @{$tab}, { parent => $f, id => $fs, text => $liste[$wordchild] }; for my $t ( 1..$third ) { my $fst = $fs * 10 + $t; my $wordchild2 = int(rand( $cnt )); push @{$tab}, { parent => $fs, id => $fst, text => $liste[$wordchild2] }, } } } return ($src, $tab ); } sub datatablesdata { my $c = shift->openapi->valid_input or return; my $cnt = @liste; my $rows = int(rand( 1000)); $rows ++; my @data; for my $d ( 0..$rows ) { my $col1 = int(rand( $cnt )); my $col2 = int(rand( $cnt )); my $col3 = int(rand( $cnt )); my $col4 = int(rand( $cnt )); my $col5 = int(rand( $cnt )); my $col6 = int(rand( $cnt )); my $col7 = int(rand( $cnt )); my $col8 = int(rand( $cnt )); my $col9 = int(rand( $cnt )); push @data, { col1 => $liste[$col1], col2 => $liste[$col2], col3 => $liste[$col3], col4 => $liste[$col4], col5 => $liste[$col5], col6 => $liste[$col6], col7 => $liste[$col7], col8 => $liste[$col8], col9 => $liste[$col9] }; } return $c->render(json => { rc => 0, msg => 'OK', data => \@data} ); } ### sub listfiles { my $self = shift; my $id = $self->stash('todoid'); my $sql = "SELECT idma, size, created, info, type, name FROM todo_master_files WHERE id = ? and deleted = 0"; my ( $rc, $msg, $data ) = $self->dbxxx->query_hash_array( $sql, $id ); return $self->render( json => { rc => $rc, msg => $msg, data => $data} ); } sub blob { my $self = shift; my $dbh = $self->dbxxx->get; return (1, "kein DB-Handle bekommen") if !defined $dbh; my $cursor = $dbh->prepare("SELECT file, type FROM todo_master_files where idma = ?"); $cursor->execute($self->stash('idma')); my @data = $cursor->fetchrow; $cursor->finish; my $blob; if ( defined $data[0]) { $blob = encode_base64($data[0]); } else { $blob = ''; } $self->dbxxx->free($dbh); return $self->render( json => { blob => $blob, type => $data[1] }); } sub update { # update eines eintrages der Mastertabelle my $self = shift; my $todoid = $self->stash('todoid'); return $self->render( json => { rc => 1, msg => "Die todoid fehlt"} ) if ( $todoid eq "" ) ; my $daten = $self->req->json; return $self->render( json => { rc => 1, msg => 'Programmname fehlt'} ) if ( !defined $daten->{name} or $daten->{name} eq "" ); return $self->render( json => { rc => 1, msg => 'Verantwortlichkeit zuweisen'} ) if ( !defined $daten->{who} or $daten->{who} eq "" ); return $self->render( json => { rc => 1, msg => 'Prozesszuweisung fehlt'} ) if ( !defined $daten->{prozess} or $daten->{prozess} eq "" ); return $self->render( json => { rc => 1, msg => 'Festellung definieren'} ) if ( !defined $daten->{todoinfo} or $daten->{todoinfo} eq "" ); return $self->render( json => { rc => 1, msg => 'ext fehlt'} ) if ( !defined $daten->{ext} ); my $sql = "UPDATE todo_master set name = ?, who = ?, prozess = ?, todoinfo = ?, status = ?, finishdate = ?, closed = ?, notes_master = ?, targetdate_master = ?, ext = ? WHERE id = ?"; my ($rc, $msg ) = $self->dbxxx->query_res( $sql, $daten->{'name'}, $daten->{'who'}, $daten->{'prozess'}, $daten->{'todoinfo'}, $daten->{'status'}, $daten->{'finishdate'}, $daten->{'closed'}, $daten->{'notes_master'}, $daten->{'targetdate_master'}, $daten->{'ext'}, $todoid); return $self->render(json => { rc => $rc, msg => $msg }); } sub insert_file { my $self = shift; my $file = $self->param("file"); my $todoid = $self->param("id"); my $info = $self->param("info"); return $self->render(json => { rc => 1, msg => "Die todoid fehlt"} ) if ( $todoid eq "" ) ; return $self->render(json => { rc => 1, msg => "Die Info fehlt"} ) if ( $info eq "" ) ; return $self->render(json => { rc => 1, msg => 'file'}) if (!defined $file->asset->slurp or $file->asset->slurp eq ""); return $self->render(json => { rc => 1, msg => 'name'}) if (!defined $file->filename or $file->filename eq ""); return $self->render(json => { rc => 1, msg => 'type'}) if (!defined $file->headers->content_type or $file->headers->content_type eq ""); return $self->render(json => { rc => 1, msg => 'size'}) if (!defined $file->size or $file->size eq ""); my $sql = "INSERT INTO todo_master_files (id, file, type, name, size, info) VALUES (?,?,?,?,?,?)"; my ($rc, $msg ) = $self->dbxxx->query_res( $sql, $todoid, $file->asset->slurp, $file->headers->content_type, $file->filename, $file->size, $info ); return $self->render(template => 'main/todo_main'); } sub insert_datei { my $self = shift; my $daten = $self->req->json; my $id = $self->stash("todoid"); return $self->render(json => { rc => 1, msg => "Die ID fehlt"} ) if ( $id eq "" ) ; my $filebase64 = $daten->{file}; $filebase64 =~ s/data:$daten->{type};base64//; my $file = decode_base64($filebase64); my $sql = "INSERT INTO todo_master_files (id, file, type, name, size, info) VALUES (?,?,?,?,?,?)"; my ($rc, $msg ) = $self->dbxxx->query_res( $sql, $id, $file, $daten->{type}, $daten->{name}, $daten->{size}, $daten->{info}); # oder mit der zurückgegebenen id # my ($rc, $msg, $insid ) = $self->dbkoma->query_inserted_id( $sql, $id, $file, $daten->{type}, $daten->{name}, $daten->{size}, $daten->{info}); return $self->render(json => { rc => $rc, msg => $msg }); } sub deletefile { my $self = shift; my $id = $self->stash('idma'); return $self->render(json => { rc => 1, msg => "Die idma fehlt"}) if ( $id eq "" ) ; my ($rc, $msg) = $self->dbxxx->query_res( "DELETE FROM todo_master_files WHERE idma = ?", $id); return $self->render( json => { rc => $rc, msg => $msg }); } 1;