Update interface.html

pull/925/head
Ronin0000 2021-09-20 07:31:41 -07:00 committed by GitHub
parent 51c41d5c48
commit a8f7fe7292
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 115 additions and 77 deletions

View File

@ -1,92 +1,130 @@
<html> <html>
<head> <head>
<style>
body {
padding: 0;
margin: 0;
}
html, body, #map {
height: 100%;
width: 100%;
}
#controls {
padding: 10px;
margin: 10px;
border: 1px solid black;
position:absolute;
right:0px;bottom:0px;
background-color: rgb(255, 255, 255);
z-index: 100;
}
</style>
<div id="controls">
<p>Create your events on the current week. Keep in note that your events repeat weekly.</p>
<p>One you have created your events, Click <button id="upload" class="btn btn-primary">Upload</button></p>
</div>
<meta charset='utf-8' />
<link rel="stylesheet" href="../../css/spectre.min.css"> <link rel="stylesheet" href="../../css/spectre.min.css">
<link href='fullcalendar/main.css' rel='stylesheet' /> </head>
<script src='fullcalendar/main.js'></script> <body>
<div class="form-group">
<p>Style: <select class="form-select" id="style">
<option>Christmas</option>
<option>Birthday</option>
</select>
</div></p>
<p>Line 1: <input type="text" id="line1" class="form-input" value="Merry Christmas"></p>
<p>Line 2: <input type="text" id="line2" class="form-input" value="Someone"></p>
<p>Line 3 (smaller): <input type="text" id="line3" class="form-input" value="Love from"></p>
<p>Line 4 (smaller): <input type="text" id="line4" class="form-input" value="Espruino Team"></p>
</div>
<p><button id="try" class="btn">Try in Emulator</button></p>
<p><button id="upload" class="btn btn-primary">Upload</button></p>
<p>This is currently Christmas-themed, but more themes will be added in the future.</p>
<script src="../../core/lib/customize.js"></script>
<script> <script>
function getApp() {
function getApp(){ // get the text to add
var events = calendar.getEvents() var line1 = document.getElementById("line1").value;
return`(function() { var line2 = document.getElementById("line2").value;
g.drawString(${JSON.stringify(calendar.getEvents().start)},x,y+=20); var line3 = document.getElementById("line3").value;
g.drawString(${JSON.stringify(calendar.getEvents().end)},x,y+=20); var line4 = document.getElementById("line4").value;
g.flip(); var style = document.getElementById("style").value;
g.clear(); // build the app's text using a templated String
setInterval(draw,50); if (style=="Birthday") return `(function() {
})(); var ib = require("heatshrink").decompress(atob("jk0ggGDhOZAAWQCYwMEBxAMFAAIaHyc/+c5DgwMC/84Dg4aCBgwcDBoOf+Y4GBoQEBn4zCI44DBDQ4NEyf4BpgoIBoefxINMBhApEBrQAKBrrrGWpANZHBT7FBpYqIFAYcJBggNOFQwoFDgwMHBwoMIBwYMKBrkykANLmcwBu0zBrMDBv4AFN5gA/ADY"));
`; var ir = require("heatshrink").decompress(atob("jk0ggGDhvdAAXQCYwMEBxAMFAAIaH6c/+c9DgwMC/8zDg4aC/4YCHIwNB7/zHAwNCAgM/DQwqDAYIaHBonT/oNMFBAND74NNBhApEBrQAKBrrrGWpANZHBT7FBpYqIFAYcJBgkA5oMF7gNFFQwoFDgwMHHIoMIAAPM5gMKBrk0oANLmcwBu0zBrMDBv4AFN5gA/ADYA="));
var ig = require("heatshrink").decompress(atob("jk0ggGDg93AAVwCYwMEBxAMFAAIaHuc/+c3DgwMC/8yDg4aC/4YCHIwNBv/zHAwNCAgM/DQwqDAYIaHBolz+4NMFBANDv8nBpgMIFIgNaABQNddYy1IBrI4KfYoNLFRAoDDhIMEgHnBgt+BooqGFAoqGBg4OFBhAODBhQNcmUgBpczmAN2mYNZgYN/AApvMAH4Ab"));
var igift = require("heatshrink").decompress(atob("q1QxH+ADOi0QbZ5nMHDQAbKgIACKa4ACKnJWVKghW0KgxWTKgxWyKhBWRKhBWwKhRWPKhRWuKhhWNKhhWtKpxWKKhys8KxBU8Ky5U+KypU/KyhU/KyhU/KynGKn5WTKn5WUKmHCADpJJE7uYABZUfKuuYKv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/AAv+Kv5VT/wADyIAaKpIlbABZSEKv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/Kv5V/ADNtKv6rdKzZVwKhAABy5V/Khw"));
var W=240,H=240;
var blns = [];
function updateFlake(f) {
f.im = [ir,ig,ib][Math.round(Math.random()*100)%3];
f.s = 0.4+Math.random()*0.5;
}
for (var i=0;i<6;i++) {
var f = {
y:Math.random()*H,x:(0.5+(i<3?i:i+5))*W/11,
v:0.5+Math.random(),r:0,
t:(0.5+Math.random())*0.15,
};
updateFlake(f);
blns.push(f);
}
function draw() {
blns.forEach(f=>{
f.y-=f.v;f.r+=f.t;
if (f.y<-22) {
f.y=H+22;
updateFlake(f);
} }
g.drawImage(f.im,f.x,f.y,{rotate:Math.sin(f.r)/2,scale:f.s});
document.addEventListener('DOMContentLoaded', function() { });
var calendarEl = document.getElementById('calendar'); var x = W/2, y = H/2;
var calendar = new FullCalendar.Calendar(calendarEl, { g.drawImage(igift,x-43,y-80);
initialView: 'timeGridWeek', g.setFont("6x8",2).setFontAlign(0,0);
headerToolbar: { g.drawString(${JSON.stringify(line1)},x,y+=20);
left: '', g.drawString(${JSON.stringify(line2)},x,y+=20);
center: 'title', g.setFont("6x8");
right: 'timeGridWeek,listWeek' g.drawString(${JSON.stringify(line3)},x,y+=20);
}, g.drawString(${JSON.stringify(line4)},x,y+=10);
navLinks: true, // can click day/week names to navigate views g.flip();
editable: true, }
selectable: true, g.clear();
selectMirror: true, setInterval(draw,50);
nowIndicator: true, })()`;
editable: true, // if (style=="Christmas")
height: 800, return `(function() {
select: function(arg) { var isnow = require("heatshrink").decompress(atob("jEagQWTgfAAocf+gFDh4FDiARBggVB3AFBl3Agf8jfkn/AgX/v/9/+Agfv/2//YrBgfwh4wCgfghYFJCIYdFFIw1EIIpNFL44FFOIoAP"));
var title = prompt('Event Title:'); var itree = require("heatshrink").decompress(atob("mtWxH+ADHHDTI0aGuXH5vNGmhqvTYIzBGtoxF6fTG4g4oGgQyBAAZssGoI0Ga1g1FGdo01ZgIAEGmHHNoLSuAAN/rdb0YFBGlgCBGYIABA4YArGYY1CGn4znAAM6GeVd5PQ5Iyurc/vQ0oGZFAn+d4XC3d5GddiGYIEBy+7zoEBGlFhoEcsQ9GT08+oFk1mkGdaVBMgNArnJ6/KzswGs/J6GlrlbqtbvPC5PCy8wGohniMIPJvIpCqmX3e7vI0BqhqlMIY0DqhtBqoEBa0xgBMIIoEqoABGQwzfsIhBv4qHABM50vQGjg1CGaN66DoBGt1ioGd5LoBGjo1PGYNhvLoCa7wnBqgvGA4YzCAgN5GUAsCqoDBmAHCAYU/wPQ0oSDGcBiDqkwAYcxoFd5PX6GdGjrIIqtUAAc3jk5vPC4fCy5pef5I2BTQMcnAHBy+7y95T0oADnFk1ekBpI2aGRUin7NGAA9hsIzVsIgHTAKZBZoPJ5LNDGhBpXGolcwOsrtcA4TNB3bNDGb/+sVin9AoGe6HX5InEvN/TkP+5XQwM/sRsBzqWB4QuKGjvC6HQ4QdDvKWBZYMwmAuHmFUCYNbqibX3fD5O7qolEZQQ0FBwgKDqgJBGiphEDwNUEgJbBFIQqCAgYOCB4IzCnE6GyhYFGoQnDABYzGAAQ1UAAo2NBoQSBnOB0t/Gjo2EABIPCoGe6HX4QzTGRIAEqtVF4QEBBQc4oE4y/J5PCvIxeABk/oADBvO73eXTyAyZMwM/Awd5vIOFGslAr2Av4PLNcU/jmA6HX5I1KasFcn8dTIOd5PJ4SZGGiNhAAIyNn0ckU+ZYe7AAJpJEYJnNGZk+n9kw9cBAcwGoN5aZg1JJJQABm8/oEjoDKC5ALCrUwqh/NrvQ6HDGp04n9doEdoE/sQJBZQZhCqgABGZk6zw0K/1dnVAoNAFwOlCYL1FubJBy4GCGh1AnOX4XC3YzHFYOeCgdV5PQ5OdD4rKBqqYNGYlbv+X3edGY3CGgKMDAAO7JAJgDAClcr2BEYgADaIZ0DL4uXGbDuB6HX5I1GsP+sNhOgWXIhBmWd4Od5PK4TwFGIJoBAYI2BAD0/jlcQoO7AAJaEGQQADGr0/sjNEvOdAoZmDGgw2ZsVAkeAZpQACGZI2VsU/kVGn1bZoPJZogpGGhA4GfRYwBoGC1mlBQbNFFoo0JNxAGCEod/wM6oFAn9iv/J6/Kzo1Ey9/MZQAKCg4GCFgTDEvPCSwI0BC5I0RN4ocEYYPQ5OdHgeXSwTFKGaJyKFYPC3f+MIdbpzFLAD4zB/1OqtbqtOGgYArGAIADGl9UAAI0wGQN5GoQ0vvIABGoI0uGYQABqo0zNOg0uaQY0/GllOGn40//w="));
if (title) { var W=g.getWidth(),H=g.getHeight();
calendar.addEvent({ var flakes = [];
title: title, for (var i=0;i<10;i++) {
start: arg.start, var f = {
end: arg.end, y:Math.random()*H,
allDay: arg.allDay x:(0.5+(i<5?i:i+5))*W/15,
}) v:0.7+Math.random(),
} s:0.6+Math.random(),
calendar.unselect() r:0,
}, t:0.1*(Math.random()-0.5)
eventClick: function(arg) { };
if (confirm('Are you sure you want to delete this event?')) { f.v = f.s * (1+Math.random());
arg.event.remove() flakes.push(f);
} }
}, function draw() {
}); flakes.forEach(f=>{
calendar.render(); f.y+=f.v;f.r+=f.t;
if (f.y>H+16) f.y=-8;
g.drawImage(isnow,f.x,f.y,{rotate:f.r,scale:f.s});
});
var x = W/2, y = H/2;
g.drawImage(itree,x-27,y-80);
g.setFont("6x8",2).setFontAlign(0,0);
g.drawString(${JSON.stringify(line1)},x,y+=20);
g.drawString(${JSON.stringify(line2)},x,y+=20);
g.setFont("6x8");
g.drawString(${JSON.stringify(line3)},x,y+=20);
g.drawString(${JSON.stringify(line4)},x,y+=10);
g.flip();
}
g.clear();
setInterval(draw,50);
})();
`;
}
// when 'try' is clicked, load the emulator...
document.getElementById("try").addEventListener("click", function() {
window.open("https://www.espruino.com/ide/emulator.html?code="+encodeURIComponent(getApp())+"&upload");
}); });
// When the 'upload' button is clicked...
document.getElementById("upload").addEventListener("click", function() { document.getElementById("upload").addEventListener("click", function() {
// send finished app (in addition to contents of app.json)
sendCustomizedApp({ sendCustomizedApp({
storage:[ storage:[
{"name":"sCalendar.custom.js", url:"schoolCalender.js", content:"Hello World"} {name:"mywelcome.custom.js", url:"app.js", content:getApp()},
] ]
}); });
}); });
</script> </script>
</head>
<body>
<div id='calendar'></div>
</body> </body>
</html> </html>