Mon Oct  4 00:25:09 CEST 2010  freestorm77@gmail.com
  * status_web_pages_review.darcs.patch 
  
  I make some changes on status web pages
  
  status.xhtml:
  - Delete unused webform_css link
  - Align tables on the left
  
  tahoe-css:
  - Do some minor changes on code synthax
  - changes table.status-download-events style to look like other tables
  
  status.py:
  - Align table on the left
  - Changes table header
  - Add heading tags
  - Modify google api graph: add image border, calculate height to feet data
  

New patches:

[status_web_pages_review.darcs.patch 
freestorm77@gmail.com**20101003222509
 Ignore-this: f8a97000361430cde53431ed9e6eb913
 
 I make some changes on status web pages
 
 status.xhtml:
 - Delete unused webform_css link
 - Align tables on the left
 
 tahoe-css:
 - Do some minor changes on code synthax
 - changes table.status-download-events style to look like other tables
 
 status.py:
 - Align table on the left
 - Changes table header
 - Add heading tags
 - Modify google api graph: add image border, calculate height to feet data
 
] {
hunk ./src/allmydata/web/status.py 386
         if not self.download_status.storage_index:
             return
         srt = self.short_relative_time
-        l = T.ul()
-
-        t = T.table(class_="status-download-events")
-        t[T.tr[T.td["serverid"], T.td["sent"], T.td["received"],
-               T.td["shnums"], T.td["RTT"]]]
+        l = T.div()
+        
+        t = T.table(align="left", class_="status-download-events")
+        t[T.tr[T.th["serverid"], T.th["sent"], T.th["received"],
+               T.th["shnums"], T.th["RTT"]]]
         dyhb_events = []
         for serverid,requests in self.download_status.dyhb_requests.iteritems():
             for req in requests:
hunk ./src/allmydata/web/status.py 403
             if received is not None:
                 rtt = received - sent
             if not shnums:
-                shnums = []
+                shnums = ["-"]
             t[T.tr(style="background: %s" % self.color(serverid))[
                 [T.td[serverid_s], T.td[srt(sent)], T.td[srt(received)],
                  T.td[",".join([str(shnum) for shnum in shnums])],
hunk ./src/allmydata/web/status.py 409
                  T.td[self.render_time(None, rtt)],
                  ]]]
-        l["DYHB Requests:", t]
-
-        t = T.table(class_="status-download-events")
-        t[T.tr[T.td["range"], T.td["start"], T.td["finish"], T.td["got"],
-               T.td["time"], T.td["decrypttime"], T.td["pausedtime"],
-               T.td["speed"]]]
+        
+        l[T.h2["DYHB Requests:"], t]
+        l[T.br(clear="all")]
+        
+        t = T.table(align="left",class_="status-download-events")
+        t[T.tr[T.th["range"], T.th["start"], T.th["finish"], T.th["got"],
+               T.th["time"], T.th["decrypttime"], T.th["pausedtime"],
+               T.th["speed"]]]
         for r_ev in self.download_status.read_events:
             (start, length, requesttime, finishtime, bytes, decrypt, paused) = r_ev
             if finishtime is not None:
hunk ./src/allmydata/web/status.py 432
                    T.td[bytes], T.td[rtt], T.td[decrypt], T.td[paused],
                    T.td[speed],
                    ]]
-        l["Read Events:", t]
-
-        t = T.table(class_="status-download-events")
-        t[T.tr[T.td["type"], T.td["segnum"], T.td["when"], T.td["range"],
-               T.td["decodetime"], T.td["segtime"], T.td["speed"]]]
+        
+        l[T.h2["Read Events:"], t]
+        l[T.br(clear="all")]
+        
+        t = T.table(align="left",class_="status-download-events")
+        t[T.tr[T.th["type"], T.th["segnum"], T.th["when"], T.th["range"],
+               T.th["decodetime"], T.th["segtime"], T.th["speed"]]]
         reqtime = (None, None)
         for s_ev in self.download_status.segment_events:
             (etype, segnum, when, segstart, seglen, decodetime) = s_ev
