From 96d9f4dcad9f93d032e8b007d6aa1497dce1e38b Mon Sep 17 00:00:00 2001
From: Ilya Kreymer
Date: Wed, 30 Jul 2014 10:38:13 -0700
Subject: [PATCH] proxy mode: cookie based selector using session to coll ui:
add proxy_selector html, add switch link to error and banner
---
pywb/framework/proxy.py | 4 ++--
pywb/framework/proxy_resolvers.py | 1 -
pywb/framework/wsgi_wrappers.py | 3 +++
pywb/static/wb.js | 4 ++++
pywb/ui/error.html | 7 +++++++
pywb/ui/head_insert.html | 3 ++-
pywb/ui/proxy_select.html | 25 +++++++++++++++++++++++++
pywb/webapp/pywb_init.py | 17 +++++++++++------
8 files changed, 54 insertions(+), 10 deletions(-)
create mode 100644 pywb/ui/proxy_select.html
diff --git a/pywb/framework/proxy.py b/pywb/framework/proxy.py
index 82218e20..e387bf4b 100644
--- a/pywb/framework/proxy.py
+++ b/pywb/framework/proxy.py
@@ -65,8 +65,8 @@ class ProxyRouter(object):
if proxy_options:
proxy_options = proxy_options.get('proxy_options', {})
- self.resolver = ProxyAuthResolver(routes, proxy_options)
- #self.resolver = CookieResolver(routes, proxy_options)
+ #self.resolver = ProxyAuthResolver(routes, proxy_options)
+ self.resolver = CookieResolver(routes, proxy_options)
self.magic_name = proxy_options.get('magic_name', 'pywb-proxy.com')
diff --git a/pywb/framework/proxy_resolvers.py b/pywb/framework/proxy_resolvers.py
index 35c84c8a..1b33be01 100644
--- a/pywb/framework/proxy_resolvers.py
+++ b/pywb/framework/proxy_resolvers.py
@@ -124,7 +124,6 @@ class CookieResolver(BaseCollResolver): # pragma: no cover
self.proxy_select_view = config.get('proxy_select_view')
if uwsgi_cache:
- print 'UWSGI CACHE'
self.cache = UwsgiCache()
else:
self.cache = {}
diff --git a/pywb/framework/wsgi_wrappers.py b/pywb/framework/wsgi_wrappers.py
index 2babc83f..85e23aaa 100644
--- a/pywb/framework/wsgi_wrappers.py
+++ b/pywb/framework/wsgi_wrappers.py
@@ -135,11 +135,14 @@ class WSGIApp(object):
logging.info(err_msg)
err_details = None
+ is_proxy_mode = env.get('pywb.proxy_host') is not None
+
if error_view:
return error_view.render_response(exc_type=type(exc).__name__,
err_msg=err_msg,
err_details=err_details,
status=status,
+ is_proxy_mode=is_proxy_mode,
err_url=err_url)
else:
return WbResponse.text_response(status + ' Error: ' + err_msg,
diff --git a/pywb/static/wb.js b/pywb/static/wb.js
index 0244cde8..4a23b03c 100644
--- a/pywb/static/wb.js
+++ b/pywb/static/wb.js
@@ -69,6 +69,10 @@ function init_banner() {
var capture_str = (wbinfo ? wbinfo.capture_str : "");
text += "" + capture_str + "";
+
+ if (wbinfo.is_proxy_mode && wbinfo.url) {
+ text += '
Switch Collection';
+ }
banner.innerHTML = text;
diff --git a/pywb/ui/error.html b/pywb/ui/error.html
index b3a8c478..d7231893 100644
--- a/pywb/ui/error.html
+++ b/pywb/ui/error.html
@@ -9,3 +9,10 @@
{% endif %}
+
+{% if is_proxy_mode and err_url and status == '404 Not Found' %}
+
+Try Different Collections
+
+{% endif %}
+
diff --git a/pywb/ui/head_insert.html b/pywb/ui/head_insert.html
index b1ff4a26..d9e1207b 100644
--- a/pywb/ui/head_insert.html
+++ b/pywb/ui/head_insert.html
@@ -2,7 +2,7 @@
{% if rule.js_rewrite_location and include_wombat %}