1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 00:03:28 +01:00

head_insert: don't include banner_html, only used for framed replay now

wombat: bump to latest wombat 3.3.7
add new custom_banner to head_insert template for frameless replay
This commit is contained in:
Ilya Kreymer 2022-09-26 19:49:38 -07:00 committed by Tessa Walsh
parent c28941a0b6
commit e20fac2c75
7 changed files with 19 additions and 12 deletions

View File

@ -78,10 +78,11 @@ class RewriterApp(object):
self.redirect_to_exact = config.get('redirect_to_exact') self.redirect_to_exact = config.get('redirect_to_exact')
self.banner_view = BaseInsertView(self.jinja_env, self._html_templ('banner_html')) self.banner_view = BaseInsertView(self.jinja_env, self._html_templ('banner_html'))
self.custom_banner_view = BaseInsertView(self.jinja_env, self._html_templ('custom_banner_html'))
self.head_insert_view = HeadInsertView(self.jinja_env, self.head_insert_view = HeadInsertView(self.jinja_env,
self._html_templ('head_insert_html'), self._html_templ('head_insert_html'),
self.banner_view) self.custom_banner_view)
self.frame_insert_view = TopFrameView(self.jinja_env, self.frame_insert_view = TopFrameView(self.jinja_env,
self._html_templ('frame_insert_html'), self._html_templ('frame_insert_html'),

View File

@ -12,6 +12,7 @@ templates_dir: templates
# Template HTML # Template HTML
banner_html: banner.html banner_html: banner.html
custom_banner_html: custom_banner.html
head_insert_html: head_insert.html head_insert_html: head_insert.html
frame_insert_html: frame_insert.html frame_insert_html: frame_insert.html
@ -36,6 +37,7 @@ info_json: collinfo.json
# HTML Templates List # HTML Templates List
html_templates: html_templates:
- banner_html - banner_html
- custom_banner_html
- head_insert_html - head_insert_html
- frame_insert_html - frame_insert_html

View File

@ -371,7 +371,7 @@ class HeadInsertView(BaseInsertView):
if self.banner_view: if self.banner_view:
banner_html = self.banner_view.render_to_string(env, cdx=cdx, **params) banner_html = self.banner_view.render_to_string(env, cdx=cdx, **params)
params['banner_html'] = banner_html params['custom_banner_html'] = banner_html
return self.render_to_string(env, cdx=cdx, **params) return self.render_to_string(env, cdx=cdx, **params)

View File

@ -0,0 +1 @@
<!-- Add custom banner here. Used only in non-framed replay. -->

View File

@ -62,7 +62,11 @@
{% endif %} {% endif %}
{{ banner_html }} {% if not is_framed %}
{{ custom_banner_html }}
{% endif %}
{% endautoescape %} {% endautoescape %}

View File

@ -275,18 +275,19 @@ class TestManagedColls(CollsDirMixin, BaseConfigTest):
assert 'pywb custom search page' in resp.text assert 'pywb custom search page' in resp.text
def test_add_custom_banner(self): def test_add_custom_banner(self):
""" Test adding custom banner.html per-collection template """ Test adding custom_banner.html per-collection template
""" """
banner_file = os.path.join(self.root_dir, COLLECTIONS, 'test', banner_file = os.path.join(self.root_dir, COLLECTIONS, 'test',
'templates', 'banner.html') 'templates', 'custom_banner.html')
with open(banner_file, 'w+b') as fh: with open(banner_file, 'w+b') as fh:
fh.write(b'<div>Custom Banner Here!</div>') fh.write(b'<div>Custom Banner Here!</div>')
fh.write(b'\n{{ metadata | tojson }}') fh.write(b'\n{{ metadata | tojson }}')
def test_add_custom_banner_replay(self, fmod): def test_add_custom_banner_replay(self):
resp = self.get('/test/20140103030321/http://example.com/?example=1', fmod) """Test custom banner appears in unframed replay."""
resp = self.get('/test/20140103030321/http://example.com/?example=1', None)
assert '<div>Custom Banner Here!</div>' in resp.text assert '<div>Custom Banner Here!</div>' in resp.text
def test_more_custom_templates(self): def test_more_custom_templates(self):
@ -316,10 +317,9 @@ class TestManagedColls(CollsDirMixin, BaseConfigTest):
#assert '"some":"value"' in resp.text, resp.text #assert '"some":"value"' in resp.text, resp.text
assert '{&#34;some&#34;:&#34;value&#34;}' in resp.text, resp.text assert '{&#34;some&#34;:&#34;value&#34;}' in resp.text, resp.text
def test_replay_banner_metadata(self, fmod): def test_replay_banner_metadata(self):
""" Test adding metadata in replay banner (both framed and non-frame) """Test adding metadata in custom banner for unframed replay."""
""" resp = self.get('/test/20140103030321/http://example.com/?example=1', None)
resp = self.get('/test/20140103030321{0}/http://example.com/?example=1', fmod)
assert '<div>Custom Banner Here!</div>' in resp.text assert '<div>Custom Banner Here!</div>' in resp.text
#assert '"some":"value"' in resp.text #assert '"some":"value"' in resp.text
assert '{&#34;some&#34;:&#34;value&#34;}' in resp.text, resp.text assert '{&#34;some&#34;:&#34;value&#34;}' in resp.text, resp.text

View File

@ -35,7 +35,6 @@ class TestPrefixedDeploy(BaseConfigTest):
assert '"20140127171238"' in resp.text, resp.text assert '"20140127171238"' in resp.text, resp.text
assert "'http://localhost:80/prefix/static/wombat.js'" in resp.text assert "'http://localhost:80/prefix/static/wombat.js'" in resp.text
assert "http://localhost:80/prefix/static/vue/vueui.js" in resp.text
assert '"http://localhost:80/prefix/static/"' in resp.text assert '"http://localhost:80/prefix/static/"' in resp.text
assert '"http://localhost:80/prefix/pywb/"' in resp.text assert '"http://localhost:80/prefix/pywb/"' in resp.text
assert 'WBWombatInit' in resp.text, resp.text assert 'WBWombatInit' in resp.text, resp.text