hunk ./src/allmydata/web/status.py 443
             if etype == "request":
-                t[T.tr[T.td["request"], T.td["seg%d" % segnum],
-                       T.td[srt(when)]]]
+                t[T.tr[T.td["request"],
+                    T.td["seg%d" % segnum],
+                    T.td[srt(when)],
+                    T.td["-"],
+                    T.td["-"],
+                    T.td["-"],
+                    T.td["-"]]]
+                    
                 reqtime = (segnum, when)
             elif etype == "delivery":
                 if reqtime[0] == segnum:
hunk ./src/allmydata/web/status.py 466
                        T.td[segtime], T.td[speed]]]
             elif etype == "error":
                 t[T.tr[T.td["error"], T.td["seg%d" % segnum]]]
-        l["Segment Events:", t]
+                
+        l[T.h2["Segment Events:"], t]
+        l[T.br(clear="all")]
 
hunk ./src/allmydata/web/status.py 470
-        t = T.table(border="1")
-        t[T.tr[T.td["serverid"], T.td["shnum"], T.td["range"],
-               T.td["txtime"], T.td["rxtime"], T.td["received"], T.td["RTT"]]]
+        t = T.table(align="left",class_="status-download-events")
+        t[T.tr[T.th["serverid"], T.th["shnum"], T.th["range"],
+               T.th["txtime"], T.th["rxtime"], T.th["received"], T.th["RTT"]]]
         reqtime = (None, None)
         request_events = []
         for serverid,requests in self.download_status.requests.iteritems():
hunk ./src/allmydata/web/status.py 491
                 T.td[srt(sent)], T.td[srt(received)], T.td[receivedlen],
                 T.td[self.render_time(None, rtt)],
                 ]]
-        l["Requests:", t]
+                
+        l[T.h2["Requests:"], t]
+        l[T.br(clear="all")]
 
         return l
 
hunk ./src/allmydata/web/status.py 839
         total = self.update_status.timings.get("total")
         per_server = self.update_status.timings.get("per_server")
         base = "http://chart.apis.google.com/chart?"
-        pieces = ["cht=bhs", "chs=400x300"]
+        pieces = ["cht=bhs"]
         pieces.append("chco=ffffff,4d89f9,c6d9fd") # colors
         data0 = []
         data1 = []
hunk ./src/allmydata/web/status.py 844
         data2 = []
+        nb_nodes = 0
+        graph_botom_margin= 21
+        graph_top_margin = 5
         peerids_s = []
         top_abs = started
         # we sort the queries by the time at which we sent the first request
hunk ./src/allmydata/web/status.py 856
         peerids = [t[1] for t in sorttable]
 
         for peerid in peerids:
+            nb_nodes += 1
             times = per_server[peerid]
             peerid_s = idlib.shortnodeid_b2a(peerid)
             peerids_s.append(peerid_s)
hunk ./src/allmydata/web/status.py 876
         if finished:
             top_abs = max(top_abs, finished)
         top_rel = top_abs - started
+        chs ="chs=400x%d" % ( (nb_nodes*28) + graph_top_margin + graph_botom_margin )
         chd = "chd=t:" + "|".join([",".join(data0),
                                    ",".join(data1),
                                    ",".join(data2)])
hunk ./src/allmydata/web/status.py 881
         pieces.append(chd)
+        pieces.append(chs)
         chds = "chds=0,%0.3f" % top_rel
         pieces.append(chds)
         pieces.append("chxt=x,y")
hunk ./src/allmydata/web/status.py 897
             pieces.append("chm=r,FF0000,0,%0.3f,%0.3f" % (finished_f,
                                                           finished_f+0.01))
         url = base + "&".join(pieces)
-        return T.img(src=url, align="right", float="right")
+        return T.img(src=url,border="1",align="right", float="right")
 
 
 class Status(rend.Page):
