Initial commit. Laid future groundwork for boot process and started work

on Agenda2.
This commit is contained in:
Innovation 2025-04-05 06:28:54 -05:00
parent ce68c54635
commit 65663ca23b
9 changed files with 1264 additions and 0 deletions

View file

@ -0,0 +1,7 @@
<?php
$installation = "main";
$init = "/hypervisor/installations/".$installation."/bootloader/os/";
echo("DremJS\n");
echo("Stage 2 - Bootloader (STUB)\n");
header('Location: '.$init);
?>

View file

@ -0,0 +1 @@
console.log("DremJS Core Start")

View file

@ -0,0 +1,27 @@
<?php
$installation = "main";
$location = "/hypervisor/installations/".$installation."/";
$wm = $location."/fs/lib/agenda2";
//echo("DremJS\n");
//echo("Stage 3 - init\n");
?>
<html>
<head>
<link rel="stylesheet" href="<?= $wm ?>/css/desktop.css">
<link rel="stylesheet" href="<?= $wm ?>/css/mobile.css">
</head>
<body>
<div id="dremjs">
<div id="taskbar">
</div>
<div id="applications">
</div>
</div>
<script src="core/dremjs-core.js"></script>
<script src="<?= $wm ?>/agenda2.js"></script>
</body>
</html>

View file

@ -0,0 +1,149 @@
/*
* _____/\\\\\\\\\________/\\\\\\\\\\\\__/\\\\\\\\\\\\\\\__/\\\\\_____/\\\__/\\\\\\\\\\\\________/\\\\\\\\\_______/\\\\\\\\\_____
* ___/\\\\\\\\\\\\\____/\\\//////////__\/\\\///////////__\/\\\\\\___\/\\\_\/\\\////////\\\____/\\\\\\\\\\\\\___/\\\///////\\\___
* __/\\\/////////\\\__/\\\_____________\/\\\_____________\/\\\/\\\__\/\\\_\/\\\______\//\\\__/\\\/////////\\\_\///______\//\\\__
* _\/\\\_______\/\\\_\/\\\____/\\\\\\\_\/\\\\\\\\\\\_____\/\\\//\\\_\/\\\_\/\\\_______\/\\\_\/\\\_______\/\\\___________/\\\/___
* _\/\\\\\\\\\\\\\\\_\/\\\___\/////\\\_\/\\\///////______\/\\\\//\\\\/\\\_\/\\\_______\/\\\_\/\\\\\\\\\\\\\\\________/\\\//_____
* _\/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_____________\/\\\_\//\\\/\\\_\/\\\_______\/\\\_\/\\\/////////\\\_____/\\\//________
* _\/\\\_______\/\\\_\/\\\_______\/\\\_\/\\\_____________\/\\\__\//\\\\\\_\/\\\_______/\\\__\/\\\_______\/\\\___/\\\/___________
* _\/\\\_______\/\\\_\//\\\\\\\\\\\\/__\/\\\\\\\\\\\\\\\_\/\\\___\//\\\\\_\/\\\\\\\\\\\\/___\/\\\_______\/\\\__/\\\\\\\\\\\\\\\_
* _\///________\///___\////////////____\///////////////__\///_____\/////__\////////////_____\///________\///__\///////////////__
*
* "Maintaining the agenda is our top priority."
* (C) Innovation Science LLC 2024
*/
var currentWID = 0
var mobileStatus = import("./mobile-detect.js").then((md) => {
var detector = new MobileDetect(window.navigator.userAgent);
return detector.mobile();
});
async function initAgendaWM() {
mobileStatus = await mobileStatus;
if(!mobileStatus) {
initAgendaDesktop();
} else {
initAgendaMobile();
}
}
function initAgendaDesktop() {
console.log("AGENDA2 Desktop");
createWindow("Test App 1", "/temp.html", true);
createWindow("Test App 2", "/temp.html", true);
}
function initAgendaMobile() {
console.log("AGENDA2 Mobile");
}
function createWindow(name, href, draggable) {
var wid = getNewWID();
var window = `\
<div onclick="moveToFront(${wid});"
name="${name}"
class="dAppWindow"
id="window-${wid}">
<div class="dAppTask" id="bar-${wid}">
<div class="dAppTaskChild">
<input type="button" onclick="closeApplication(${wid})" value="X" />
<input type="button" onclick="maximizeApplication(${wid})" value="\u25A1" />
<input type="button" onclick="minimizeApplication(${wid})" value="_" />
</div>
<div class="dAppTaskChild">
<p>${name}</p>
</div>
</div>
<br />
<div class="dAppFrame">
<iframe name="app-${wid}" id="app-${wid}" src="${href}"></iframe>
</div>
</div>
`;
var parent=document.getElementById('applications');
parent.insertAdjacentHTML('beforeend', window);
if(draggable && !mobileStatus) {
makeDraggable(wid);
}
}
/*function dragWindow(wid) {
var windowId = `window-${wid}`;
var barId = `bar-${wid}`;
var pos1 = 0;
var pos2 = 0;
var pos3 = 0;
var pos4 = 0;
var element = document.getElementById(windowId);
var bar = document.getElementById(barId);
bar.onmousedown = dragMouseDown;
function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e = e || window.event;
e.preventDefault();
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
element.style.top = (element.offsetTop - pos2) + "px";
element.style.left = (element.offsetLeft - pos1) + "px";
}
function closeDragElement() {
document.onmouseup = null;
document.onmousemove = null;
}
}*/
function makeDraggable(wid) {
win = document.getElementById(`window-${wid}`);
win.addEventListener('mousedown', function(e) {
e.preventDefault();
var offsetX = e.clientX - parseInt(window.getComputedStyle(this).left);
var offsetY = e.clientY - parseInt(window.getComputedStyle(this).top);
function mouseMoveHandler(e) {
var top = (e.clientY - offsetY);
if(top < 51) {
top = 51;
}
win.style.top = top + 'px';
win.style.left = (e.clientX - offsetX) + 'px';
}
function reset() {
window.removeEventListener('mousemove', mouseMoveHandler);
window.removeEventListener('mouseup', reset);
}
window.addEventListener('mousemove', mouseMoveHandler);
window.addEventListener('mouseup', reset);
});
}
function getNewWID() {
wid = currentWID;
currentWID+=1;
return wid;
}
initAgendaWM();

