From 7492f51d7f9b399a4beab7840b84a163da61f535 Mon Sep 17 00:00:00 2001
From: stopyz <stopyz@gmail.com>
Date: Mon, 3 Jul 2023 22:03:01 +0200
Subject: [PATCH] Dashboard App for ACF

---
 app/acf-util/welcome-html.lsp          | 19 +++++++++----------
 app/alpine-baselayout/health-model.lua |  2 +-
 app/template-html.lsp                  | 10 ++++++----
 css/dashboard-main/logon.css           |  2 +-
 css/dashboard-main/mobile.css          |  2 +-
 lib/htmlviewfunctions.lua              |  4 ++++
 6 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/app/acf-util/welcome-html.lsp b/app/acf-util/welcome-html.lsp
index 05667e8..10aeb45 100644
--- a/app/acf-util/welcome-html.lsp
+++ b/app/acf-util/welcome-html.lsp
@@ -143,7 +143,7 @@ end
 <!-- Dashboard App Block - LINE 1 -->
 <div class="dashboard-main main-block">
 <!-- Dashboard Version Block - BLOCK 1 -->
-	<div class="dashboard-system dashboard-block">
+	<div style="cursor: pointer;" onclick="window.open('/cgi-bin/acf/alpine-baselayout/health/system', '_blank')" class="dashboard-system dashboard-block">
 		<div class="data-block data-system">
 			<h4 class="dashboard-block-title dashboard-title-system">System</h4>
 				<p class="dashboard-infos dash-info-version">
