Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb.py @ 136:0e8d60d2bb2b
added annotate
fixed error page to get tmpl_dir
author | jake@edge2.net |
---|---|
date | Sat, 21 May 2005 22:43:14 -0700 |
parents | c0faf50822ea |
children | b45b1b00fc9e |
comparison
equal
deleted
inserted
replaced
135:c0faf50822ea | 136:0e8d60d2bb2b |
---|---|
80 else: | 80 else: |
81 print line | 81 print line |
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): |
90 page.__init__(self, tmpl_dir) | 90 page.__init__(self, tmpl_dir) |
91 self.repo = repo | 91 self.repo = repo |
202 self.nodestr = node | 202 self.nodestr = node |
203 self.node = hg.bin(node) | 203 self.node = hg.bin(node) |
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)) |
213 print '</pre>' | |
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]))) | |
211 print '</pre>' | 231 print '</pre>' |
212 | 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) |
283 page.content(hi = int(hi[0])) | 303 page.content(hi = int(hi[0])) |
284 page.endpage() | 304 page.endpage() |
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]) |
292 page.content() | 312 page.content() |
293 page.endpage() | 313 page.endpage() |
294 | 314 |
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'): |
302 page = filepage(repo, self.tmpl_dir, | 322 page = filepage(repo, self.tmpl_dir, |
303 args['fn'][0], node=args['nd'][0]) | 323 args['fn'][0], node=args['nd'][0]) |
307 page.content() | 327 page.content() |
308 page.endpage() | 328 page.endpage() |
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]) |
316 page.content() | 336 page.content() |
317 page.endpage() | 337 page.endpage() |
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]) |
345 page.content() | |
346 page.endpage() | |
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]) | |
325 page.content() | 358 page.content() |
326 page.endpage() | 359 page.endpage() |
327 | 360 |
328 elif args['cmd'][0] == 'branches': | 361 elif args['cmd'][0] == 'branches': |
329 httphdr("text/plain") | 362 httphdr("text/plain") |
353 sys.stdout.write(z.compress(chunk)) | 386 sys.stdout.write(z.compress(chunk)) |
354 | 387 |
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() |
362 | 395 |
363 if __name__ == "__main__": | 396 if __name__ == "__main__": |