##// END OF EJS Templates
hgweb: move shortcut expansion to request instantiation
Dirkjan Ochtman -
r6774:0dbb56e9 default
parent child Browse files
Show More
@@ -16,21 +16,6 b' from common import HTTP_OK, HTTP_BAD_REQ'
16 16 from request import wsgirequest
17 17 import webcommands, protocol, webutil
18 18
19 shortcuts = {
20 'cl': [('cmd', ['changelog']), ('rev', None)],
21 'sl': [('cmd', ['shortlog']), ('rev', None)],
22 'cs': [('cmd', ['changeset']), ('node', None)],
23 'f': [('cmd', ['file']), ('filenode', None)],
24 'fl': [('cmd', ['filelog']), ('filenode', None)],
25 'fd': [('cmd', ['filediff']), ('node', None)],
26 'fa': [('cmd', ['annotate']), ('filenode', None)],
27 'mf': [('cmd', ['manifest']), ('manifest', None)],
28 'ca': [('cmd', ['archive']), ('node', None)],
29 'tags': [('cmd', ['tags'])],
30 'tip': [('cmd', ['changeset']), ('node', ['tip'])],
31 'static': [('cmd', ['static']), ('file', None)]
32 }
33
34 19 class hgweb(object):
35 20 def __init__(self, repo, name=None):
36 21 if isinstance(repo, str):
@@ -104,16 +89,6 b' class hgweb(object):'
104 89
105 90 self.refresh()
106 91
107 # expand form shortcuts
108
109 for k in shortcuts.iterkeys():
110 if k in req.form:
111 for name, value in shortcuts[k]:
112 if value is None:
113 value = req.form[k]
114 req.form[name] = value
115 del req.form[k]
116
117 92 # work with CGI variables to create coherent structure
118 93 # use SCRIPT_NAME, PATH_INFO and QUERY_STRING as well as our REPO_NAME
119 94
@@ -9,6 +9,31 b''
9 9 import socket, cgi, errno
10 10 from common import ErrorResponse, statusmessage
11 11
12 shortcuts = {
13 'cl': [('cmd', ['changelog']), ('rev', None)],
14 'sl': [('cmd', ['shortlog']), ('rev', None)],
15 'cs': [('cmd', ['changeset']), ('node', None)],
16 'f': [('cmd', ['file']), ('filenode', None)],
17 'fl': [('cmd', ['filelog']), ('filenode', None)],
18 'fd': [('cmd', ['filediff']), ('node', None)],
19 'fa': [('cmd', ['annotate']), ('filenode', None)],
20 'mf': [('cmd', ['manifest']), ('manifest', None)],
21 'ca': [('cmd', ['archive']), ('node', None)],
22 'tags': [('cmd', ['tags'])],
23 'tip': [('cmd', ['changeset']), ('node', ['tip'])],
24 'static': [('cmd', ['static']), ('file', None)]
25 }
26
27 def expand(form):
28 for k in shortcuts.iterkeys():
29 if k in form:
30 for name, value in shortcuts[k]:
31 if value is None:
32 value = form[k]
33 form[name] = value
34 del form[k]
35 return form
36
12 37 class wsgirequest(object):
13 38 def __init__(self, wsgienv, start_response):
14 39 version = wsgienv['wsgi.version']
@@ -21,7 +46,7 b' class wsgirequest(object):'
21 46 self.multiprocess = wsgienv['wsgi.multiprocess']
22 47 self.run_once = wsgienv['wsgi.run_once']
23 48 self.env = wsgienv
24 self.form = cgi.parse(self.inp, self.env, keep_blank_values=1)
49 self.form = expand(cgi.parse(self.inp, self.env, keep_blank_values=1))
25 50 self._start_response = start_response
26 51 self.server_write = None
27 52 self.headers = []
General Comments 0
You need to be logged in to leave comments. Login now