View file

@ -0,0 +1,68 @@
/* Taskbar */
#taskbar {
height: 48px;
width: 96%;
margin-left: auto;
margin-right: auto;
margin-top: 0px;
position: absolute;
background-color: black;
}
/* Applications and Windows */
#applications {
width: 100%;
height: auto;
}
.dAppWindow {
width:500px;
height:300px;
margin:5px;
padding: 5px;
position: absolute;
top: 60px;
left: 10px;
background-color:#87CEEB;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
resize: both;
overflow: auto;
}
.dAppWindow br {
margin-top: 10px;
}
.dAppFrame {
/*float: none;
height: 93%;*/
position: relative;
}
.dAppFrame iframe {
background-color: #FFFFFF;
border: 0;
width: 100%;
height: calc(100% - 30px);
object-fit: contain;
}
.dAppTask {
margin-right: 10px;
float: left;
position: relative;
height: 24px;
}
.dAppTaskChild {
float: left;
margin-right: 5px;
position: relative;
}
.dAppTaskChild p {
line-height: 0;
margin-bottom: 0px;
margin-top: 12px;
font-size: 16px;
}

File diff suppressed because one or more lines are too long

7
root/index.php Normal file
View file

@ -0,0 +1,7 @@
<?php
$installation = "main";
$bootloader = "/hypervisor/installations/".$installation."/bootloader/boot/";
echo("DremJS\n");
echo("Stage 1 - Entry Point (STUB)\n");
header('Location: '.$bootloader);
?>

1
root/temp.html Normal file
View file

@ -0,0 +1 @@
<h1>Application</h1>