Show More
@@ -0,0 +1,1 b'' | |||||
|
1 | <a class="revnumlink" href="?cmd=chkin;nd=#cnode#">#cnum#</a>:<a class="annlinelink" href="?cmd=file;fn=#fn#;cs=#cnode#">#line#</a> |
@@ -82,8 +82,8 b' class page:' | |||||
82 | print '</pre>' |
|
82 | print '</pre>' | |
83 |
|
83 | |||
84 | class errpage(page): |
|
84 | class errpage(page): | |
85 | def __init__(self): |
|
85 | def __init__(self, tmpl_dir): | |
86 | page.__init__(self, title="Mercurial Web Error Page") |
|
86 | page.__init__(self, tmpl_dir, title="Mercurial Web Error Page") | |
87 |
|
87 | |||
88 | class change_list(page): |
|
88 | class change_list(page): | |
89 | def __init__(self, repo, tmpl_dir, reponame, numchanges = 50): |
|
89 | def __init__(self, repo, tmpl_dir, reponame, numchanges = 50): | |
@@ -204,12 +204,32 b' class filepage(page):' | |||||
204 | print '<div class="filename">%s (%s)</div>' % \ |
|
204 | print '<div class="filename">%s (%s)</div>' % \ | |
205 | (cgi.escape(self.fn), self.nodestr, ) |
|
205 | (cgi.escape(self.fn), self.nodestr, ) | |
206 | print '<a href="?cmd=hist;fn=%s">history</a><br />' % self.fn |
|
206 | print '<a href="?cmd=hist;fn=%s">history</a><br />' % self.fn | |
|
207 | print '<a href="?cmd=ann;fn=%s;nd=%s">annotate</a><br />' % \ | |||
|
208 | (self.fn, self.nodestr) | |||
207 |
|
209 | |||
208 | def content(self): |
|
210 | def content(self): | |
209 | print '<pre>' |
|
211 | print '<pre>' | |
210 | print cgi.escape(self.repo.file(self.fn).read(self.node)) |
|
212 | print cgi.escape(self.repo.file(self.fn).read(self.node)) | |
211 | print '</pre>' |
|
213 | print '</pre>' | |
212 |
|
214 | |||
|
215 | class annpage(page): | |||
|
216 | def __init__(self, repo, tmpl_dir, fn, node): | |||
|
217 | page.__init__(self, tmpl_dir) | |||
|
218 | self.repo = repo | |||
|
219 | self.fn = fn | |||
|
220 | self.nodestr = node | |||
|
221 | self.node = hg.bin(node) | |||
|
222 | print '<div class="annotation">Annotated: %s (%s)</div>' % \ | |||
|
223 | (cgi.escape(self.fn), self.nodestr, ) | |||
|
224 | ||||
|
225 | def content(self): | |||
|
226 | print '<pre>' | |||
|
227 | for n, l in self.repo.file(self.fn).annotate(self.node): | |||
|
228 | cnode = self.repo.changelog.lookup(n) | |||
|
229 | write(self.tmpl.do_page('annline.tmpl', cnode=hg.hex(cnode), | |||
|
230 | cnum='% 6s' % n, fn=self.fn, line=cgi.escape(l[:-1]))) | |||
|
231 | print '</pre>' | |||
|
232 | ||||
213 | class mfpage(page): |
|
233 | class mfpage(page): | |
214 | def __init__(self, repo, tmpl_dir, node): |
|
234 | def __init__(self, repo, tmpl_dir, node): | |
215 | page.__init__(self, tmpl_dir) |
|
235 | page.__init__(self, tmpl_dir) | |
@@ -285,7 +305,7 b' class hgweb:' | |||||
285 |
|
305 | |||
286 | elif args['cmd'][0] == 'chkin': |
|
306 | elif args['cmd'][0] == 'chkin': | |
287 | if not args.has_key('nd'): |
|
307 | if not args.has_key('nd'): | |
288 | page = errpage() |
|
308 | page = errpage(self.tmpl_dir) | |
289 | print '<div class="errmsg">No Node!</div>' |
|
309 | print '<div class="errmsg">No Node!</div>' | |
290 | else: |
|
310 | else: | |
291 | page = checkin(repo, self.tmpl_dir, args['nd'][0]) |
|
311 | page = checkin(repo, self.tmpl_dir, args['nd'][0]) | |
@@ -295,7 +315,7 b' class hgweb:' | |||||
295 | elif args['cmd'][0] == 'file': |
|
315 | elif args['cmd'][0] == 'file': | |
296 | if not (args.has_key('nd') and args.has_key('fn')) and \ |
|
316 | if not (args.has_key('nd') and args.has_key('fn')) and \ | |
297 | not (args.has_key('cs') and args.has_key('fn')): |
|
317 | not (args.has_key('cs') and args.has_key('fn')): | |
298 | page = errpage() |
|
318 | page = errpage(self.tmpl_dir) | |
299 | print '<div class="errmsg">Invalid Args!</div>' |
|
319 | print '<div class="errmsg">Invalid Args!</div>' | |
300 | else: |
|
320 | else: | |
301 | if args.has_key('nd'): |
|
321 | if args.has_key('nd'): | |
@@ -309,7 +329,7 b' class hgweb:' | |||||
309 |
|
329 | |||
310 | elif args['cmd'][0] == 'mf': |
|
330 | elif args['cmd'][0] == 'mf': | |
311 | if not args.has_key('nd'): |
|
331 | if not args.has_key('nd'): | |
312 | page = errpage() |
|
332 | page = errpage(self.tmpl_dir) | |
313 | print '<div class="errmsg">No Node!</div>' |
|
333 | print '<div class="errmsg">No Node!</div>' | |
314 | else: |
|
334 | else: | |
315 | page = mfpage(repo, self.tmpl_dir, args['nd'][0]) |
|
335 | page = mfpage(repo, self.tmpl_dir, args['nd'][0]) | |
@@ -318,13 +338,26 b' class hgweb:' | |||||
318 |
|
338 | |||
319 | elif args['cmd'][0] == 'hist': |
|
339 | elif args['cmd'][0] == 'hist': | |
320 | if not args.has_key('fn'): |
|
340 | if not args.has_key('fn'): | |
321 | page = errpage() |
|
341 | page = errpage(self.tmpl_dir) | |
322 | print '<div class="errmsg">No Filename!</div>' |
|
342 | print '<div class="errmsg">No Filename!</div>' | |
323 | else: |
|
343 | else: | |
324 | page = histpage(repo, self.tmpl_dir, args['fn'][0]) |
|
344 | page = histpage(repo, self.tmpl_dir, args['fn'][0]) | |
325 | page.content() |
|
345 | page.content() | |
326 | page.endpage() |
|
346 | page.endpage() | |
327 |
|
347 | |||
|
348 | elif args['cmd'][0] == 'ann': | |||
|
349 | if not args.has_key('fn'): | |||
|
350 | page = errpage(self.tmpl_dir) | |||
|
351 | print '<div class="errmsg">No Filename!</div>' | |||
|
352 | elif not args.has_key('nd'): | |||
|
353 | page = errpage(self.tmpl_dir) | |||
|
354 | print '<div class="errmsg">No Node!</div>' | |||
|
355 | else: | |||
|
356 | page = annpage(repo, self.tmpl_dir, args['fn'][0], | |||
|
357 | args['nd'][0]) | |||
|
358 | page.content() | |||
|
359 | page.endpage() | |||
|
360 | ||||
328 | elif args['cmd'][0] == 'branches': |
|
361 | elif args['cmd'][0] == 'branches': | |
329 | httphdr("text/plain") |
|
362 | httphdr("text/plain") | |
330 | nodes = [] |
|
363 | nodes = [] | |
@@ -355,7 +388,7 b' class hgweb:' | |||||
355 | sys.stdout.write(z.flush()) |
|
388 | sys.stdout.write(z.flush()) | |
356 |
|
389 | |||
357 | else: |
|
390 | else: | |
358 | page = errpage() |
|
391 | page = errpage(self.tmpl_dir) | |
359 | print '<div class="errmsg">unknown command: %s</div>' % \ |
|
392 | print '<div class="errmsg">unknown command: %s</div>' % \ | |
360 | cgi.escape(args['cmd'][0]) |
|
393 | cgi.escape(args['cmd'][0]) | |
361 | page.endpage() |
|
394 | page.endpage() |
@@ -9,9 +9,14 b' table { font-size: 12px; }' | |||||
9 | .filename { font-size: 150%; color: purple; } |
|
9 | .filename { font-size: 150%; color: purple; } | |
10 | .manifest { font-size: 150%; color: purple; } |
|
10 | .manifest { font-size: 150%; color: purple; } | |
11 | .filehist { font-size: 150%; color: purple; } |
|
11 | .filehist { font-size: 150%; color: purple; } | |
|
12 | .annotation { font-size: 150%; color: purple; } | |||
12 | .plusline { color: green; } |
|
13 | .plusline { color: green; } | |
13 | .minusline { color: red; } |
|
14 | .minusline { color: red; } | |
14 | .atline { color: purple; } |
|
15 | .atline { color: purple; } | |
|
16 | a.annlinelink { text-decoration: none; color: black; } | |||
|
17 | a.revnumlink { text-decoration: none; color: black; } | |||
|
18 | a.annlinelink:hover { text-decoration: none; color: blue; } | |||
|
19 | a.revnumlink:hover { text-decoration: none; color: blue; } | |||
15 | </style> |
|
20 | </style> | |
16 | </HEAD> |
|
21 | </HEAD> | |
17 | <BODY> |
|
22 | <BODY> |
General Comments 0
You need to be logged in to leave comments.
Login now