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 %} +