From e17a8c4f2ae16f8daab460936a9b130d024173dd Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Thu, 28 Oct 2010 02:25:18 -0700 Subject: Rename Cydia.* to MobileCydia.* and add Cydia.frappliance. --- MobileCydia.app/storage.js | 88 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 MobileCydia.app/storage.js (limited to 'MobileCydia.app/storage.js') diff --git a/MobileCydia.app/storage.js b/MobileCydia.app/storage.js new file mode 100644 index 0000000..ae8cb85 --- /dev/null +++ b/MobileCydia.app/storage.js @@ -0,0 +1,88 @@ +var colors = ["#9090e0", "#4d4d70", "#7d7da0", "#7da0e0", "#d0d0f0", "#7070e0"]; + +var list = function (legend, color, name, value) { + legend.append('
' + + '
' + + '
' + name + ' (' + Math.round(value * 1000) / 10 + '%)
' + + '
'); +}; + +console.log(cydia.statfs("/")); + +var cut = function (parent, color, fraction, z) { + var deg = Math.round(360 * fraction); + if (deg < 2) + deg = 2; + parent.append('
'); +}; + +var chart = function (right, left, slices) { + var total = 0; + for (var i = 0; i != slices.length; ++i) { + var slice = slices[i]; + var z = slices.length - i; + if (slice[1] > 0.5) + cut(right, slice[0], total + 0.5, z); + total += slice[1]; + cut(total > 0.5 ? left : right, slice[0], total, z); + } +}; + +var setup = function (name, root, folders) { + var size = $("#" + name + "-size"); + var statfs = cydia.statfs(root); + var kb = statfs[0] * statfs[1] / 1024; + var total = kb / 1024; + + var unit; + if (total < 1000) + unit = 'M'; + else { + total = total / 1024; + unit = 'G' + } + + size.html(Math.round(total * 10) / 10 + " " + unit); + + var legend = $("#" + name + "-legend"); + var used = 0; + + var slices = []; + + if (folders != null) + for (var i = 0; i != folders.length; ++i) { + var folder = folders[i]; + var usage = cydia.du(folder[1]); + if (usage == null) + usage = 0; + var color = colors[i + 2]; + var percent = usage / kb; + list(legend, color, folder[0], percent); + slices.push([color, percent]); + used += usage; + } + + var free = statfs[0] * statfs[2] / 1024; + var other = (kb - free - used) / kb; + + slices.push([colors[0], other]); + chart($("#" + name + "-right"), $("#" + name + "-left"), slices); + + list(legend, colors[0], folders == null ? "Used" : "Other", other); + list(legend, colors[1], "Free", statfs[2] / statfs[1]); +}; + +$(function () { + setup("system", "/", null); + + setup("private", "/private/var", [ + ["Themes", "/Library/Themes/"], + ["iTunes", "/var/mobile/Media/iTunes_Control/"], + ["App Store", "/var/mobile/Applications/"], + ["Camera", "/var/mobile/Media/DCIM/"] + ]); +}); -- cgit v1.2.3