From 4804b766e44ac902612bd5487745f0de12f7e25b Mon Sep 17 00:00:00 2001
From: Axel Hahn <ax2002@gmx.net>
Date: Thu, 21 Nov 2024 23:15:52 +0100
Subject: [PATCH] update javascript and css

---
 viewer.css     | 9 ++++++---
 viewer.js      | 6 +++++-
 viewer.min.css | 1 +
 viewer.min.js  | 1 +
 viewer.php     | 3 ++-
 5 files changed, 15 insertions(+), 5 deletions(-)
 create mode 100644 viewer.min.css
 create mode 100644 viewer.min.js

diff --git a/viewer.css b/viewer.css
index 62c31fc..9ae1abd 100644
--- a/viewer.css
+++ b/viewer.css
@@ -99,7 +99,6 @@ pre{
     background-color: var(--pre-bg);
     overflow: scroll;
     padding: 1em;
-    border-radius: 1em;
     margin: 0 0 1em;
 }
 th{
@@ -142,15 +141,19 @@ td a, td span{
     background-color: var(--msg-hover-bg);
 }
 
+#msg-header{
+    max-height: 20em;
+    overflow-y: scroll;;
+}
+
 #singlemessage{
     background: var(--simglemail-bg);
     border-top-left-radius: 1em;
-    border: 3px solid rgba(0,0,0,0.2);
     box-shadow: -0.3em 0 3em rgba(0,0,0,0.3);
     display: block;
     padding: 0;
     overflow: scroll;
-    position: absolute;
+    position: fixed;
     right: 1em;
     top: 3em;
     bottom: 4em;
diff --git a/viewer.js b/viewer.js
index f92df55..96729eb 100644
--- a/viewer.js
+++ b/viewer.js
@@ -33,7 +33,11 @@ var bViewSource = lsGet(lsVar_source, 0);
  * @returns 
  */
 function lsGet(key, defaultvalue) {
-    return localStorage.getItem(key).replace(/^(null|NaN)$/g, defaultvalue);
+    var val = localStorage.getItem(key);
+    if (val == "null" || val == "NaN") {
+        return defaultvalue;
+    }
+    return val;
 }
 
 // ----------------------------------------------------------------------
