Update custom.html

master
RKBoss6 2025-07-09 12:02:32 -04:00 committed by GitHub
parent 556b7838ce
commit 137b9feaaa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 71 additions and 74 deletions

View File

@ -3,95 +3,92 @@
<link rel="stylesheet" href="../../css/spectre.min.css"> <link rel="stylesheet" href="../../css/spectre.min.css">
</head> </head>
<body> <body>
<p>Data Tesst 2</p> <p>Data Test 2</p>
<script src="../../core/lib/customize.js"></script> <script src="../../core/lib/customize.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id="storageInfo"></div> <div id="storageInfo"></div>
<div id="piechart" style="width: 900px; height: 500px;"></div> <div id="piechart" style="width: 900px; height: 500px;"></div>
<script> <script>
let globalApps = [];
// Called when we know what device we're using
function onInit(device) { function onInit(device) {
Util.showModal("Reading Storage..."); Util.showModal("Reading Storage...");
Puck.eval(`require("Storage").list(/\\.info$/).map(appInfoName => { Puck.eval(`require("Storage").list(/\\.info$/).map(appInfoName => {
let appInfo = require("Storage").readJSON(appInfoName,1)||{}; let appInfo = require("Storage").readJSON(appInfoName,1)||{};
//print(appInfoName, appInfo); var fileSize = 0, dataSize = 0;
var fileSize = 0, dataSize = 0; appInfo.files.split(",").forEach(f => fileSize += require("Storage").read(f).length);
appInfo.files.split(",").forEach(f => fileSize += require("Storage").read(f).length); var data = (appInfo.data||"").split(";");
var data = (appInfo.data||"").split(";"); function wildcardToRegexp(wc) {
function wildcardToRegexp(wc) { return new RegExp("^"+wc.replaceAll(".","\\\\.").replaceAll("?",".*")+"$");
return new RegExp("^"+wc.replaceAll(".","\\\\.").replaceAll("?",".*")+"$"); }
} if (data[0]) data[0].split(",").forEach(wc => {
// normal files require("Storage").list(wildcardToRegexp(wc), {sf:false}).forEach(f => {
if (data[0]) data[0].split(",").forEach(wc => { dataSize += require("Storage").read(f).length
require("Storage").list(wildcardToRegexp(wc), {sf:false}).forEach(f => { });
dataSize += require("Storage").read(f).length });
}); if (data[1]) data[1].split(",").forEach(wc => {
}); require("Storage").list(wildcardToRegexp(wc), {sf:true}).forEach(f => {
// storage files dataSize += require("Storage").open(f,"r").getLength();
if (data[1]) data[1].split(",").forEach(wc => { });
require("Storage").list(wildcardToRegexp(wc), {sf:true}).forEach(f => { });
dataSize += require("Storage").open(f,"r").getLength(); return [appInfo.id, fileSize, dataSize];
}); })`, function(apps) {
}); Util.hideModal();
return [appInfo.id, fileSize, dataSize]; globalApps = apps.sort((a,b) => (b[1]+b[2]) - (a[1]+a[2]));
})`, function(apps) {
apps.sort((a,b) => (b[1]+b[2]) - (a[1]+a[2]));
Util.hideModal();
console.log(apps);
if (apps.length === 0) {
document.getElementById("storageInfo").innerHTML = "<p>No apps found</p>";
return;
}
document.getElementById("storageInfo").innerHTML = ` document.getElementById("storageInfo").innerHTML = `
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
<tr> <tr>
<th>App</th> <th>App</th>
<th>Code (kb)</th> <th>Code (kb)</th>
<th>Data (kb)</th> <th>Data (kb)</th>
<th>Total (kb)</th> <th>Total (kb)</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
${apps.map(app => ` ${apps.map(app => `
<tr> <tr>
<td>${app[0]}</td> <td>${app[0]}</td>
<td>${(app[1]/1000).toFixed(1)}</td> <td>${(app[1]/1000).toFixed(1)}</td>
<td>${(app[2]/1000).toFixed(1)}</td> <td>${(app[2]/1000).toFixed(1)}</td>
<td>${((app[1]+app[2])/1000).toFixed(1)}</td> <td>${((app[1]+app[2])/1000).toFixed(1)}</td>
</tr>`).join("")} </tr>`).join("")}
</tbody> </tbody>
</table>`; </table>`;
if (apps.length === 0) {
document.getElementById("storageInfo").innerHTML = "<p>No apps found</p>";
}
});
function drawChart() { drawChart(); // Now safe to call
});
}
var data = google.visualization.arrayToDataTable([ function drawChart() {
${apps.map(app => ` if (globalApps.length === 0) return;
[${app[0]},${app[1]+app[2]}],
).join("")}
]); const chartData = [
['App', 'Total Size']
].concat(globalApps.map(app => [app[0], app[1] + app[2]]));
var options = { const data = google.visualization.arrayToDataTable(chartData);
title: 'App Storage'
const options = {
title: 'App Storage Breakdown',
is3D: true
}; };
var chart = new google.visualization.PieChart(document.getElementById('piechart')); const chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options); chart.draw(data, options);
} }
} google.charts.load('current', {'packages':['corechart']});
google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(() => {
google.charts.setOnLoadCallback(drawChart); drawChart();
});
</script> </script>
</body> </body>
</html> </html>