@@ -164,6 +164,14 @@ def get_locale():
164 return locale
164 return locale
167+def get_doi_resolver():
168+ doi_resolvers = settings['doi_resolvers']
169+ doi_resolver = request.args.get('doi_resolver', request.preferences.get_value('doi_resolver'))[0]
170+ if doi_resolver not in doi_resolvers:
171+ doi_resolvers = settings['default_doi_resolver']
167# code-highlighter
175# code-highlighter
168@app.template_filter('code_highlighter')
176@app.template_filter('code_highlighter')
169def code_highlighter(codelines, language=None):
177def code_highlighter(codelines, language=None):
@@ -695,6 +703,8 @@ def preferences():
695 shortcuts={y: x for x, y in engine_shortcuts.items()},
703 shortcuts={y: x for x, y in engine_shortcuts.items()},
696 themes=themes,
704 themes=themes,
697 plugins=plugins,
705 plugins=plugins,
706+ doi_resolvers=settings['doi_resolvers'],
707+ current_doi_resolver=get_doi_resolver(),
698 allowed_plugins=allowed_plugins,
708 allowed_plugins=allowed_plugins,
699 theme=get_current_theme_name(),
709 theme=get_current_theme_name(),
700 preferences_url_params=request.preferences.get_as_url_params(),
710 preferences_url_params=request.preferences.get_as_url_params(),
@@ -839,7 +849,10 @@ def config():
839 'autocomplete': settings['search']['autocomplete'],
849 'autocomplete': settings['search']['autocomplete'],
840 'safe_search': settings['search']['safe_search'],
850 'safe_search': settings['search']['safe_search'],
841 'default_theme': settings['ui']['default_theme'],
851 'default_theme': settings['ui']['default_theme'],
842− 'version': VERSION_STRING})
852+ 'version': VERSION_STRING,
853+ 'doi_resolvers': [r for r in search['doi_resolvers']],
854+ 'default_doi_resolver': settings['default_doi_resolver'],
845@app.errorhandler(404)
858@app.errorhandler(404)