diff --git a/viewer.min.css b/viewer.min.css
new file mode 100644
index 0000000..38a9714
--- /dev/null
+++ b/viewer.min.css
@@ -0,0 +1 @@
+:root{--darker-bg:#e0e0e8;--main-bg:#f8f8f8;--main-color:#333;--a-color:#44c;--titlebar-bg:#779;--titlebar-border-bottom:4px solid rgba(0,0,0,.2);--titlebar-color:#fff;--msg-active-bg:#fff;--msg-hover-bg:#fcfcfc;--box-bg:var(--darker-bg);--box-strong-color:var(--titlebar-bg);--button-bg:#f8f8f8;--button-bg-active:#e8e8f0;--button-border-active:#669;--button-border-hover:rgba(0,0,80,.3);--button-color:#667;--button-close-bg:#fff;--button-close-color:#633;--footer-bg:#fff;--pre-bg:#e8ecec;--simglemail-bg:#f8f8f8;--simglemail-head-bg:#fff;--table-head-bg:var(--darker-bg);--table-link-color:#447;}body{background-color:var(--main-bg);color:var (--main-color);font-family:Arial,Helvetica,sans-serif;font-size:1.0m;margin:0;}a{color:var(--a-color);}a.button{background:var(--button-bg);border:2px solid rgba(0,0,0,.05);border-radius:.3em;color:var(--button-color);text-decoration:none;padding:.4em;transition:all .1s linear;}a.button:hover{border-color:var(--button-border-hover);box-shadow:none;}a.button.active{background:var(--button-bg-active);border-top:4px solid var(--button-border-active);}a.button.close{background:var(--button-close-bg);color:var(--button-close-color);}footer{background-color:var(--footer-bg);position:fixed;bottom:0;text-align:center;width:100%;padding:1em;opacity:.6;}h1{background:var(--titlebar-bg);margin:0;padding-left:.5em;border-bottom:var(--titlebar-border-bottom);}h1 small{opacity:.5;}h1 a{color:var(--titlebar-color);text-decoration:none;}iframe{border:0;width:100%;height:70em;overflow:scroll;}pre{background-color:var(--pre-bg);overflow:scroll;padding:1em;margin:0 0 1em;}th{background-color:var(--table-head-bg);padding:.5em;}th.date{width:10em;}td{padding:.0;}td a{color:var(--table-link-color);text-decoration:none;}td a,td span{display:block;padding:.5em;}#messages{margin:1em;margin-bottom:8em;}#messages a{display:block;}#messages table{border:0;border-collapse:collapse;min-width:47%;}#messages tr.active{background-color:var(--msg-active-bg);border-radius:1em;}#messages tr:hover{background-color:var(--msg-hover-bg);}#msg-header{max-height:20em;overflow-y:scroll;;}#singlemessage{background:var(--simglemail-bg);border-top-left-radius:1em;box-shadow:-.3em 0 3em rgba(0,0,0,.3);display:block;padding:0;overflow:scroll;position:fixed;right:1em;top:3em;bottom:4em;width:50%;}#singlemessage .header{background:var(--simglemail-head-bg);width:100%;padding:.5em;border-bottom:4px solid rgba(0,0,0,.05);}#singlemessage table{width:80%;}#singlemessage table td.small{width:7em;}#singlemessage .content{padding:.5em;}#search{border:2px solid #ddd;border-radius:.5em;margin-top:1em;margin-left:3em;padding:.5em;font-size:110%;}.box{display:block;float:left;margin:0 1em 1em 0;padding:1em;background-color:var(--box-bg);border-radius:.5em;text-align:center;}.box strong{font-size:160%;color:var(--box-strong-color)}.right{float:right;}.toolbar{padding:1.5em 1em 1em 0;width:97%;}
\ No newline at end of file
diff --git a/viewer.min.js b/viewer.min.js
new file mode 100644
index 0000000..2fdd4a7
--- /dev/null
+++ b/viewer.min.js
@@ -0,0 +1 @@
+const tableId="messagestable",searchId="search",lsVar_prefix="emailcatcher_",lsVar_search="emailcatcher__search",lsVar_header="emailcatcher__showHeader",lsVar_source="emailcatcher__showSource";var bViewHeader=lsGet(lsVar_header,1),bViewSource=lsGet(lsVar_source,0);function lsGet(e,t){var a=localStorage.getItem(e);return"null"==a||"NaN"==a?t:a}function filterTable(){var e=document.getElementById("search").value;localStorage.setItem(lsVar_search,e);var t=document.getElementById(tableId);if(!t)return!1;for(var a=t.rows,r=1;r<a.length;r++)-1==a[r].innerText.toLowerCase().indexOf(e.toLowerCase())?a[r].style.display="none":a[r].style.display="table-row"}function viewHideHeader(){return!!document.getElementById("msg-header")&&(document.getElementById("msg-header").style.display=bViewHeader?"block":"none",document.getElementById("btn-header").className=bViewHeader?"button active":"button",!0)}function toggleViewHeader(){return bViewHeader=Math.abs(bViewHeader-1),localStorage.setItem(lsVar_header,bViewHeader),viewHideHeader(),!0}function viewSource(e){return!!document.getElementById("msg-html")&&(document.getElementById("msg-html").style.display=e?"none":"block",document.getElementById("msg-source").style.display=e?"block":"none",document.getElementById("btn-html").className=e?"button":"button active",document.getElementById("btn-source").className=e?"button active":"button",e!=bViewSource&&(bViewSource=e,localStorage.setItem(lsVar_source,e)),!0)}document.getElementById("search").value=""+lsGet(lsVar_search,""),document.getElementById("search").addEventListener("keyup",filterTable),document.getElementById("search").addEventListener("keypress",filterTable),filterTable();bViewHeader=Math.round(lsGet(lsVar_header,1)),bViewSource=Math.round(lsGet(lsVar_source,0));0!==bViewHeader&&1!==bViewHeader&&(bViewHeader=1),viewHideHeader(),viewSource(bViewSource);
\ No newline at end of file
diff --git a/viewer.php b/viewer.php
index d8640a6..fe1a136 100644
--- a/viewer.php
+++ b/viewer.php
@@ -15,11 +15,12 @@
  * 2024-10-09  v0.2  add links
  * 2024-10-21  v0.3  add tiles on top; add email search
  * 2024-11-08  v0.4  view html view in preview already
+ * 2024-11-21  v0.5  update javascript and css
  * =======================================================================
  */
 require_once('classes/emailcatcher.class.php');
 
-$_version = "0.4";
+$_version = "0.5";
 
 $sOpen = $_GET['open'] ?? '';
 $sShowHtml = $_GET['html'] ?? '';
-- 
GitLab