diff --git a/pywb/cdx/cdxdomainspecific.py b/pywb/cdx/cdxdomainspecific.py
index 4804ff47..83b4d1ee 100644
--- a/pywb/cdx/cdxdomainspecific.py
+++ b/pywb/cdx/cdxdomainspecific.py
@@ -104,10 +104,15 @@ class FuzzyQuery:
if inx > 0:
url = url[:inx + 1]
- params = {'url': url,
- 'matchType': 'prefix',
- 'filter': filter_,
- 'output': output}
+ params = query.params
+ params.update({'url': url,
+ 'matchType': 'prefix',
+ 'filter': filter_})
+ try:
+ del params['reverse']
+ del params['closest']
+ except KeyError:
+ pass
return params
diff --git a/pywb/ui/head_insert.html b/pywb/ui/head_insert.html
index 07f1f0c0..19c14fa0 100644
--- a/pywb/ui/head_insert.html
+++ b/pywb/ui/head_insert.html
@@ -1,6 +1,6 @@
{% if rule.js_rewrite_location %}
-
+
-
-
+
+
diff --git a/pywb/webapp/pywb_init.py b/pywb/webapp/pywb_init.py
index 4adec312..337c48c6 100644
--- a/pywb/webapp/pywb_init.py
+++ b/pywb/webapp/pywb_init.py
@@ -11,7 +11,7 @@ from pywb.warc.resolvingloader import ResolvingLoader
from pywb.rewrite.rewrite_content import RewriteContent
from pywb.rewrite.rewriterules import use_lxml_parser
-from views import load_template_file, load_query_template
+from views import load_template_file, load_query_template, add_env_globals
from replay_views import ReplayView
from query_handler import QueryHandler
@@ -37,6 +37,8 @@ DEFAULTS = {
'home_html': 'ui/index.html',
'error_html': 'ui/error.html',
+ 'template_globals': {'static_path': 'static/default'},
+
'static_routes': {'static/default': 'pywb/static/'},
'domain_specific_rules': DEFAULT_RULES_FILE,
@@ -61,7 +63,8 @@ class DictChain:
#=================================================================
-def create_wb_handler(query_handler, config, ds_rules_file=None):
+def create_wb_handler(query_handler, config,
+ ds_rules_file=DEFAULT_RULES_FILE):
cookie_maker = config.get('cookie_maker')
record_loader = ArcWarcRecordLoader(cookie_maker=cookie_maker)
@@ -71,6 +74,10 @@ def create_wb_handler(query_handler, config, ds_rules_file=None):
resolving_loader = ResolvingLoader(paths=paths,
record_loader=record_loader)
+ template_globals = config.get('template_globals')
+ if template_globals:
+ add_env_globals(template_globals)
+
head_insert_view = load_template_file(config.get('head_insert_html'),
'Head Insert')
diff --git a/pywb/webapp/query_handler.py b/pywb/webapp/query_handler.py
index c388d948..5254eafb 100644
--- a/pywb/webapp/query_handler.py
+++ b/pywb/webapp/query_handler.py
@@ -35,9 +35,12 @@ class QueryHandler(object):
ds_rules_file=DEFAULT_RULES_FILE,
html_view=None):
- perms_policy = config.get('perms_policy')
+ perms_policy = None
+ server_cls = None
- server_cls = config.get('server_cls')
+ if hasattr(config, 'get'):
+ perms_policy = config.get('perms_policy')
+ server_cls = config.get('server_cls')
cdx_server = create_cdx_server(config, ds_rules_file, server_cls)
diff --git a/pywb/webapp/views.py b/pywb/webapp/views.py
index bebab355..cc1ea7be 100644
--- a/pywb/webapp/views.py
+++ b/pywb/webapp/views.py
@@ -66,6 +66,8 @@ def is_wb_handler(obj):
#=================================================================
class J2TemplateView:
+ env_globals = {}
+
def __init__(self, filename):
template_dir, template_file = path.split(filename)
@@ -81,6 +83,7 @@ class J2TemplateView:
jinja_env = Environment(loader=loader, trim_blocks=True)
jinja_env.filters.update(FILTERS)
+ jinja_env.globals.update(self.env_globals)
return jinja_env
def render_to_string(self, **kwargs):
@@ -99,6 +102,11 @@ class J2TemplateView:
content_type=content_type)
+#=================================================================
+def add_env_globals(glb):
+ J2TemplateView.env_globals.update(glb)
+
+
#=================================================================
def load_template_file(file, desc=None, view_class=J2TemplateView):
if file: