##// 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 from request import wsgirequest
16 from request import wsgirequest
17 import webcommands, protocol, webutil
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 class hgweb(object):
19 class hgweb(object):
35 def __init__(self, repo, name=None):
20 def __init__(self, repo, name=None):
36 if isinstance(repo, str):
21 if isinstance(repo, str):
@@ -104,16 +89,6 b' class hgweb(object):'
104
89
105 self.refresh()
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 # work with CGI variables to create coherent structure
92 # work with CGI variables to create coherent structure
118 # use SCRIPT_NAME, PATH_INFO and QUERY_STRING as well as our REPO_NAME
93 # use SCRIPT_NAME, PATH_INFO and QUERY_STRING as well as our REPO_NAME
119
94
@@ -9,6 +9,31 b''
9 import socket, cgi, errno
9 import socket, cgi, errno
10 from common import ErrorResponse, statusmessage
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 class wsgirequest(object):
37 class wsgirequest(object):
13 def __init__(self, wsgienv, start_response):
38 def __init__(self, wsgienv, start_response):
14 version = wsgienv['wsgi.version']
39 version = wsgienv['wsgi.version']
@@ -21,7 +46,7 b' class wsgirequest(object):'
21 self.multiprocess = wsgienv['wsgi.multiprocess']
46 self.multiprocess = wsgienv['wsgi.multiprocess']
22 self.run_once = wsgienv['wsgi.run_once']
47 self.run_once = wsgienv['wsgi.run_once']
23 self.env = wsgienv
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 self._start_response = start_response
50 self._start_response = start_response
26 self.server_write = None
51 self.server_write = None
27 self.headers = []
52 self.headers = []
General Comments 0
You need to be logged in to leave comments. Login now