@@ -344,6 +344,8 @@ def render(template_name, override_theme=None, **kwargs):
345 kwargs['cookies'] = request.cookies
345 kwargs['cookies'] = request.cookies
347+ kwargs['errors'] = request.errors
347 kwargs['instance_name'] = settings['general']['instance_name']
349 kwargs['instance_name'] = settings['general']['instance_name']
349 kwargs['results_on_new_tab'] = request.preferences.get_value('results_on_new_tab')
351 kwargs['results_on_new_tab'] = request.preferences.get_value('results_on_new_tab')
@@ -364,15 +366,16 @@ def render(template_name, override_theme=None, **kwargs):
365@app.before_request
367@app.before_request
366def pre_request():
368def pre_request():
367− # merge GET, POST vars
369+ request.errors = []
368 preferences = Preferences(themes, categories.keys(), engines, plugins)
371 preferences = Preferences(themes, categories.keys(), engines, plugins)
370 preferences.parse_cookies(request.cookies)
373 preferences.parse_cookies(request.cookies)
372− # TODO throw error message to the user
375+ request.errors.append(gettext('Invalid settings, please edit your preferences'))
373− logger.warning('Invalid config')
374 request.preferences = preferences
376 request.preferences = preferences
378+ # merge GET, POST vars
376 # request.form
379 # request.form
377 request.form = dict(request.form.items())
380 request.form = dict(request.form.items())
378 for k, v in request.args.items():
381 for k, v in request.args.items():
@@ -397,7 +400,7 @@ def index():
397 Supported outputs: html, json, csv, rss.
400 Supported outputs: html, json, csv, rss.
400− if not request.args and not request.form:
403+ if request.form.get('q') is None:
401 return render(
404 return render(
402 'index.html',
405 'index.html',
@@ -410,7 +413,8 @@ def index():
410 # search = Search(search_query) # without plugins
413 # search = Search(search_query) # without plugins
411 search = SearchWithPlugins(search_query, request)
414 search = SearchWithPlugins(search_query, request)
412 result_container = search.search()
415 result_container = search.search()
413− except Exception:
416+ except:
417+ request.errors.append(gettext('search error'))
414 logger.exception('search error')
418 logger.exception('search error')
415 return render(
419 return render(
416 'index.html',
420 'index.html',
@@ -573,7 +577,7 @@ def preferences():
574 request.preferences.parse_form(request.form)
578 request.preferences.parse_form(request.form)
575 except ValidationException:
579 except ValidationException:
576− # TODO use flash feature of flask
580+ request.errors.append(gettext('Invalid settings, please edit your preferences'))
577 return resp
581 return resp
578 return request.preferences.save(resp)
582 return request.preferences.save(resp)