Mercurial > kallithea
changeset 884:322b53be49cc beta
Fixed url bug when using numeric revision in file browser,
added follow branch checkbox for browsing only changesets from current branch
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 28 Dec 2010 18:17:04 +0100 |
parents | 20ed6f6a6329 |
children | 94f7585af8a1 |
files | rhodecode/controllers/files.py rhodecode/public/css/style.css rhodecode/templates/files/files_browser.html |
diffstat | 3 files changed, 49 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/files.py Tue Dec 28 01:57:53 2010 +0100 +++ b/rhodecode/controllers/files.py Tue Dec 28 18:17:04 2010 +0100 @@ -57,28 +57,43 @@ def index(self, repo_name, revision, f_path): hg_model = ScmModel() c.repo = hg_model.get_repo(c.repo_name) - revision = request.POST.get('at_rev', None) or revision - - c.f_path = f_path try: + #reditect to given revision from form + post_revision = request.POST.get('at_rev', None) + if post_revision: + post_revision = c.repo.get_changeset(post_revision).raw_id + redirect(url('files_home', repo_name=c.repo_name, + revision=post_revision, f_path=f_path)) + + c.branch = request.GET.get('branch', None) + + c.f_path = f_path + c.changeset = c.repo.get_changeset(revision) cur_rev = c.changeset.revision + #prev link try: - prev_rev = c.repo.get_changeset(cur_rev).prev().raw_id + prev_rev = c.repo.get_changeset(cur_rev).prev(c.branch).raw_id c.url_prev = url('files_home', repo_name=c.repo_name, revision=prev_rev, f_path=f_path) + if c.branch: + c.url_prev += '?branch=%s' % c.branch except ChangesetDoesNotExistError: c.url_prev = '#' + #next link try: - next_rev = c.repo.get_changeset(cur_rev).next().raw_id + next_rev = c.repo.get_changeset(cur_rev).next(c.branch).raw_id c.url_next = url('files_home', repo_name=c.repo_name, revision=next_rev, f_path=f_path) + if c.branch: + c.url_next += '?branch=%s' % c.branch except ChangesetDoesNotExistError: c.url_next = '#' + #files try: c.files_list = c.changeset.get_node(f_path) c.file_history = self._get_history(c.repo, c.files_list, f_path)
--- a/rhodecode/public/css/style.css Tue Dec 28 01:57:53 2010 +0100 +++ b/rhodecode/public/css/style.css Tue Dec 28 18:17:04 2010 +0100 @@ -1614,10 +1614,18 @@ } div.browserblock .browser-header { -border-bottom:1px solid #CCC; background:#FFF; -color:blue; padding:10px 0; +float:left; +} + +div.browserblock .browser-branch { +background:#FFF; +padding:20px 0 0 0; +float:left; +} +div.browserblock .browser-branch label { +color:#4A4A4A; } div.browserblock .browser-header span { @@ -1627,6 +1635,7 @@ div.browserblock .browser-body { background:#EEE; +border-top:1px solid #CCC; } table.code-browser {
--- a/rhodecode/templates/files/files_browser.html Tue Dec 28 01:57:53 2010 +0100 +++ b/rhodecode/templates/files/files_browser.html Tue Dec 28 18:17:04 2010 +0100 @@ -17,6 +17,24 @@ </div> ${h.end_form()} </div> + <div class="browser-branch"> + ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)} + <label>${_('follow current branch')}</label> + <script type="text/javascript"> + YUE.on('stay_at_branch','click',function(e){ + if(e.target.checked){ + var uri = "${h.url.current(branch='__BRANCH__')}" + uri = uri.replace('__BRANCH__',e.target.value); + window.location = uri; + } + else{ + window.location = "${h.url.current()}"; + } + + }) + </script> + </div> + <div style="clear:both"></div> <div class="browser-body"> <table class="code-browser"> <thead>