pld-builder.new: PLD_Builder/bqueue.py, PLD_Builder/request.py, PLD_Builder...
glen
glen at pld-linux.org
Thu Sep 9 22:54:34 CEST 2010
Author: glen Date: Thu Sep 9 20:54:34 2010 GMT
Module: pld-builder.new Tag: HEAD
---- Log message:
- display date stamps in local time by using javascript on client side
---- Files affected:
pld-builder.new/PLD_Builder:
bqueue.py (1.16 -> 1.17) , request.py (1.84 -> 1.85) , request_handler_server.py (1.21 -> 1.22)
---- Diffs:
================================================================
Index: pld-builder.new/PLD_Builder/bqueue.py
diff -u pld-builder.new/PLD_Builder/bqueue.py:1.16 pld-builder.new/PLD_Builder/bqueue.py:1.17
--- pld-builder.new/PLD_Builder/bqueue.py:1.16 Sat May 8 20:23:00 2010
+++ pld-builder.new/PLD_Builder/bqueue.py Thu Sep 9 22:54:29 2010
@@ -25,7 +25,7 @@
for r in self.requests:
r.dump(f)
self.requests.reverse()
-
+
def dump_html(self, f):
f.write("""
<html>
@@ -33,6 +33,7 @@
<link rel="Shortcut Icon" href="http://www.pld-linux.org/favicon.ico"/>
<title>PLD builder queue</title>
<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="style.css">
+ <script type="text/javascript" src="script.js"></script>
</head>
<body>\n"""
)
@@ -41,7 +42,7 @@
r.dump_html(f)
self.requests.reverse()
f.write("</body></html>\n")
-
+
# read possibly compressed, signed queue
def read_signed(self):
if re.search(r"\.gz$", self.name):
================================================================
Index: pld-builder.new/PLD_Builder/request.py
diff -u pld-builder.new/PLD_Builder/request.py:1.84 pld-builder.new/PLD_Builder/request.py:1.85
--- pld-builder.new/PLD_Builder/request.py:1.84 Tue Aug 31 21:40:05 2010
+++ pld-builder.new/PLD_Builder/request.py Thu Sep 9 22:54:29 2010
@@ -35,6 +35,16 @@
def escape(s):
return xml.sax.saxutils.escape(s)
+# return timestamp with timezone information
+# so we could parse it in javascript
+def tzdate(t):
+ # as strftime %z is unofficial, and does not work, need to make it numeric ourselves
+# date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t))
+ date = time.strftime("%a, %b %d %Y %H:%M:%S", time.localtime(t))
+ # NOTE: the altzone is showing CURRENT timezone, not what the "t" reflects
+ tz = '{:=+05d}'.format(-time.altzone / 3600 * 100)
+ return date + ' ' + tz
+
def is_blank(e):
return e.nodeType == Element.TEXT_NODE and string.strip(e.nodeValue) == ""
@@ -96,12 +106,12 @@
def dump_html(self, f):
f.write(
"<div id=\"%(no)d\" class=\"%(flags)s\">\n"
- "<a href=\"#%(no)d\")>%(no)d</a>. %(time)s from <b>%(requester)s</b> "
+ "<a href=\"#%(no)d\")>%(no)d</a>. <span id=\"tz\">%(time)s</span> from <b>%(requester)s</b> "
"<small>%(id)s, prio=%(priority)d, jobs=%(max_jobs)d, %(flags)s</small>\n"
% {
'no': self.no,
'id': '<a href="srpms/%(id)s">%(id)s</a>' % {'id': self.id},
- 'time': escape(time.strftime("%Y.%m.%d %H:%M:%S", time.localtime(self.time))),
+ 'time': escape(tzdate(self.time)),
'requester': escape(self.requester),
'priority': self.priority,
'max_jobs': self.max_jobs,
================================================================
Index: pld-builder.new/PLD_Builder/request_handler_server.py
diff -u pld-builder.new/PLD_Builder/request_handler_server.py:1.21 pld-builder.new/PLD_Builder/request_handler_server.py:1.22
--- pld-builder.new/PLD_Builder/request_handler_server.py:1.21 Wed Aug 25 19:32:49 2010
+++ pld-builder.new/PLD_Builder/request_handler_server.py Thu Sep 9 22:54:29 2010
@@ -133,8 +133,39 @@
f.close()
os.umask(old_umask)
+def write_js():
+ js_file = path.www_dir + "/script.js"
+ # skip if file exists and code is not newer
+ if os.path.exists(js_file) and os.stat(__file__).st_mtime < os.stat(js_file).st_mtime:
+ return
+
+ js = """
+// update date stamps to reflect viewers timezone
+function update_tz(t) {
+ var el, off, dt,
+ collection = document.getElementsByTagName('span');
+ for (off in collection) {
+ el = collection[off];
+ if (el.id == 'tz') {
+ dt = new Date(el.innerHTML).toString();
+ // strip timezone name, it is usually wrong when not initialized
+ // from TZ env, but reverse calculated from os data
+ dt = dt.replace(/\s+\(.+\)/, "");
+ el.innerHTML = dt;
+ }
+ }
+}
+window.onload = update_tz;
+"""
+ old_umask = os.umask(0022)
+ f = open(js_file, "w")
+ f.write(js)
+ f.close()
+ os.umask(old_umask)
+
def main():
write_css();
+ write_js();
socket.setdefaulttimeout(30)
try:
init_conf()
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-builder.new/PLD_Builder/bqueue.py?r1=1.16&r2=1.17&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-builder.new/PLD_Builder/request.py?r1=1.84&r2=1.85&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-builder.new/PLD_Builder/request_handler_server.py?r1=1.21&r2=1.22&f=u
More information about the pld-cvs-commit
mailing list