]> lifelog.hopto.org Git - LifeLog.git/commitdiff
Added keywords searching on log entries view.
authorwbudic <redacted>
Wed, 14 Nov 2018 07:05:19 +0000 (18:05 +1100)
committerwbudic <redacted>
Wed, 14 Nov 2018 07:05:19 +0000 (18:05 +1100)
htdocs/cgi-bin/main.cgi
htdocs/cgi-bin/remove.cgi
htdocs/cgi-bin/wsrc/main.css
htdocs/cgi-bin/wsrc/main.js

index f94decca5014d9f8d5961e0e086722c025442d87..7879ae0b98f1dfcd9d1c1d8a3ab305e680764555 100755 (executable)
@@ -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 "<p>Error->"& $DBI::errstri &"</p>";
 
@@ -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 . '<tr><td colspan="5">
+        <b>Search Failed to Retrive any records on keywords: [<i>'. $rs_keys .'</i>] !</b></td></tr>\n';
+        }
+       else{
         $tbl = $tbl . '<tr><td colspan="5"><b>Database is New or  Empty!</b></td></tr>\n';
+        }
  }
 
  $tbl = $tbl . '<tr class="r0"><td colspan="6" align="right">
  <input type="reset" value="Unselect All"/><input type="submit" value="Delete Selected"/>
- </td></tr>
- </table></form>';
+ </form></td></tr>
+<tr class="r0"><td><form id="frm_srch" action="main.cgi">Keywords:</td><td colspan="4">
+<input name="keywords" type="text" size="60"/></td>
+<td><input type="submit" value="Search"/></form></td></tr>
+ </table>';
 
 my  $frm = qq(
  <form id="frm_log" action="main.cgi" onSubmit="return formValidation();">
@@ -179,19 +206,19 @@ my  $frm = qq(
         <tr class="r0"><td colspan="3"><b>* LOG ENTRY FORM *</b></td></tr>
         <tr><td colspan="3"><br/></td></tr>
         <tr>
-        <td>Date:</td><td id="al"><input id="ed" type="text" name="date" value=") .$today->ymd.
+        <td>Date:</td><td id="al"><input id="ed" type="text" name="date" size="16" value=") .$today->ymd.
         " ". $today->hms .
         qq(">&nbsp;<button type="button" onclick="return setNow();">Now</button>
              &nbsp;<button type="reset">Clear</button>
-               </td>
+             &nbsp; <button onclick="toggleSearch(this); return false;">Show Search</button></td>
                <td>Category:</td>
         </tr>
                 <tr><td>Log:</td>
                  <td id="al"><textarea id="el" name="log" rows="2" cols="60"></textarea></td>
                  <td>).$cats.qq(</td></tr>
                 <tr><td>Ammount:</td>
-                <td id="al"><input id="am" name="am" type="number" step="any"/></td><td>
-                <input type="submit" value="Submit"/>
+                <td id="al"><input id="am" name="am" type="number" step="any"/></td>
+                <td><input type="submit" value="Submit"/>
                 </td>
        </tr></table>
         <input type="hidden" name="submit_is_edit" id="submit_is_edit" value="0"/>
@@ -202,8 +229,24 @@ my  $frm = qq(
         );
 
 
+my  $srh = qq(
+        <form id="frm_srch" action="main.cgi">
+        <table class="tbl" border=0>
+                <tr class="r0"><td colspan="4"><b>Search/View By</b></td></tr>
+<tr><td>Keywords:</td><td colspan="2">
+<input name="keywords" type="text" size="60" value=").$rs_keys.qq("/></td>
+<td><input type="submit" value="Search"/></form></td></tr>
+                <tr><td colspan="4"><br/></td></tr>
+        </table>
+        </form><br/>
+        );
+
+#
+#Page printout from here!
+#
 print "<center>";
        print "\n<div>\n" . $frm ."\n</div>\n<br/>";
+       print '<div id="div_srh">' . $srh .'</div>';
        print "\n<div>\n" . $tbl ."\n</div>";
        print '</br><div><a href="stats.cgi">View Statistics</a></div>';
 print "</center>";
index 2b113e65e41f2506380c10eb9d71551cfe5fea77..9a876a112f1cf066164a4f5f76069228a6a25310 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/perl
+package PersonalLog;
 
 use strict;
 use warnings;
index 48e6af7a3705a9df70f455ecf14883c48830cff5..a41f90767aea81ca7c6a7037c7f19b92e24dc3b1 100644 (file)
@@ -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;
index 1f2950373d89016bdf9b62ccdd355abb4951f59f..c86e214ae6b158fbed34f2721f9a8f55612653b4 100644 (file)
@@ -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";
+          }
+}