Skip to content

Commit e634aed

Browse files
committed
update - testing
1 parent 7eb09be commit e634aed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+4194
-577
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ yarn-error.log*
2727
# Local Netlify folder
2828
.netlify
2929
/static/library/**/*.log
30+
.aider*

pr_automation.sh

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,13 @@ do
6161
esac
6262
done
6363

64-
# 4. Push the changes to the remote repository (Silent, but allows errors/passphrase prompt)
65-
if ! git push -u origin "$BRANCH_TO_USE" > /dev/null 2>&1; then
64+
# 4. Push the changes to the remote repository
65+
echo "🚀 Pushing changes to remote branch 'origin/$BRANCH_TO_USE'..."
66+
# The redirection to /dev/null has been removed to allow the SSH passphrase prompt to be visible.
67+
if ! git push -u origin "$BRANCH_TO_USE"; then
6668
echo "----------------------------------------------"
67-
echo "❌ **FATAL ERROR: Git push failed.** Please fix your SSH/access rights (use ssh-add)."
69+
echo "❌ **FATAL ERROR: Git push failed.**"
70+
echo "Please ensure your SSH key is loaded (try 'ssh-add' if prompted for a passphrase)."
6871
echo "----------------------------------------------"
6972
exit 1
7073
fi
@@ -95,3 +98,4 @@ else
9598
echo "❌ **Action Failed.** Could not determine or create the Pull Request URL."
9699
fi
97100
echo "----------------------------------------------"
101+

