From 8ec0ae7520a6ab478c4ed7d2a83228c0ebb50b54 Mon Sep 17 00:00:00 2001 From: wbudic Date: Fri, 16 Nov 2018 14:17:40 +1100 Subject: [PATCH] Branch Switch --- htdocs/cgi-bin/main.cgi | 15 +++++- htdocs/cgi-bin/search.cgi | 110 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+), 1 deletion(-) create mode 100755 htdocs/cgi-bin/search.cgi diff --git a/htdocs/cgi-bin/main.cgi b/htdocs/cgi-bin/main.cgi index 6838da7..82497b5 100755 --- a/htdocs/cgi-bin/main.cgi +++ b/htdocs/cgi-bin/main.cgi @@ -9,7 +9,7 @@ use DBI; use DateTime; use DateTime::Format::SQLite; - +use DateTime::Duration; my $driver = "SQLite"; my $database = "../../dbLifeLog/data_log.db"; @@ -363,6 +363,19 @@ try{ $sth = $dbh->prepare('INSERT INTO LOG VALUES (?,?,?,?)'); $sth->execute( $cat, $date, $log, $amm); + # + # UNDER DEVELOPMENT! + # + # After Insert renumeration check + # + my $dt = DateTime::Format::SQLite->parse_datetime($date); + my $dtCur = DateTime->now(); + $dtCur->set_time_zone($TIME_ZONE); + $dtCur = $dtCur - DateTime::Duration->new( days => 1); + + if($dtCur> $dt){ +# print $q->p('Insert is in the past!'); + } } } catch{ diff --git a/htdocs/cgi-bin/search.cgi b/htdocs/cgi-bin/search.cgi new file mode 100755 index 0000000..69e36ad --- /dev/null +++ b/htdocs/cgi-bin/search.cgi @@ -0,0 +1,110 @@ +#!/usr/bin/perl +use strict; +use warnings; + +use CGI; +use DBI; +use DateTime; +use DateTime::Format::SQLite; + +my $driver = "SQLite"; +my $database = "../../dbLifeLog/data_log.db"; +my $dsn = "DBI:$driver:dbname=$database"; +my $userid = $ENV{'DB_USER'}; +my $password = $ENV{'DB_PASS'}; + + +my $q = CGI->new; + +my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 }) + or die "

Error->"& $DBI::errstri &"

"; + +my $today = DateTime->now; +$today->set_time_zone( 'Australia/Sydney' ); + +my $stmtCat = "SELECT * FROM CAT;"; + + +my $sth = $dbh->prepare( $stmtCat ); +my $rv = $sth->execute() or die or die "

Error->"& $DBI::errstri &"

"; + +my %hshCats; +my $tbl_rc =0; + + while(my @row = $sth->fetchrow_array()) { + $hshCats{$row[0]} = $row[1]; + } + + +my $stmS = "SELECT rowid, ID_CAT, DATE, LOG from LOG WHERE"; +my $stmE = " ORDER BY DATE DESC, rowid DESC;"; +my @keywords = split / /, $q->param('keywords'); +my $stm= $stmS; +if(@keywords){ + foreach (@keywords) + { + $stm = $stm . " LOG LIKE '%" .$_."%'"; + if( \$_ != \$keywords[-1] ) { + $stm = $stm." OR "; + } + } + $stm = $stm . $stmE; +} +else{ + $stm = ""; +} + + + print $q->header(-expires=>"+6os"); + print $q->start_html(-title => "Personal Log Record Removal", + -script=>{-type => 'text/javascript', -src => 'wsrc/main.js'}, + -style =>{-type => 'text/css', -src => 'wsrc/main.css'} + + ); + + if($stm){ + &build; + } + else{ + print $q->center($q->h2({-style=>'Color: red;'},'No Keywords Submitted!')); + } + + print $q->pre("### -> ".$stm); + +print $q->end_html; + +$dbh->disconnect(); + + + +sub build{ + +my $tbl = ' + '; +$sth = $dbh->prepare( $stm ); +$rv = $sth->execute() or die or die "

Error->"& $DBI::errstri &"

"; +if($rv < 0) { + print "

Error->"& $DBI::errstri &"

"; +} + + +my $r_cnt = 0; +while(my @row = $sth->fetchrow_array()) { + + my $ct = $hshCats{@row[1]}; + my $dt = DateTime::Format::SQLite->parse_datetime( $row[2] ); + + $tbl = $tbl . '" . + "" . "\n". + "'; + $r_cnt++; +} +my $plural = ""; +if($r_cnt>1){ + $plural = "s"; +} + $tbl = $tbl . "
DateTimeLogCategory
'. $dt->ymd . "" . $dt->hms . "" . $row[3] . "" . $ct. '
"; + +print '
' . $tbl .'
'; + +} -- 2.34.1