Edgewall Software

Ticket #7254: 7254-previous-next-rev-r8709.2.patch

File 7254-previous-next-rev-r8709.2.patch, 2.3 KB (added by rblank, 3 years ago)

Improved version using prevnext_nav().

  • trac/versioncontrol/web_ui/browser.py

    diff --git a/trac/versioncontrol/web_ui/browser.py b/trac/versioncontrol/web_ui/browser.py
    a b  
    3636from trac.util.translation import _ 
    3737from trac.web import IRequestHandler, RequestDone 
    3838from trac.web.chrome import add_ctxtnav, add_link, add_script, add_stylesheet, \ 
    39                             INavigationContributor 
     39                            prevnext_nav, INavigationContributor 
    4040from trac.wiki.api import IWikiSyntaxProvider 
    4141from trac.wiki.formatter import format_to_html, format_to_oneliner 
    4242from trac.versioncontrol.api import NoSuchChangeset, NoSuchNode 
     
    344344        context = Context.from_request(req, 'source', path, rev_or_latest) 
    345345 
    346346        path_links = get_path_links(req.href, path, rev, order, desc) 
    347         if len(path_links) > 1: 
    348             add_link(req, 'up', path_links[-2]['href'], _('Parent directory')) 
    349347 
    350348        data = { 
    351349            'context': context, 
     
    367365            return 'dir_entries.html', data, None 
    368366 
    369367        # Links for contextual navigation 
     368        if node.isfile: 
     369            prev_rev = repos.previous_rev(rev=node.rev, 
     370                                          path=node.created_path) 
     371            if prev_rev: 
     372                href = req.href.browser(node.created_path, rev=prev_rev) 
     373                add_link(req, 'prev', href, 
     374                         _('Revision %(num)s', num=prev_rev)) 
     375            if rev is not None: 
     376                add_link(req, 'up', req.href.browser(node.created_path)) 
     377            next_rev = repos.next_rev(rev=node.rev, 
     378                                      path=node.created_path) 
     379            if next_rev: 
     380                href = req.href.browser(node.created_path, rev=next_rev) 
     381                add_link(req, 'next', href, 
     382                         _('Revision %(num)s', num=next_rev)) 
     383            prevnext_nav(req, _('Previous Revision'), _('Next Revision'), 
     384                         _('Latest Revision')) 
     385        else: 
     386            if len(path_links) > 1: 
     387                add_link(req, 'up', path_links[-2]['href'], 
     388                         _('Parent directory')) 
    370389        add_ctxtnav(req, tag.a(_('Last Change'),  
    371390                    href=req.href.changeset(node.rev, node.created_path))) 
    372391        if node.isfile: