]> lifelog.hopto.org Git - LifeLog.git/commitdiff
Added category desc. display.
authorMetabox <redacted>
Fri, 26 Apr 2019 22:33:28 +0000 (08:33 +1000)
committerMetabox <redacted>
Fri, 26 Apr 2019 22:33:28 +0000 (08:33 +1000)
htdocs/cgi-bin/main.cgi
htdocs/cgi-bin/wsrc/main.css
htdocs/cgi-bin/wsrc/main.js

index 7600a8e946bab902cd6aa174621bd3360badb01c..b4ea4b8b990c2f97b442c283175e5a28221e8e30 100755 (executable)
@@ -30,6 +30,7 @@ our $LOG_PATH    = '../../dbLifeLog/';
 our $SESSN_EXPR  = '+30m';
 our $DATE_UNI    = '0';
 our $RELEASE_VER = '1.3';
+our $AUTHORITY   = 'admin';
 #END OF SETTINGS
 
 my $cgi = CGI->new;
@@ -39,8 +40,11 @@ my $dbname  =$session->param('database');
 my $userid  =$session->param('alias');
 my $password=$session->param('passw');
 
-if(!$userid||!$dbname){
-       print $cgi->redirect("login_ctr.cgi?CGISESSID=$sid");
+if($AUTHORITY){
+        $userid = $password = $AUTHORITY;
+        $dbname =  'data_'.$userid.'_log.db';   
+}elsif(!$userid||!$dbname){
+        print $cgi->redirect("login_ctr.cgi?CGISESSID=$sid");
        exit;
 }
 
@@ -96,8 +100,10 @@ my $stmt    = "SELECT rowid, ID_CAT, DATE, LOG, AMMOUNT FROM LOG ORDER BY rowid
 $st = $db->prepare( $stmtCat );
 $rv = $st->execute() or die or die "<p>Error->"& $DBI::errstri &"</p>";
 
-my $cats = '<select id="ec" name="cat" onChange="updateSelCategory(this)"><option value="0">---</option>\n';
+my $cats = qq(<select id="ec" name="cat" required onFocus="toggleVisibility('cat_desc')" onBlur="toggleVisibility('cat_desc')" onScroll="helpSelCategory(this)" onChange="updateSelCategory(this)">
+                                                       <option value="0">---</option>\n);
 my %hshCats;
+my %desc = {};
 my $c_sel = 1;
  while(my @row = $st->fetchrow_array()) {
        if($row[0]==$c_sel){
@@ -107,10 +113,20 @@ my $c_sel = 1;
                $cats = $cats. '<option value="'.$row[0].'">'.$row[1].'</option>\n';
        }       
        $hshCats{$row[0]} = $row[1];
+       $desc{$row[0]} = $row[2];
  }
-
 $cats = $cats.'</select>';
 
+my $cat_descriptions = "";
+for my $key (keys %desc){
+          my $kv = $desc{$key};
+                if($kv ne ".."){
+        $cat_descriptions .= qq(<li id="$key">$kv</li>\n);
+                }
+}
+
+
 my $tbl = qq(<form id="frm_log" action="remove.cgi" onSubmit="return formDelValidation();">
 <table class="tbl" border="0" width="$PRC_WIDTH%">
 <tr class="hdr">
@@ -363,23 +379,25 @@ my $frm = qq(<a name="top"></a>
        <tr class="r0"><td colspan="3"><b>* LOG ENTRY FORM *</b></td></tr>
        <tr><td colspan="3"><br/></td></tr>
        <tr>
-       <td style="text-align:right">Date:</td><td id="al"><input id="ed" type="text" name="date" size="18" value=") .$today->ymd.
+       <td style="text-align:right">Date:</td>
+       <td id="al"style="text-align:top;"><input id="ed" type="text" name="date" size="18" value=") .$today->ymd.
        " ". $today->hms .
        qq(">&nbsp;<button type="button" onclick="return setNow();">Now</button>
                        &nbsp;<button type="reset">Reset</button>
                        </td>
-       <td></td>
+       <td><div id="cat_desc"></div></td>
        </tr>
        <tr><td style="text-align:right">Log:</td>
-               <td id="al"><textarea id="el" name="log" rows="2" cols="80"></textarea></td>
-               <td>Category:&nbsp;$cats</td></tr>
+               <td id="al" colspan="2" style="text-align:top;"><textarea id="el" name="log" rows="2" cols="80" style="float:left;"></textarea>
+               &nbsp;&nbsp;&nbsp;Category:&nbsp;$cats</td>     
+       </tr>
                <tr><td style="text-align:right"><a href="#bottom">&#x21A1;</a>&nbsp;Ammount:</td>
                <td id="al">
-                       <input id="am" name="am" type="number" step="any">
-                       <button id="btn_srch" onclick="toggleSearch(this); return false;"
-                                                       style="float: right;">Show Search</button>
+                       <input id="am" name="am" type="number" step="any">                      
                </td>
-               <td align="right"><input id="log_submit" type="submit" value="Submit"/>
+               <td align="right">                        
+                               <div    style="float: right;"><button id="btn_srch" onclick="toggleSearch(this); return false;">Show Search</button>&nbsp;
+                               <input id="log_submit" type="submit" value="Submit"/></div>
                </td>           
        </tr>
        <tr><td colspan="3"></td></tr>
@@ -390,8 +408,7 @@ my $frm = qq(<a name="top"></a>
        <input type="hidden" name="rs_cur" value="0"/>
        <input type="hidden" name="rs_prev" value="$tbl_rc_prev"/>
        <input type="hidden" name="CGISESSID" value="$sid"/>
-       $tags   
-       </form>
+       $tags</form>
        );
 
 
@@ -432,7 +449,10 @@ print "<center>";
        print "\n<div>\n" . $tbl ."\n</div>";
        print '<br><div><a href="stats.cgi">View Statistics</a></div>';
        print '<br><div><a href="config.cgi">Configure Log (Careful)</a><a name="bottom"/></div>';
-print "</center>";
+print qq(</center>
+        <ul id="cat_lst">
+                               $cat_descriptions
+                               </ul>);
 
 print $cgi->end_html;
 $st->finish;
@@ -587,6 +607,10 @@ sub buildNavigationButtons{
 sub authenticate{
 try  {
 
+        if($AUTHORITY){
+                 return;
+        }
+
         my $st =$db->prepare("SELECT * FROM AUTH WHERE alias='$userid' and passw='$password';");
                        $st->execute();
         if($st->fetchrow_array()){return;}
index edf62a92b812dec12332c7b99d781b145569e41f..6623be17fe6cb043fa33c4ea8c8a2ca3f39c1710 100644 (file)
@@ -122,4 +122,15 @@ div#rz {
 img {
     float: left;
     padding: 0 10px
+}
+
+#cat_desc {
+    position: relative;
+    border: 2px solid rgb(148, 205, 231);
+    padding: 5px;
+    text-align: left;
+}
+
+#cat_lst {
+    visibility: hidden;
 }
\ No newline at end of file
index 7d7d29c338b662aafe1ec4d0a97692ef37535d04..69afee53a3cedf99c2ae1a3ff79f0950bb78e349 100644 (file)
@@ -3,6 +3,8 @@
  Open Source License -> https://choosealicense.com/licenses/isc/
 */
 
+var map = new Map();
+
 function loadedBody(toggle) {
     var el = document.getElementById("frm_entry");
     el.log.focus();
@@ -11,6 +13,12 @@ function loadedBody(toggle) {
     }
 
     document.getElementById("log_submit").addEventListener("click", encodeText);
+    var lst = document.getElementById("cat_lst");
+    var children = lst.childNodes;
+
+    for (var i = 0; i < children.length; i++) {
+        map.set(children[i].id, children[i].innerHTML);
+    }
 }
 
 function encodeText(el) {
@@ -174,13 +182,28 @@ function resetView() {
 }
 
 function updateSelCategory(sel) {
-    //disabled as Search View has own dreopdown since v.1.3     
-    //    var b = document.getElementById("btn_cat");
     var cat = document.getElementById("idx_cat");
     cat.value = sel.options[sel.selectedIndex].value;
-    //    b.innerText = sel.options[sel.selectedIndex].text;
+}
+
+function toggleVisibility(target) {
+    var d = document.getElementById(target);
+    if (d.style.display === "none" || d.style.display === "") {
+        d.style.display = "block";
+    } else {
+        d.style.display = "none";
+    }
+}
 
-    //    document.getElementById("ctmsg").style.display = "none";    
+
+
+function helpSelCategory(sel) {
+    var el = document.getElementById("cat_desc");
+    var desc = map.get(sel.options[sel.selectedIndex].value);
+    if (!desc) {
+        desc = "<font color='red'>Please select a Category!</font>";
+    }
+    el.innerHTML = desc;
 }
 
 function viewByCategory(btn) {