Mercurial > public > src > rhodecode
comparison pylons_app/controllers/files.py @ 149:b3c93efd1c97
Updated template for summary (archives links)
added nex prev revision to file browser.
updated logic in files to implement next and prev revison switch
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 12 May 2010 10:29:41 +0200 |
parents | 873fd2dc62c2 |
children | 0c00fbaff55a |
comparison
equal
deleted
inserted
replaced
148:d928d5f0a251 | 149:b3c93efd1c97 |
---|---|
18 c.repo_name = get_repo_slug(request) | 18 c.repo_name = get_repo_slug(request) |
19 | 19 |
20 def index(self, repo_name, revision, f_path): | 20 def index(self, repo_name, revision, f_path): |
21 hg_model = HgModel() | 21 hg_model = HgModel() |
22 c.repo = repo = hg_model.get_repo(c.repo_name) | 22 c.repo = repo = hg_model.get_repo(c.repo_name) |
23 revision = request.POST.get('at_rev', None) or revision | |
23 | 24 |
24 revision = request.POST.get('at_rev', None) or revision | 25 def get_next_rev(cur): |
25 if request.POST.get('view_low'): | |
26 revision = int(revision) - 1 | |
27 if request.POST.get('view_high'): | |
28 revision = int(revision) + 1 | |
29 max_rev = len(c.repo.revisions) - 1 | 26 max_rev = len(c.repo.revisions) - 1 |
30 if revision > max_rev: | 27 r = cur + 1 |
31 revision = max_rev | 28 if r > max_rev: |
32 | 29 r = max_rev |
30 return r | |
31 | |
32 def get_prev_rev(cur): | |
33 r = cur - 1 | |
34 return r | |
35 | |
33 c.f_path = f_path | 36 c.f_path = f_path |
34 | 37 |
35 | 38 |
36 try: | 39 try: |
37 c.changeset = repo.get_changeset(repo._get_revision(revision)) | 40 cur_rev = repo.get_changeset(revision).revision |
41 prev_rev = repo.get_changeset(get_prev_rev(cur_rev)).raw_id | |
42 next_rev = repo.get_changeset(get_next_rev(cur_rev)).raw_id | |
43 | |
44 c.url_prev = url('files_home', repo_name=c.repo_name, | |
45 revision=prev_rev, f_path=f_path) | |
46 c.url_next = url('files_home', repo_name=c.repo_name, | |
47 revision=next_rev, f_path=f_path) | |
48 | |
49 c.changeset = repo.get_changeset(revision) | |
38 try: | 50 try: |
39 c.file_msg = c.changeset.get_file_message(f_path) | 51 c.file_msg = c.changeset.get_file_message(f_path) |
40 except: | 52 except: |
41 c.file_msg = None | 53 c.file_msg = None |
42 | 54 |
56 file_node = c.repo.get_changeset(revision).get_node(f_path) | 68 file_node = c.repo.get_changeset(revision).get_node(f_path) |
57 response.headers['Content-type'] = file_node.mimetype | 69 response.headers['Content-type'] = file_node.mimetype |
58 response.headers['Content-disposition'] = 'attachment; filename=%s' \ | 70 response.headers['Content-disposition'] = 'attachment; filename=%s' \ |
59 % f_path.split('/')[-1] | 71 % f_path.split('/')[-1] |
60 return file_node.content | 72 return file_node.content |
73 | |
74 def archivefile(self, repo_name, revision, fileformat): | |
75 return '%s %s %s' % (repo_name, revision, fileformat) | |
61 | 76 |
62 def diff(self, repo_name, f_path): | 77 def diff(self, repo_name, f_path): |
63 hg_model = HgModel() | 78 hg_model = HgModel() |
64 diff1 = request.GET.get('diff1') | 79 diff1 = request.GET.get('diff1') |
65 diff2 = request.GET.get('diff2') | 80 diff2 = request.GET.get('diff2') |