mercurial/hgweb/webutil.py
changeset 18405 1eaf0d017b2c
parent 18404 1da84a6b136a
child 18406 20cf53932b6f
equal deleted inserted replaced
18404:1da84a6b136a 18405:1eaf0d017b2c
    46 
    46 
    47         :nodefun: factory for a changectx from a revision
    47         :nodefun: factory for a changectx from a revision
    48         """
    48         """
    49         self.nodefunc = nodefunc
    49         self.nodefunc = nodefunc
    50 
    50 
       
    51     def hex(self, rev):
       
    52         return self.nodefunc(rev).hex()
       
    53 
    51     def gen(self, pos, pagelen, limit):
    54     def gen(self, pos, pagelen, limit):
    52         """computes label and revision id for navigation link
    55         """computes label and revision id for navigation link
    53 
    56 
    54         :pos: is the revision relative to which we generate navigation.
    57         :pos: is the revision relative to which we generate navigation.
    55         :pagelen: the size of each navigation page
    58         :pagelen: the size of each navigation page
    67 
    70 
    68         for f in _navseq(1, pagelen):
    71         for f in _navseq(1, pagelen):
    69             if f > limit:
    72             if f > limit:
    70                 break
    73                 break
    71             if pos + f < limit:
    74             if pos + f < limit:
    72                 navafter.append(("+%d" % f,
    75                 navafter.append(("+%d" % f, self.hex(pos + f)))
    73                                  hex(self.nodefunc(pos + f).node())))
       
    74             if pos - f >= 0:
    76             if pos - f >= 0:
    75                 navbefore.insert(0, ("-%d" % f,
    77                 navbefore.insert(0, ("-%d" % f, self.hex(pos - f)))
    76                                      hex(self.nodefunc(pos - f).node())))
       
    77 
    78 
    78         navafter.append(("tip", "tip"))
    79         navafter.append(("tip", "tip"))
    79         try:
    80         try:
    80             navbefore.insert(0, ("(0)", hex(self.nodefunc(0).node())))
    81             navbefore.insert(0, ("(0)", self.hex(0)))
    81         except error.RepoError:
    82         except error.RepoError:
    82             pass
    83             pass
    83 
    84 
    84         data = lambda i: {"label": i[0], "node": i[1]}
    85         data = lambda i: {"label": i[0], "node": i[1]}
    85         return ({'before': lambda **map: (data(i) for i in navbefore),
    86         return ({'before': lambda **map: (data(i) for i in navbefore),