hunk ./src/allmydata/web/status.xhtml 4
 <html xmlns:n="http://nevow.com/ns/nevow/0.1">
   <head>
     <title>Tahoe-LAFS - Current Uploads/Downloads</title>
-    <link href="/webform_css" rel="stylesheet" type="text/css"/>
     <link href="/tahoe_css" rel="stylesheet" type="text/css"/>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
hunk ./src/allmydata/web/status.xhtml 13
 
 
 <h2>Active Operations:</h2>
-<table class="table-headings-top" n:render="sequence" n:data="active_operations">
+<table align="left" class="table-headings-top" n:render="sequence" n:data="active_operations">
   <tr n:pattern="header">
     <th>Type</th>
     <th>Storage Index</th>
hunk ./src/allmydata/web/status.xhtml 32
   </tr>
   <tr n:pattern="empty"><td>No active operations!</td></tr>
 </table>
-
+<br clear="all" />
 
 <h2>Recent Operations:</h2>
hunk ./src/allmydata/web/status.xhtml 35
-<table class="table-headings-top" n:render="sequence" n:data="recent_operations">
+<table align="left" class="table-headings-top" n:render="sequence" n:data="recent_operations">
   <tr n:pattern="header">
     <th>Started</th>
     <th>Type</th>
hunk ./src/allmydata/web/status.xhtml 56
   </tr>
   <tr n:pattern="empty"><td>No recent operations!</td></tr>
 </table>
+<br clear="all" />
 
 <div>Return to the <a href="/">Welcome Page</a></div>
 
hunk ./src/allmydata/web/tahoe.css 27
   color: white;
   background-color: #58a1c3;
 }
-td { padding: .3em .3em; }
-th { padding: .3em .3em; }
-.table-headings-top th { text-align: center; }
-.table-headings-left th { text-align: right; vertical-align: top; }
+td {
+    padding: .3em .3em;
+}
+
+th {
+    padding: .3em .3em;
+}
+
+.table-headings-top th {
+    text-align: center;
+    
+}
+.table-headings-left th {
+    text-align: right;
+    vertical-align: top;
+}
 legend {
   font-weight: bold;
 }
hunk ./src/allmydata/web/tahoe.css 155
 /* recent upload/download status pages */
 
 table.status-download-events {
-  border: 1px solid #aaa;
+  #border: 1px solid #aaa;
+  margin: 1em auto;
+  border: .2em solid #3289b4; 
+  border-spacing: 1px;
 }
 table.status-download-events td {
   border: 1px solid #a00;
}

Context:

[setup: use execfile to access _auto_deps.py in its proper location of src/allmydata/ instead of copying it into place when setup.py is executed
zooko@zooko.com**20100906055714
 Ignore-this: c179b42672d775580afad40121f86812
] 
[trivial: M-x whitespace-cleanup
zooko@zooko.com**20100903144712
 Ignore-this: 1bb764d11ac69b4a35ea091cfb13158a
] 
[minor: remove unused interface declaration, change allmydata.org to tahoe-lafs.org in email address, fix wording in relnotes.txt
zooko@zooko.com**20100930153708
 Ignore-this: a452969228afed2774de375e29fa3048
] 
[immutable/repairer.py: don't use the default happiness setting when repairing
Kevan Carstensen <kevan@isnotajoke.com>**20100927200102
 Ignore-this: bd704d9744b970849da8d46a16b8089a
] 
[NEWS: note dependency updates to pycryptopp and pycrypto.
david-sarah@jacaranda.org**20100924191207
 Ignore-this: eeaf5c9c9104f24c450c2ec4482ac1ee
] 
[TAG allmydata-tahoe-1.8.0
zooko@zooko.com**20100924021631
 Ignore-this: 494ca0a885c5e20c883845fc53e7ab5d
] 
Patch bundle hash:
b66367217ad59e92777d68540c1bb0d2f667bfb5
