# HG changeset patch # User jake@edge2.net # Date 1116740594 25200 # Node ID 0e8d60d2bb2bf94dd43c2286d992307b87dcff05 # Parent c0faf50822eaa9ea08c17a9617242d0541ecb8b8 added annotate fixed error page to get tmpl_dir diff -r c0faf50822ea -r 0e8d60d2bb2b mercurial/hgweb.py --- a/mercurial/hgweb.py Sat May 21 20:31:54 2005 -0700 +++ b/mercurial/hgweb.py Sat May 21 22:43:14 2005 -0700 @@ -82,8 +82,8 @@ print '' class errpage(page): - def __init__(self): - page.__init__(self, title="Mercurial Web Error Page") + def __init__(self, tmpl_dir): + page.__init__(self, tmpl_dir, title="Mercurial Web Error Page") class change_list(page): def __init__(self, repo, tmpl_dir, reponame, numchanges = 50): @@ -204,12 +204,32 @@ print '
%s (%s)
' % \ (cgi.escape(self.fn), self.nodestr, ) print 'history
' % self.fn + print 'annotate
' % \ + (self.fn, self.nodestr) def content(self): print '
'
         print cgi.escape(self.repo.file(self.fn).read(self.node))
         print '
' +class annpage(page): + def __init__(self, repo, tmpl_dir, fn, node): + page.__init__(self, tmpl_dir) + self.repo = repo + self.fn = fn + self.nodestr = node + self.node = hg.bin(node) + print '
Annotated: %s (%s)
' % \ + (cgi.escape(self.fn), self.nodestr, ) + + def content(self): + print '
'
+        for n, l in self.repo.file(self.fn).annotate(self.node):
+            cnode = self.repo.changelog.lookup(n)
+            write(self.tmpl.do_page('annline.tmpl', cnode=hg.hex(cnode),
+                    cnum='% 6s' % n, fn=self.fn, line=cgi.escape(l[:-1])))
+        print '
' + class mfpage(page): def __init__(self, repo, tmpl_dir, node): page.__init__(self, tmpl_dir) @@ -285,7 +305,7 @@ elif args['cmd'][0] == 'chkin': if not args.has_key('nd'): - page = errpage() + page = errpage(self.tmpl_dir) print '
No Node!
' else: page = checkin(repo, self.tmpl_dir, args['nd'][0]) @@ -295,7 +315,7 @@ elif args['cmd'][0] == 'file': if not (args.has_key('nd') and args.has_key('fn')) and \ not (args.has_key('cs') and args.has_key('fn')): - page = errpage() + page = errpage(self.tmpl_dir) print '
Invalid Args!
' else: if args.has_key('nd'): @@ -309,7 +329,7 @@ elif args['cmd'][0] == 'mf': if not args.has_key('nd'): - page = errpage() + page = errpage(self.tmpl_dir) print '
No Node!
' else: page = mfpage(repo, self.tmpl_dir, args['nd'][0]) @@ -318,13 +338,26 @@ elif args['cmd'][0] == 'hist': if not args.has_key('fn'): - page = errpage() + page = errpage(self.tmpl_dir) print '
No Filename!
' else: page = histpage(repo, self.tmpl_dir, args['fn'][0]) page.content() page.endpage() + elif args['cmd'][0] == 'ann': + if not args.has_key('fn'): + page = errpage(self.tmpl_dir) + print '
No Filename!
' + elif not args.has_key('nd'): + page = errpage(self.tmpl_dir) + print '
No Node!
' + else: + page = annpage(repo, self.tmpl_dir, args['fn'][0], + args['nd'][0]) + page.content() + page.endpage() + elif args['cmd'][0] == 'branches': httphdr("text/plain") nodes = [] @@ -355,7 +388,7 @@ sys.stdout.write(z.flush()) else: - page = errpage() + page = errpage(self.tmpl_dir) print '
unknown command: %s
' % \ cgi.escape(args['cmd'][0]) page.endpage() diff -r c0faf50822ea -r 0e8d60d2bb2b templates/annline.tmpl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/annline.tmpl Sat May 21 22:43:14 2005 -0700 @@ -0,0 +1,1 @@ +#cnum#:#line# diff -r c0faf50822ea -r 0e8d60d2bb2b templates/htmlstart.tmpl --- a/templates/htmlstart.tmpl Sat May 21 20:31:54 2005 -0700 +++ b/templates/htmlstart.tmpl Sat May 21 22:43:14 2005 -0700 @@ -9,9 +9,14 @@ .filename { font-size: 150%; color: purple; } .manifest { font-size: 150%; color: purple; } .filehist { font-size: 150%; color: purple; } +.annotation { font-size: 150%; color: purple; } .plusline { color: green; } .minusline { color: red; } .atline { color: purple; } +a.annlinelink { text-decoration: none; color: black; } +a.revnumlink { text-decoration: none; color: black; } +a.annlinelink:hover { text-decoration: none; color: blue; } +a.revnumlink:hover { text-decoration: none; color: blue; }