Ticket #1219: status_web_pages_review.darcs.patch

File status_web_pages_review.darcs.patch, 10.6 KB (added by freestorm, at 2010-10-03T23:03:01Z)
Line 
1Mon Oct  4 00:25:09 CEST 2010  freestorm77@gmail.com
2  * status_web_pages_review.darcs.patch
3 
4  I make some changes on status web pages
5 
6  status.xhtml:
7  - Delete unused webform_css link
8  - Align tables on the left
9 
10  tahoe-css:
11  - Do some minor changes on code synthax
12  - changes table.status-download-events style to look like other tables
13 
14  status.py:
15  - Align table on the left
16  - Changes table header
17  - Add heading tags
18  - Modify google api graph: add image border, calculate height to feet data
19 
20
21New patches:
22
23[status_web_pages_review.darcs.patch
24freestorm77@gmail.com**20101003222509
25 Ignore-this: f8a97000361430cde53431ed9e6eb913
26 
27 I make some changes on status web pages
28 
29 status.xhtml:
30 - Delete unused webform_css link
31 - Align tables on the left
32 
33 tahoe-css:
34 - Do some minor changes on code synthax
35 - changes table.status-download-events style to look like other tables
36 
37 status.py:
38 - Align table on the left
39 - Changes table header
40 - Add heading tags
41 - Modify google api graph: add image border, calculate height to feet data
42 
43] {
44hunk ./src/allmydata/web/status.py 386
45         if not self.download_status.storage_index:
46             return
47         srt = self.short_relative_time
48-        l = T.ul()
49-
50-        t = T.table(class_="status-download-events")
51-        t[T.tr[T.td["serverid"], T.td["sent"], T.td["received"],
52-               T.td["shnums"], T.td["RTT"]]]
53+        l = T.div()
54+       
55+        t = T.table(align="left", class_="status-download-events")
56+        t[T.tr[T.th["serverid"], T.th["sent"], T.th["received"],
57+               T.th["shnums"], T.th["RTT"]]]
58         dyhb_events = []
59         for serverid,requests in self.download_status.dyhb_requests.iteritems():
60             for req in requests:
61hunk ./src/allmydata/web/status.py 403
62             if received is not None:
63                 rtt = received - sent
64             if not shnums:
65-                shnums = []
66+                shnums = ["-"]
67             t[T.tr(style="background: %s" % self.color(serverid))[
68                 [T.td[serverid_s], T.td[srt(sent)], T.td[srt(received)],
69                  T.td[",".join([str(shnum) for shnum in shnums])],
70hunk ./src/allmydata/web/status.py 409
71                  T.td[self.render_time(None, rtt)],
72                  ]]]
73-        l["DYHB Requests:", t]
74-
75-        t = T.table(class_="status-download-events")
76-        t[T.tr[T.td["range"], T.td["start"], T.td["finish"], T.td["got"],
77-               T.td["time"], T.td["decrypttime"], T.td["pausedtime"],
78-               T.td["speed"]]]
79+       
80+        l[T.h2["DYHB Requests:"], t]
81+        l[T.br(clear="all")]
82+       
83+        t = T.table(align="left",class_="status-download-events")
84+        t[T.tr[T.th["range"], T.th["start"], T.th["finish"], T.th["got"],
85+               T.th["time"], T.th["decrypttime"], T.th["pausedtime"],
86+               T.th["speed"]]]
87         for r_ev in self.download_status.read_events:
88             (start, length, requesttime, finishtime, bytes, decrypt, paused) = r_ev
89             if finishtime is not None:
90hunk ./src/allmydata/web/status.py 432
91                    T.td[bytes], T.td[rtt], T.td[decrypt], T.td[paused],
92                    T.td[speed],
93                    ]]
94-        l["Read Events:", t]
95-
96-        t = T.table(class_="status-download-events")
97-        t[T.tr[T.td["type"], T.td["segnum"], T.td["when"], T.td["range"],
98-               T.td["decodetime"], T.td["segtime"], T.td["speed"]]]
99+       
100+        l[T.h2["Read Events:"], t]
101+        l[T.br(clear="all")]
102+       
103+        t = T.table(align="left",class_="status-download-events")
104+        t[T.tr[T.th["type"], T.th["segnum"], T.th["when"], T.th["range"],
105+               T.th["decodetime"], T.th["segtime"], T.th["speed"]]]
106         reqtime = (None, None)
107         for s_ev in self.download_status.segment_events:
108             (etype, segnum, when, segstart, seglen, decodetime) = s_ev
109hunk ./src/allmydata/web/status.py 443
110             if etype == "request":
111-                t[T.tr[T.td["request"], T.td["seg%d" % segnum],
112-                       T.td[srt(when)]]]
113+                t[T.tr[T.td["request"],
114+                    T.td["seg%d" % segnum],
115+                    T.td[srt(when)],
116+                    T.td["-"],
117+                    T.td["-"],
118+                    T.td["-"],
119+                    T.td["-"]]]
120+                   
121                 reqtime = (segnum, when)
122             elif etype == "delivery":
123                 if reqtime[0] == segnum:
124hunk ./src/allmydata/web/status.py 466
125                        T.td[segtime], T.td[speed]]]
126             elif etype == "error":
127                 t[T.tr[T.td["error"], T.td["seg%d" % segnum]]]
128-        l["Segment Events:", t]
129+               
130+        l[T.h2["Segment Events:"], t]
131+        l[T.br(clear="all")]
132 
133hunk ./src/allmydata/web/status.py 470
134-        t = T.table(border="1")
135-        t[T.tr[T.td["serverid"], T.td["shnum"], T.td["range"],
136-               T.td["txtime"], T.td["rxtime"], T.td["received"], T.td["RTT"]]]
137+        t = T.table(align="left",class_="status-download-events")
138+        t[T.tr[T.th["serverid"], T.th["shnum"], T.th["range"],
139+               T.th["txtime"], T.th["rxtime"], T.th["received"], T.th["RTT"]]]
140         reqtime = (None, None)
141         request_events = []
142         for serverid,requests in self.download_status.requests.iteritems():
143hunk ./src/allmydata/web/status.py 491
144                 T.td[srt(sent)], T.td[srt(received)], T.td[receivedlen],
145                 T.td[self.render_time(None, rtt)],
146                 ]]
147-        l["Requests:", t]
148+               
149+        l[T.h2["Requests:"], t]
150+        l[T.br(clear="all")]
151 
152         return l
153 
154hunk ./src/allmydata/web/status.py 839
155         total = self.update_status.timings.get("total")
156         per_server = self.update_status.timings.get("per_server")
157         base = "http://chart.apis.google.com/chart?"
158-        pieces = ["cht=bhs", "chs=400x300"]
159+        pieces = ["cht=bhs"]
160         pieces.append("chco=ffffff,4d89f9,c6d9fd") # colors
161         data0 = []
162         data1 = []
163hunk ./src/allmydata/web/status.py 844
164         data2 = []
165+        nb_nodes = 0
166+        graph_botom_margin= 21
167+        graph_top_margin = 5
168         peerids_s = []
169         top_abs = started
170         # we sort the queries by the time at which we sent the first request
171hunk ./src/allmydata/web/status.py 856
172         peerids = [t[1] for t in sorttable]
173 
174         for peerid in peerids:
175+            nb_nodes += 1
176             times = per_server[peerid]
177             peerid_s = idlib.shortnodeid_b2a(peerid)
178             peerids_s.append(peerid_s)
179hunk ./src/allmydata/web/status.py 876
180         if finished:
181             top_abs = max(top_abs, finished)
182         top_rel = top_abs - started
183+        chs ="chs=400x%d" % ( (nb_nodes*28) + graph_top_margin + graph_botom_margin )
184         chd = "chd=t:" + "|".join([",".join(data0),
185                                    ",".join(data1),
186                                    ",".join(data2)])
187hunk ./src/allmydata/web/status.py 881
188         pieces.append(chd)
189+        pieces.append(chs)
190         chds = "chds=0,%0.3f" % top_rel
191         pieces.append(chds)
192         pieces.append("chxt=x,y")
193hunk ./src/allmydata/web/status.py 897
194             pieces.append("chm=r,FF0000,0,%0.3f,%0.3f" % (finished_f,
195                                                           finished_f+0.01))
196         url = base + "&".join(pieces)
197-        return T.img(src=url, align="right", float="right")
198+        return T.img(src=url,border="1",align="right", float="right")
199 
200 
201 class Status(rend.Page):
202hunk ./src/allmydata/web/status.xhtml 4
203 <html xmlns:n="http://nevow.com/ns/nevow/0.1">
204   <head>
205     <title>Tahoe-LAFS - Current Uploads/Downloads</title>
206-    <link href="/webform_css" rel="stylesheet" type="text/css"/>
207     <link href="/tahoe_css" rel="stylesheet" type="text/css"/>
208     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
209   </head>
210hunk ./src/allmydata/web/status.xhtml 13
211 
212 
213 <h2>Active Operations:</h2>
214-<table class="table-headings-top" n:render="sequence" n:data="active_operations">
215+<table align="left" class="table-headings-top" n:render="sequence" n:data="active_operations">
216   <tr n:pattern="header">
217     <th>Type</th>
218     <th>Storage Index</th>
219hunk ./src/allmydata/web/status.xhtml 32
220   </tr>
221   <tr n:pattern="empty"><td>No active operations!</td></tr>
222 </table>
223-
224+<br clear="all" />
225 
226 <h2>Recent Operations:</h2>
227hunk ./src/allmydata/web/status.xhtml 35
228-<table class="table-headings-top" n:render="sequence" n:data="recent_operations">
229+<table align="left" class="table-headings-top" n:render="sequence" n:data="recent_operations">
230   <tr n:pattern="header">
231     <th>Started</th>
232     <th>Type</th>
233hunk ./src/allmydata/web/status.xhtml 56
234   </tr>
235   <tr n:pattern="empty"><td>No recent operations!</td></tr>
236 </table>
237+<br clear="all" />
238 
239 <div>Return to the <a href="/">Welcome Page</a></div>
240 
241hunk ./src/allmydata/web/tahoe.css 27
242   color: white;
243   background-color: #58a1c3;
244 }
245-td { padding: .3em .3em; }
246-th { padding: .3em .3em; }
247-.table-headings-top th { text-align: center; }
248-.table-headings-left th { text-align: right; vertical-align: top; }
249+td {
250+    padding: .3em .3em;
251+}
252+
253+th {
254+    padding: .3em .3em;
255+}
256+
257+.table-headings-top th {
258+    text-align: center;
259+   
260+}
261+.table-headings-left th {
262+    text-align: right;
263+    vertical-align: top;
264+}
265 legend {
266   font-weight: bold;
267 }
268hunk ./src/allmydata/web/tahoe.css 155
269 /* recent upload/download status pages */
270 
271 table.status-download-events {
272-  border: 1px solid #aaa;
273+  #border: 1px solid #aaa;
274+  margin: 1em auto;
275+  border: .2em solid #3289b4;
276+  border-spacing: 1px;
277 }
278 table.status-download-events td {
279   border: 1px solid #a00;
280}
281
282Context:
283
284[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
285zooko@zooko.com**20100906055714
286 Ignore-this: c179b42672d775580afad40121f86812
287]
288[trivial: M-x whitespace-cleanup
289zooko@zooko.com**20100903144712
290 Ignore-this: 1bb764d11ac69b4a35ea091cfb13158a
291]
292[minor: remove unused interface declaration, change allmydata.org to tahoe-lafs.org in email address, fix wording in relnotes.txt
293zooko@zooko.com**20100930153708
294 Ignore-this: a452969228afed2774de375e29fa3048
295]
296[immutable/repairer.py: don't use the default happiness setting when repairing
297Kevan Carstensen <kevan@isnotajoke.com>**20100927200102
298 Ignore-this: bd704d9744b970849da8d46a16b8089a
299]
300[NEWS: note dependency updates to pycryptopp and pycrypto.
301david-sarah@jacaranda.org**20100924191207
302 Ignore-this: eeaf5c9c9104f24c450c2ec4482ac1ee
303]
304[TAG allmydata-tahoe-1.8.0
305zooko@zooko.com**20100924021631
306 Ignore-this: 494ca0a885c5e20c883845fc53e7ab5d
307]
308Patch bundle hash:
309b66367217ad59e92777d68540c1bb0d2f667bfb5