Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.adminSite.macros.databaseInfo
on databaseInfo () { <<Changes <<8/14/02; 5:43:24 PM by JES <<Created. local (htmltext); on add (s) { htmltext = htmltext + (s + "\r");}; local (pta = html.getPageTableAddress ()); local (bgcolors = {pta^.trbg1, pta^.trbg2}); local (t); new (tableType, @t); bundle { //build sorted table of databases local (adr); for adr in @system.compiler.files { local (f = nameOf (adr^)); local (dbname = file.fileFromPath (f)); local (dbsize = file.size (f)); local (modified = file.modified (f)); local (folder = file.folderFromPath (f)); local (foldername = file.fileFromPath (folder)); local (adrdb = @[f] ); local (dbtables = sizeOf (adrdb^)); local (adrfolder = @t.[foldername]); if not defined (adrfolder^) { new (tableType, adrfolder)}; local (adrdbinfo = @adrfolder^.[dbname]); new (tableType, adrdbinfo); adrdbinfo^.size = dbsize; adrdbinfo^.modified = modified; adrdbinfo^.tables = dbtables}; local (rootpath = window.getFile (@root)); local (adrrootfolder = @t.[" "]); new (tableType, adrrootfolder); local (rootname = file.fileFromPath (rootpath)); local (adrroot = @adrrootfolder^.[rootname] ); new (tableType, adrroot); adrroot^.size = file.size (rootpath); adrroot^.modified = file.modified (rootpath); adrroot^.tables = sizeOf (root)}; add ("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"92%\">"); bundle { //headers add ("<tr><td><b>Folder</b></td><td><b>Database</b></td><td align=\"right\"><b>Size</b></td><td align=\"right\"><b>Tables</b></td><td align=\"right\"><b>Modified</b></td></tr>")}; on datestring (d) { on pad (n) { return (string.padWithZeros (n, 2))}; local (day, month, year, hour, minute, second); date.get (d, @day, @month, @year, @hour, @minute, @second); local (meridian); if hour > 12 { hour = hour - 12; meridian = " PM"} else { if hour == 0 { hour = 12}; meridian = " AM"}; return (pad (month) + "/" + pad (day) + "/" + string.mid (year, 2, 2) + "; " + pad (hour) + ":" + pad (minute) + ":" + pad (second) + meridian)}; local (ct = 0, adrfolder, adrdb); for adrfolder in @t { local (folder = nameOf (adrfolder^)); for adrdb in adrfolder { add ("<tr bgcolor=\"" + bgcolors[(ct++% 2) + 1] + "\">"); add ("<td class=\"small\">" + folder + "</td>"); folder = ""; //only display the folder once add ("<td class=\"small\">" + nameOf (adrdb^) + "</td>"); add ("<td class=\"small\" align=\"right\">" + string.gigabyteString (adrdb^.size) + "</td>"); add ("<td class=\"small\" align=\"right\">" + adrdb^.tables + "</td>"); add ("<td class=\"small\" align=\"right\">" + datestring (adrdb^.modified) + "</td>"); add ("</tr>")}; add ("<tr><td> </td></tr>"); ct = 0}; add ("</table>"); return (htmltext)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.