41
def form_get(request, name, default='', escaped=False):
41
def form_get(request, name, default=''):
42
42
""" Fetches a form field
44
44
@param request: current request
45
45
@param name: name of the field
46
@param default: value if not present (default: '')
47
@param escaped: if True, escape value so it can be used for html generation (default: False)
46
@keyword default: value if not present (default: '')
49
value = request.values.get(name, default)
51
value = wikiutil.escape(value, quote=True)
48
return request.form.get(name, [default])[0]
55
51
def advanced_ui(macro):
81
77
]) for txt, input_field in (
82
78
(_('containing all the following terms'),
83
79
'<input type="text" name="and_terms" size="30" value="%s">'
84
% (form_get(request, 'and_terms', escaped=True) or form_get(request, 'value', escaped=True))),
80
% (form_get(request, 'and_terms') or form_get(request, 'value'))),
85
81
(_('containing one or more of the following terms'),
86
82
'<input type="text" name="or_terms" size="30" value="%s">'
87
% form_get(request, 'or_terms', escaped=True)),
83
% form_get(request, 'or_terms')),
88
84
(_('not containing the following terms'),
89
85
'<input type="text" name="not_terms" size="30" value="%s">'
90
% form_get(request, 'not_terms', escaped=True)),
86
% form_get(request, 'not_terms')),
91
87
#('containing only one of the following terms',
92
88
# '<input type="text" name="xor_terms" size="30" value="%s">'
93
# % form_get(request, 'xor_terms', escaped=True)),
89
# % form_get(request, 'xor_terms')),
94
90
# TODO: dropdown-box?
95
(_('last modified since (e.g. 2 weeks before)'),
91
(_('last modified since (e.g. last 2 weeks)'),
96
92
'<input type="text" name="mtime" size="30" value="%s">'
97
% form_get(request, 'mtime', escaped=True)),
93
% form_get(request, 'mtime')),
140
136
(_('Language'), unicode(lang_select), ''),
141
137
(_('File Type'), unicode(mt_select), ''),
142
138
('', html.INPUT(type='checkbox', name='titlesearch',
143
value='1', checked=form_get(request, 'titlesearch', escaped=True),
139
value='1', checked=form_get(request, 'titlesearch'),
144
140
id='titlesearch'),
145
141
'<label for="titlesearch">%s</label>' % _('Search only in titles')),
146
142
('', html.INPUT(type='checkbox', name='case', value='1',
147
checked=form_get(request, 'case', escaped=True),
143
checked=form_get(request, 'case'), id='case'),
149
144
'<label for="case">%s</label>' % _('Case-sensitive search')),
150
145
('', html.INPUT(type='checkbox', name='excludeunderlay',
151
value='1', checked=form_get(request, 'excludeunderlay', escaped=True),
146
value='1', checked=form_get(request, 'excludeunderlay'),
152
147
id='excludeunderlay'),
153
148
'<label for="excludeunderlay">%s</label>' % _('Exclude underlay')),
154
149
('', html.INPUT(type='checkbox', name='nosystemitems',
155
value='1', checked=form_get(request, 'nosystemitems', escaped=True),
150
value='1', checked=form_get(request, 'nosystemitems'),
156
151
id='nosystempages'),
157
152
'<label for="nosystempages">%s</label>' % _('No system items')),
158
153
('', html.INPUT(type='checkbox', name='historysearch',
159
value='1', checked=form_get(request, 'historysearch', escaped=True),
154
value='1', checked=form_get(request, 'historysearch'),
160
155
disabled=(not request.cfg.xapian_search or
161
156
not request.cfg.xapian_index_history),
162
157
id='historysearch'),
168
163
return f.rawHTML('\n'.join([
169
u'<form method="get" action="%s">' % macro.request.href(macro.request.formatter.page.page_name),
164
u'<form method="get" action="%s/%s">' % (macro.request.getScriptname(), wikiutil.quoteWikinameURL(macro.request.formatter.page.page_name)),
171
166
u'<input type="hidden" name="action" value="fullsearch">',
172
167
u'<input type="hidden" name="advancedsearch" value="1">',