From 909a2779ae68a3e695055e58729fb5d79d974c6e Mon Sep 17 00:00:00 2001 From: wbudic Date: Wed, 14 Nov 2018 18:05:19 +1100 Subject: [PATCH] Added keywords searching on log entries view. --- htdocs/cgi-bin/main.cgi | 65 ++++++++++++++++++++++++++++++------ htdocs/cgi-bin/remove.cgi | 1 + htdocs/cgi-bin/wsrc/main.css | 8 +++++ htdocs/cgi-bin/wsrc/main.js | 13 ++++++++ 4 files changed, 76 insertions(+), 11 deletions(-) diff --git a/htdocs/cgi-bin/main.cgi b/htdocs/cgi-bin/main.cgi index f94decc..7879ae0 100755 --- a/htdocs/cgi-bin/main.cgi +++ b/htdocs/cgi-bin/main.cgi @@ -10,13 +10,13 @@ use DBI; use DateTime; use DateTime::Format::SQLite; -my $q = CGI->new; 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 $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 }) or die "

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

"; @@ -24,10 +24,12 @@ my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 }) #SETTINGS HERE! -my $REC_LIMIT = 25; -my $TIME_ZONE = 'Australia/Sydney'; +our $REC_LIMIT = 25; +our $TIME_ZONE = 'Australia/Sydney'; #END OF SETTINGS +my $q = CGI->new; + print $q->header(-expires=>"+6os", -charset=>"UTF-8"); print $q->start_html(-title => "Personal Log", @@ -76,14 +78,30 @@ my $tbl_cur_id; my $rs_prev = $q->param('rs_prev'); my $rs_cur = $q->param('rs_cur'); - +my $rs_keys = $q->param('keywords'); +if($rs_keys){ + + my $stm = "SELECT rowid, ID_CAT, DATE, LOG from LOG WHERE"; + my $stmE = " ORDER BY DATE DESC, rowid DESC;"; + my @keywords = split / /, $rs_keys; + if(@keywords){ + foreach (@keywords) + { + $stm = $stm . " LOWER(LOG) REGEXP '\\b" .$_."\\b'"; + if( \$_ != \$keywords[-1] ) { + $stm = $stm." OR "; + } + } + $stmt = $stm . $stmE; + } +} ############### &processSubmit; ############### # # Enable to see main query statement issued! # -# print "### -> ".$stmt; +# print $q->pre("### -> ".$stmt); # # @@ -165,13 +183,22 @@ if($tbl_start>0){ } if($tbl_rc==0){ + if($rs_keys){ + $tbl = $tbl . ' + Search Failed to Retrive any records on keywords: ['. $rs_keys .'] !\n'; + } + else{ $tbl = $tbl . 'Database is New or Empty!\n'; + } } $tbl = $tbl . ' - - '; + +
Keywords: + +
+ '; my $frm = qq(
@@ -179,19 +206,19 @@ my $frm = qq( * LOG ENTRY FORM *
- Date:hms . qq(">    - +   Category: Log: ).$cats.qq( Ammount: - - + + @@ -202,8 +229,24 @@ my $frm = qq( ); +my $srh = qq( + + + + + + +
Search/View By
Keywords: +

+
+ ); + +# +#Page printout from here! +# print "
"; print "\n
\n" . $frm ."\n
\n
"; + print '
' . $srh .'
'; print "\n
\n" . $tbl ."\n
"; print '
View Statistics
'; print "
"; diff --git a/htdocs/cgi-bin/remove.cgi b/htdocs/cgi-bin/remove.cgi index 2b113e6..9a876a1 100755 --- a/htdocs/cgi-bin/remove.cgi +++ b/htdocs/cgi-bin/remove.cgi @@ -1,4 +1,5 @@ #!/usr/bin/perl +package PersonalLog; use strict; use warnings; diff --git a/htdocs/cgi-bin/wsrc/main.css b/htdocs/cgi-bin/wsrc/main.css index 48e6af7..a41f907 100644 --- a/htdocs/cgi-bin/wsrc/main.css +++ b/htdocs/cgi-bin/wsrc/main.css @@ -23,6 +23,14 @@ div{ vertical-align: middle; } +#div_srh{ + + width: 740px; + text-align: center; + vertical-align: middle; + display: none; +} + .tbl { border: 1px solid black; padding-top: 5px; diff --git a/htdocs/cgi-bin/wsrc/main.js b/htdocs/cgi-bin/wsrc/main.js index 1f29503..c86e214 100644 --- a/htdocs/cgi-bin/wsrc/main.js +++ b/htdocs/cgi-bin/wsrc/main.js @@ -100,3 +100,16 @@ function viewAll(){ return false; } + + +function toggleSearch(btn) { + + var d = document.getElementById("div_srh"); + if (d.style.display === "none" || d.style.display ==="") { + d.style.display = "block"; + btn.innerText="Hide Search"; + } else { + d.style.display = "none"; + btn.innerText="Show Search"; + } +} -- 2.34.1