diff --git a/pywb/apps/frontendapp.py b/pywb/apps/frontendapp.py
index 3ab74bfc..1f28ed76 100644
--- a/pywb/apps/frontendapp.py
+++ b/pywb/apps/frontendapp.py
@@ -363,6 +363,9 @@ class FrontEndApp(object):
else:
coll_config['metadata'] = self.metadata_cache.load(coll) or {}
+ if 'ui' in self.warcserver.config:
+ coll_config['ui'] = self.warcserver.config['ui']
+
return coll_config
def serve_coll_page(self, environ, coll='$root'):
diff --git a/pywb/apps/rewriterapp.py b/pywb/apps/rewriterapp.py
index e91dc677..27b03e3a 100644
--- a/pywb/apps/rewriterapp.py
+++ b/pywb/apps/rewriterapp.py
@@ -520,6 +520,7 @@ class RewriterApp(object):
coll=kwargs.get('coll', ''),
replay_mod=self.replay_mod,
metadata=kwargs.get('metadata', {}),
+ ui=kwargs.get('ui', {}),
config=self.config))
cookie_rewriter = None
@@ -897,7 +898,9 @@ class RewriterApp(object):
pass
def get_top_frame_params(self, wb_url, kwargs):
- return {'metadata': kwargs.get('metadata', {})}
+ return {'metadata': kwargs.get('metadata', {}),
+ 'ui': kwargs.get('ui', {})
+ }
def handle_custom_response(self, environ, wb_url, full_prefix, host_prefix, kwargs):
if self.is_framed_replay(wb_url):
diff --git a/pywb/static/vue_banner.css b/pywb/static/vue_banner.css
new file mode 100644
index 00000000..c30ca395
--- /dev/null
+++ b/pywb/static/vue_banner.css
@@ -0,0 +1,11 @@
+body {
+ display: flex;
+ flex-direction: column;
+}
+
+#wb_iframe_div, #replay_iframe {
+ width: 100%;
+ height: 100%;
+}
+
+
diff --git a/pywb/static/wb_frame.js b/pywb/static/wb_frame.js
index 8a9f92da..52a34113 100644
--- a/pywb/static/wb_frame.js
+++ b/pywb/static/wb_frame.js
@@ -229,7 +229,13 @@ ContentFrame.prototype.initBannerUpdateCheck = function(newUrl, newTs) {
* operating in live mode
*/
ContentFrame.prototype.load_url = function(newUrl, newTs) {
- this.iframe.src = this.make_url(newUrl, newTs, true);
+ var newUrl = this.make_url(newUrl, newTs, true);
+ if (this.iframe.src === newUrl) {
+ return;
+ }
+
+ this.iframe.src = newUrl;
+
if (this.wbBanner) {
this.initBannerUpdateCheck(newUrl, newTs);
}
diff --git a/pywb/templates/banner.html b/pywb/templates/banner.html
index 123eafc7..ceb8ed3e 100644
--- a/pywb/templates/banner.html
+++ b/pywb/templates/banner.html
@@ -18,17 +18,20 @@ window.banner_info = {
locale_prefixes: {{ get_locale_prefixes() | tojson }},
prefix: "{{ wb_prefix }}",
staticPrefix: "{{ static_prefix }}"
+
+ logo: "{{ ui['logo'] }}"
};
-
{% if is_framed or old_banner %}
+
{% else %}
+