comparison mercurial/hgweb/webcommands.py @ 10247:e8c7410371e0

hgweb: add less/more links for search logs (issue1972)
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Thu, 14 Jan 2010 16:42:10 +0100
parents b9d02695bde4
children d6512b3e9ac0
comparison
equal deleted inserted replaced
10246:b9d02695bde4 10247:e8c7410371e0
96 try: 96 try:
97 return manifest(web, req, tmpl) 97 return manifest(web, req, tmpl)
98 except ErrorResponse: 98 except ErrorResponse:
99 raise inst 99 raise inst
100 100
101 def _search(web, tmpl, query): 101 def _search(web, req, tmpl):
102
103 query = req.form['rev'][0]
104 revcount = web.maxchanges
105 if 'revcount' in req.form:
106 revcount = int(req.form.get('revcount', [revcount])[0])
107 tmpl.defaults['sessionvars']['revcount'] = revcount
108
109 lessvars = copy.copy(tmpl.defaults['sessionvars'])
110 lessvars['revcount'] = revcount / 2
111 lessvars['rev'] = query
112 morevars = copy.copy(tmpl.defaults['sessionvars'])
113 morevars['revcount'] = revcount * 2
114 morevars['rev'] = query
102 115
103 def changelist(**map): 116 def changelist(**map):
104 cl = web.repo.changelog 117 cl = web.repo.changelog
105 count = 0 118 count = 0
106 qw = query.lower().split() 119 qw = query.lower().split()
144 node=hex(n), 157 node=hex(n),
145 tags=webutil.nodetagsdict(web.repo, n), 158 tags=webutil.nodetagsdict(web.repo, n),
146 inbranch=webutil.nodeinbranch(web.repo, ctx), 159 inbranch=webutil.nodeinbranch(web.repo, ctx),
147 branches=webutil.nodebranchdict(web.repo, ctx)) 160 branches=webutil.nodebranchdict(web.repo, ctx))
148 161
149 if count >= web.maxchanges: 162 if count >= revcount:
150 break 163 break
151 164
152 cl = web.repo.changelog 165 cl = web.repo.changelog
153 parity = paritygen(web.stripecount) 166 parity = paritygen(web.stripecount)
154 167
155 return tmpl('search', 168 return tmpl('search', query=query, node=hex(cl.tip()),
156 query=query, 169 entries=changelist, archives=web.archivelist("tip"),
157 node=hex(cl.tip()), 170 morevars=morevars, lessvars=lessvars)
158 entries=changelist, 171
159 archives=web.archivelist("tip")) 172 def changelog(web, req, tmpl, shortlog=False):
160 173
161 def changelog(web, req, tmpl, shortlog = False):
162 if 'node' in req.form: 174 if 'node' in req.form:
163 ctx = webutil.changectx(web.repo, req) 175 ctx = webutil.changectx(web.repo, req)
164 else: 176 else:
165 if 'rev' in req.form: 177 if 'rev' in req.form:
166 hi = req.form['rev'][0] 178 hi = req.form['rev'][0]
167 else: 179 else:
168 hi = len(web.repo) - 1 180 hi = len(web.repo) - 1
169 try: 181 try:
170 ctx = web.repo[hi] 182 ctx = web.repo[hi]
171 except error.RepoError: 183 except error.RepoError:
172 return _search(web, tmpl, hi) # XXX redirect to 404 page? 184 return _search(web, req, tmpl) # XXX redirect to 404 page?
173 185
174 def changelist(limit=0, **map): 186 def changelist(limit=0, **map):
175 l = [] # build a list in forward order for efficiency 187 l = [] # build a list in forward order for efficiency
176 for i in xrange(start, end): 188 for i in xrange(start, end):
177 ctx = web.repo[i] 189 ctx = web.repo[i]