static/gui/404.html

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>404 – Not Found</title>
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<style>
8+
body {margin:0;font-family:system-ui;background:#ff6b6b;color:white;display:grid;place-items:center;height:100vh;}
9+
.box {text-align:center;background:rgba(0,0,0,0.3);padding:3rem 2rem;border-radius:16px;}
10+
h1 {font-size:7rem;margin:0;}
11+
a {color:white;text-decoration:underline;}
12+
</style>
13+
</head>
14+
<body>
15+
<div class="box">
16+
<h1>404</h1>
17+
<p>Oops! This page doesn’t exist.</p>
18+
<p><a href="/">← Go home</a></p>
19+
</div>
20+
21+
<!-- This tiny script makes the magic happen -->
22+
<script>
23+
// Register the service worker that catches all broken navigation
24+
if ("serviceWorker" in navigator) {
25+
navigator.serviceWorker.register("/sw.js");
26+
}
27+
28+
// Optional: instantly cache this 404 page forever
29+
history.replaceState({is404: true}, "", location.href);
30+
</script>
31+
</body>
32+
</html>

static/gui/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and a combination of [Prince2 Project Management](https://prince2.com).
1111
## [gui-0.9] - Q4/2025
1212

1313
### Changes
14+
Nov-29 - Some of the webapps weren't staying installed - fixed it
1415
Nov-13 - Test A - TEST B - TEST C - TEST D - CLAUD YML 1 - CLAUD 2
1516

1617
## [gui-0.8] - Q3/2024

static/gui/GEMINI.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Gemini CLI Configuration
2+
3+
This file stores configuration and context for the Gemini CLI.
4+
5+
## Project Information
6+
7+
- **Project Name:** static-gui
8+
- **Current Directory:** /home/unclehowell/datro/static/gui
9+
- **Operating System:** linux
10+
- **Today's Date:** 2025-11-29
11+
12+
## Key Files and Directories
13+
14+
- **Main HTML:** index.html
15+
- **Configuration:** tailwind.config.js, package.json, manifest.json
16+
- **Source Code/App Logic:** app-store/, dashboard/
17+
- **Assets:** app-store/css/, app-store/fonts/, app-store/img/, app-store/js/, dashboard/css/, dashboard/fonts/, dashboard/img/, dashboard/js/, dashboard/media/, dashboard/scss/
18+
19+
## Notes
20+
21+
- The project appears to be a static website with a focus on an "app store" and "dashboard" interface.
22+
- It utilizes Tailwind CSS for styling.
23+
- Several JavaScript libraries are included (jQuery, Bootstrap, Featherlight, etc.).
24+
- There are multiple versions or demo HTML files, suggesting a development or staging process.
25+
26+
## Breadcrumb Navigation
27+
28+
- **Order:** Breadcrumb items in the `app-store/` directory appear visually inverted to their order in the HTML code. The first visible item (last in code) should be blank.
29+
30+
## TODO
31+
32+
- [ ] Review `app-store/apps/` for application-specific details.
33+
- [ ] Analyze `dashboard/apps.json` for dashboard data structure.
34+
- [ ] Investigate the purpose of the numerous demo HTML files.
35+
- [ ] Check `package.json` for build scripts or dependencies.

static/gui/app-error.html

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>App Not Available</title>
7+
<style>
8+
body {
9+
margin: 0;
10+
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
11+
background-color: #454545; /* Dashboard grey background */
12+
color: white;
13+
display: grid;
14+
place-items: center;
15+
height: 100vh;
16+
text-align: center;
17+
}
18+
.error-box {
19+
background: rgba(0,0,0,0.3);
20+
padding: 3rem 2rem;
21+
border-radius: 16px;
22+
box-shadow: 0 4px 15px rgba(0,0,0,0.3);
23+
}
24+
h1 {
25+
font-size: 7rem;
26+
margin: 0;
27+
color: #ff6b6b;
28+
}
29+
p {
30+
font-size: 1.2rem;
31+
margin-bottom: 1rem;
32+
}
33+
a {
34+
color: white;
35+
text-decoration: underline;
36+
font-size: 1.1rem;
37+
padding: 10px 20px;
38+
border: 1px solid white;
39+
border-radius: 5px;
40+
margin-top: 20px;
41+
display: inline-block;
42+
}
43+
a:hover {
44+
background-color: rgba(255,255,255,0.2);
45+
}
46+
.install-reinstall-btn {
47+
background-color: #6a0dad; /* Purple for emphasis */
48+
border-color: #6a0dad;
49+
}
50+
.install-reinstall-btn:hover {
51+
background-color: #8a2be2;
52+
border-color: #8a2be2;
53+
}
54+
</style>
55+
</head>
56+
<body>
57+
<div class="error-box">
58+
<h1>!</h1>
59+
<p>App not available</p>
60+
<p>This app doesn't appear to be installed or running on your localhost.</p>
61+
<a href="#" id="goBackBtn">← Go Back</a>
62+
<a href="#" id="installReinstallBtn" class="install-reinstall-btn" style="display: none;">Install / Reinstall this app now</a>
63+
</div>
64+
65+
<script>
66+
// Function to get the last visited page from localStorage
67+
function getLastVisitedPage() {
68+
const visitedPages = JSON.parse(localStorage.getItem('visitedPages')) || [];
69+
// Return the second to last page if available, otherwise the last page
70+
return visitedPages.length > 1 ? visitedPages[visitedPages.length - 2] : visitedPages[visitedPages.length - 1];
71+
}
72+
73+
// Function to get the appId that caused the error (needs to be passed or stored)
74+
function getErrorAppId() {
75+
// This is a placeholder. In a real scenario, appId would be passed via URL params or localStorage.
76+
// For now, let's assume it's '004-001' for demonstration.
77+
// A more robust solution would involve passing the appId as a URL parameter to app-error.html
78+
// Example: app-error.html?appId=004-001
79+
const urlParams = new URLSearchParams(window.location.search);
80+
return urlParams.get('appId') || '004-001'; // Default to '004-001' if not provided
81+
}
82+
83+
document.addEventListener('DOMContentLoaded', function() {
84+
const goBackBtn = document.getElementById('goBackBtn');
85+
const installReinstallBtn = document.getElementById('installReinstallBtn');
86+
87+
// Handle "Go Back" button
88+
const lastPage = getLastVisitedPage();
89+
if (goBackBtn) {
90+
if (lastPage) {
91+
goBackBtn.href = lastPage;
92+
} else {
93+
// Fallback if no history is found
94+
goBackBtn.href = '000.html'; // Default to app store main page
95+
}
96+
}
97+
98+
// Handle "Install / Reinstall this app now" button
99+
const appId = getErrorAppId();
100+
if (installReinstallBtn && appId) {
101+
// Construct the app detail page URL
102+
// Assuming app detail pages are like app-store/app-description-APPID.html
103+
installReinstallBtn.href = `../app-store/app-description-${appId}.html`;
104+
installReinstallBtn.style.display = 'inline-block';
105+
}
106+
});
107+
108+
// Script to track visited pages (should ideally be in a global JS file)
109+
// For now, adding it here for demonstration.
110+
document.addEventListener('DOMContentLoaded', function() {
111+
const visitedPages = JSON.parse(localStorage.getItem('visitedPages')) || [];
112+
const currentPage = window.location.href;
113+
114+
// Add current page to history, limit to last 2 pages
115+
visitedPages.push(currentPage);
116+
if (visitedPages.length > 2) {
117+
visitedPages.shift(); // Remove the oldest page
118+
}
119+
localStorage.setItem('visitedPages', JSON.stringify(visitedPages));
120+
});
121+
</script>
122+
</body>
123+
</html>

static/gui/app-store/000-new.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@
4646
<div class="box-row">
4747
<div class="box-cell box1">
4848
<ul class="breadcrumb" id="btn noHover">
49-
<li class='btn noHover'>
50-
<a href="#" style="width:auto!Important;"><span class="icon icon-home"></span> <span class="text2">Categories</span></a>
51-
</li>
52-
<li>
53-
<a href='000.html' style='width:auto!Important;filter: brightness(1);background:rgba(0,0,0,0.55);border: 1px solid rgba(255,255,255,0.4);position: initial; padding-left: 48px!Important; margin-top: 0px;'><span class="text2" style="margin-left:1vw;">Categories</span></a>
49+
<li class="btn">
50+
<a href="#"></a>
5451
</li>
5552
<li class="btn noHover">
56-
<a class='backtodash' href='000.html'><span class="text2">App Store</span></a>
53+
<a href='000.html'><span class="text2">App Store</span></a>
54+
</li>
55+
<li class="btn">
56+
<a href='000.html'><span class="text2">Categories</span></a>
5757
</li>
5858
<li class="btn">
59-
<a href='../dashboard/001-a.html'><span class="icon icon-search"></span> <span class="text"></span></a>
59+
<a href='../dashboard/001-a.html'><span class="icon icon-search"></span> <span class="text">Search</span></a>
6060
</li>
6161
</ul>
6262
</div>
@@ -138,4 +138,4 @@
138138
.then(response => console.log('Success:', response));
139139
</script>
140140
</body>
141-
</html>
141+
</html>

static/gui/app-store/000.html

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
<!DOCTYPE html>
32
<html>
43
<head>
@@ -164,14 +163,17 @@
164163
<div class="box-row">
165164
<div class="box-cell box1">
166165
<ul class="breadcrumb" id="btn noHover">
167-
<li class="btn noHover" style=" padding-left: 12px;">
168-
<a href="000.html" style="width:auto!Important;"><span class="text2">Categories</span></a>
166+
<li class="btn">
167+
<a href="#"></a>
169168
</li>
170169
<li class="btn noHover">
171-
<a class="backtodash" href="000.html"><span class="text2">App Store</span></a>
170+
<a href="000.html"><span class="text2">App Store</span></a>
172171
</li>
173172
<li class="btn">
174-
<a href="../dashboard/001-a.html"><span class="icon icon-search"></span> <span class="text"></span></a>
173+
<a href="000.html"><span class="text2">Categories</span></a>
174+
</li>
175+
<li class="btn">
176+
<a href="../dashboard/001-a.html"><span class="icon icon-search"></span> <span class="text">Search</span></a>
175177
</li>
176178
</ul>
177179
</div>
@@ -255,5 +257,4 @@
255257
<script src="js/rocket-loader.min.js" data-cf-settings="36d8ac766779005746c1cf8b-|49" defer></script>
256258
<!-- noop change -->
257259
</body>
258-
</html>
259-
260+
</html>

static/gui/app-store/002.html

Lines changed: 51 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,36 @@
44
<meta charset="UTF-8">
55
<meta content="width=device-width, initial-scale=1.0" name="viewport">
66
<title>App Store</title>
7-
<link href="css/breadcrumb.css" rel="stylesheet">
8-
<link href="css/appstore.css" rel="stylesheet">
7+
<link href="../dashboard/media/css/breadcrumb.css" rel="stylesheet">
8+
<link href="../dashboard/media/css/appstore.css" rel="stylesheet">
99
<link href="css/font-awesome.css" rel="stylesheet">
10+
<style>
11+
/* Additional styles specific to app-store pages if needed */
12+
body {
13+
background: rgb(44,12,33)!important;
14+
}
15+
.square {
16+
border:solid rgba(255,255,255,0.3) 1.5px;
17+
}
18+
</style>
1019
</head>
11-
<body class="app-store-page" style="margin-top: -10%; padding-top: 24vh;" onload="document.body.classList.add('loaded');">
20+
<body onload="document.body.classList.add('loaded');">
1221
<div class="container">
1322
<div class="box">
1423
<div class="box-row">
1524
<div class="box-cell box1">
1625
<ul class="breadcrumb" id="btn noHover">
17-
<li class='btn noHover'>
18-
<a href="#" style="width:auto!Important;"><span class="icon icon-play"></span> <span class="text2">Entertainment</span></a>
19-
</li>
20-
<li>
21-
<a href='000.html' style='width:auto!Important;filter: brightness(1);background:rgba(0,0,0,0.55);border: 1px solid rgba(255,255,255,0.4);position: initial; padding-left: 48px!Important; margin-top: 0px;'><span class="text2" style="margin-left:1vw;">Categories</span></a>
26+
<li class="btn">
27+
<a href="#"></a>
2228
</li>
2329
<li class="btn noHover">
24-
<a class='backtodash' href='000.html'><span class="text2">App Store</span></a>
30+
<a href="000.html"><span class="text2">App Store</span></a>
2531
</li>
2632
<li class="btn">
27-
<a href='../dashboard/001-a.html'><span class="icon icon-search"></span> <span class="text"></span></a>
33+
<a href="000.html"><span class="text2">Categories</span></a>
34+
</li>
35+
<li class="btn">
36+
<a href="../dashboard/001-a.html"><span class="icon icon-search"></span> <span class="text">Search</span></a>
2837
</li>
2938
</ul>
3039
</div>
@@ -33,7 +42,7 @@
3342
</div>
3443

3544
<main class="app-store-grid">
36-
<a class="app-card-link" href="apps/002-001/fetch.html">
45+
<a class="app-card-link" href="app-description-002-001.html">
3746
<article class="app-card" data-app-id="002-001">
3847
<div class="app-card__icon-wrapper">
3948
<img class="app-card__icon" src="apps/002-001/logo.png" alt="Hβnβ entertainment app icon 002-001">
@@ -45,7 +54,7 @@
4554
</article>
4655
</a>
4756

48-
<a class="app-card-link" href="apps/002-002/fetch.html">
57+
<a class="app-card-link" href="app-description-002-002.html">
4958
<article class="app-card" data-app-id="002-002">
5059
<div class="app-card__icon-wrapper">
5160
<img class="app-card__icon" src="apps/002-002/logo.png" alt="Hβnβ entertainment app icon 002-002">
@@ -71,5 +80,34 @@
7180
</main>
7281

7382
<script src="js/app-toggle.js"></script>
83+
<script>
84+
document.addEventListener('DOMContentLoaded', function() {
85+
const squares = document.querySelectorAll('.square');
86+
squares.forEach(square => {
87+
const imgElement = square.querySelector('img.rs');
88+
if (imgElement) {
89+
const src = imgElement.getAttribute('src');
90+
const match = src.match(/icons\/([^.]+)\.svg$/);
91+
if (match && match[1]) {
92+
const appId = match[1];
93+
if (appId === '000') {
94+
if (localStorage.getItem(appId) !== 'added') {
95+
square.style.display = 'none';
96+
} else {
97+
square.style.display = '';
98+
}
99+
return;
100+
}
101+
102+
if (localStorage.getItem(appId) === 'added') {
103+
square.style.display = '';
104+
} else {
105+
square.style.display = 'none';
106+
}
107+
}
108+
}
109+
});
110+
});
111+
</script>
74112
</body>
75-
</html>
113+
</html>

0 commit comments

Comments
 (0)