@@ -176,7 +176,7 @@ end
 	let delay = () => 
 	{
 	increment += 1;
-	// CONVERT JS UPTIME
+	// CONVERT JS UPTIME 😂
 		js_uptime = parseInt(increment);
 		var js_centuries = Math.floor((js_uptime / (3600*24) / 365) / 100);
 		var js_years = Math.floor((js_uptime / (3600*24) / 365) % 100);
@@ -202,13 +202,13 @@ end
 		</span>
 		</div>
 	</div>
+	
 <!-- Dashboard App Block - LINE 1 -->
 </div>
-
 <!-- Dashboard App Block - LINE 2 -->
 <div class="dashboard-main main-block">
 <!-- Dashboard Main Block - SYSTEM - BLOCK 1 -->
-	<div class="dashboard-hardware dashboard-block medium-block">
+	<div style="cursor: pointer;" onclick="window.open('/cgi-bin/acf/alpine-baselayout/health/proc', '_blank')" class="dashboard-hardware dashboard-block medium-block">
 		<div class="data-block data-system">
 			<h4 class="dashboard-block-title dashboard-title-hardware">Hardware</h4>
 				<span class="icon-cpu">
@@ -240,8 +240,7 @@ end
 			<p class="dashboard-infos dash-info-bios">
 				<span class="data-title">BIOS : </span>
 					<span id="version">ver: </span><%= sys.value.biosVersion.value %> | 
-						<%= sys.value.biosVendor.value %> - 
-							<%= sys.value.biosDate.value %>
+						<%= sys.value.biosVendor.value %> | <%= sys.value.biosDate.value %>
 			</p>
 			<p class="dashboard-infos dash-info-cpu">
 				<span class="data-title">CPU : </span><%= string.sub((proc.value.model.value), 14) %>
@@ -281,7 +280,7 @@ end
 	
 <!-- Dashboard Main Block - DISK - BLOCK 2 -->	
 <div class="dashboard-main main-block medium-block">
-	<div class="dashboard-memory dashboard-block">
+	<div style="cursor: pointer;" onclick="window.open('/cgi-bin/acf/alpine-baselayout/health/storage', '_blank')" class="dashboard-disk dashboard-block">
 		<h4 class="dashboard-block-title dashboard-title-disk">Disk</h4>
 <!-- Dashboard Main Block - DISK CHART FROM N.ANGELACOS ACF NATIVE APP -->
 	<% displaydisk = function(disk, name)
@@ -332,7 +331,7 @@ end
 
 <!-- Dashboard Main Block - MEMORY - BLOCK 3 -->
 <div class="dashboard-main main-block small-block">
-	<div class="dashboard-memory dashboard-block">
+	<div style="cursor: pointer;" onclick="window.open('/cgi-bin/acf/alpine-baselayout/health/system', '_blank')" class="dashboard-memory dashboard-block">
 		<h4 class="dashboard-block-title dashboard-title-memory">Memory</h4>
 <!-- Dashboard Main Block - CHART.JS -->
 		<div class="chart-canvas chartjs">
@@ -395,7 +394,7 @@ $(function memChart() {
 <!-- Dashboard App Block - LINE 3 -->
 <div class="dashboard-main main-block">
 <!-- Dashboard Main Block - 1 -->
-	<div class="dashboard-block large-block dashboard-network">
+	<div style="cursor: pointer;" onclick="window.open('/cgi-bin/acf/alpine-baselayout/health/network', '_blank')" class="dashboard-network dashboard-block large-block">
 		<div class="data-block data-system">
 			<h4 class="dashboard-block-title dashboard-title-network-stats">Network Stats</h4>
 			<div id="chartNetwork"> </div>
@@ -517,7 +516,7 @@ $(function networkChart() {
 <!-- Dashboard App Block - LINE 4 -->
 <div class="dashboard-main main-block">
 <!-- Dashboard Main Block - DISK & PARTITION 1 -->
-	<div class="dashboard-ssh dashboard-block large-block">
+	<div style="cursor: pointer;" onclick="window.open('/cgi-bin/acf/alpine-baselayout/health/storage, '_blank')'" class="dashboard-disk dashboard-block large-block">
 		<div class="data-block data-diskpart">
 			<h4 class="dashboard-block-title dashboard-title-disk-viewer">Disk | Partition Viewer</h4>
 				<p class="dashboard-infos dash-info-keys">
diff --git a/app/alpine-baselayout/health-model.lua b/app/alpine-baselayout/health-model.lua
index 399b010..4bb455b 100644
--- a/app/alpine-baselayout/health-model.lua
+++ b/app/alpine-baselayout/health-model.lua
@@ -92,7 +92,7 @@ mymodule.get_system = function (self)
 	system.boardVersion = cfe({ value=querycmd("cat /sys/devices/virtual/dmi/id/board_version") or "Unknown", label="Board Version" })
 	system.biosVendor = cfe({ value=querycmd("cat /sys/devices/virtual/dmi/id/bios_vendor") or "Unknown", label="Bios Vendor" })
 	system.biosVersion = cfe({ value=querycmd("cat /sys/devices/virtual/dmi/id/bios_version") or "Unknown", label="Bios Version" })
-	system.biosDate = cfe({ value=querycmd("cat /sys/devices/virtual/dmi/id/bios_date") or "Unknown", label="Bios Date" })
+	system.biosDate = cfe({ value=string.match(querycmd("cat /sys/devices/virtual/dmi/id/bios_date"), "%d%d%d%d") or "Unknown", label="Bios Date" })
 	return cfe({ type="group", value=system, label="System" })
 end
 
diff --git a/app/template-html.lsp b/app/template-html.lsp
index da172d0..3986826 100644
--- a/app/template-html.lsp
+++ b/app/template-html.lsp
@@ -83,7 +83,7 @@ end
 			$(function(){
 				$(":input:not(input[type=button],input[type=submit],button):enabled:not([readonly]):visible:first").focus();
 			});
-
+	
 			$(document).ready(function() {
 				// Login page input placeholder
 				if(window.location.href.indexOf("logon/logon") > -1){
@@ -91,8 +91,10 @@ end
 					document.querySelector('#password input').setAttribute('required','required');
 					document.querySelector('#userid input').setAttribute('placeholder','🔒 User ID');
 					document.querySelector('#password input').setAttribute('placeholder','🔑 Password');
-					document.querySelector('#userid input').setAttribute('autocomplete','username');
-					document.querySelector('#password input').setAttribute('autocomplete','current-password');
+					document.querySelector('#login').setAttribute('autocomplete','on');
+				
+					document.querySelector('#password input').setAttribute('autocomplete','off');
+					document.querySelector('.hidden').setAttribute('hidden','');
 			};
 			// Save collapse menu state 
 				var updated = window.localStorage.getItem('nav', updated);	
@@ -246,7 +248,7 @@ end
 
 			</div> <!-- main -->
 
-			<div id="footer">
+			<div id="footer" style="cursor: pointer;" onclick="window.open('https://www.alpinelinux.org/about/', '_blank')">
 				<a href="https://www.alpinelinux.org/about/" target="_blank">
 				© Alpine | 2008 - <%= html.html_escape(os.date("%Y")) %>
 				</a>
diff --git a/css/dashboard-main/logon.css b/css/dashboard-main/logon.css
index 14444e0..b577a8b 100644
--- a/css/dashboard-main/logon.css
+++ b/css/dashboard-main/logon.css
@@ -75,7 +75,7 @@
     margin-top: 1rem !important;
 }
 
-#logon .left {
+#login .left {
     display: none !important;
 } /*REMOVE ME ! ------------------- REMOVE LEFT CONTENT FOR PLACEHOLDER - GO TO readme.md for activate it in /usr/share/lua/5.4/html - Depend of your lua version acf install 20230407*/
 
diff --git a/css/dashboard-main/mobile.css b/css/dashboard-main/mobile.css
index 7931f94..0ea4355 100644
--- a/css/dashboard-main/mobile.css
+++ b/css/dashboard-main/mobile.css
@@ -140,7 +140,7 @@
     color: #d9d9d9;
     float: left;
     margin: 0 1.5rem 0 0.5rem;
-	padding: 1.25rem 2rem 1.25rem 1rem !important;
+	padding: 1.25rem 1.5rem 1.25rem 0.5rem !important;
 	}
 	
 	.icon-header {
diff --git a/lib/htmlviewfunctions.lua b/lib/htmlviewfunctions.lua
index e45eaf4..310a545 100644
--- a/lib/htmlviewfunctions.lua
+++ b/lib/htmlviewfunctions.lua
@@ -271,7 +271,11 @@ function mymodule.displayformstart(myform, page_info)
 		myform.action = page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action
 	end
 	mymodule.displayinfo(myform)
+	if page_info.action == "logon" then
+	io.write('<form action="' .. html.html_escape(myform.action) .. '" id="login" ')
+	else
 	io.write('<form action="' .. html.html_escape(myform.action) .. '" id="' .. html.html_escape(myform.id or page_info.action) .. '" ')
+	end
 	if myform.enctype and myform.enctype ~= "" then
 		io.write('enctype="'..html.html_escape(myform.enctype)..'" ')
 	end
-- 
GitLab