Screenshot handling on the diff/preview section refactor (#630)
This commit is contained in:
@@ -809,7 +809,13 @@ def changedetection_app(config=None, datastore_o=None):
|
|||||||
|
|
||||||
screenshot_url = datastore.get_screenshot(uuid)
|
screenshot_url = datastore.get_screenshot(uuid)
|
||||||
|
|
||||||
output = render_template("diff.html", watch_a=watch,
|
system_uses_webdriver = datastore.data['settings']['application']['fetch_backend'] == 'html_webdriver'
|
||||||
|
|
||||||
|
is_html_webdriver = True if watch.get('fetch_backend') == 'html_webdriver' or (
|
||||||
|
watch.get('fetch_backend', None) is None and system_uses_webdriver) else False
|
||||||
|
|
||||||
|
output = render_template("diff.html",
|
||||||
|
watch_a=watch,
|
||||||
newest=newest_version_file_contents,
|
newest=newest_version_file_contents,
|
||||||
previous=previous_version_file_contents,
|
previous=previous_version_file_contents,
|
||||||
extra_stylesheets=extra_stylesheets,
|
extra_stylesheets=extra_stylesheets,
|
||||||
@@ -820,7 +826,8 @@ def changedetection_app(config=None, datastore_o=None):
|
|||||||
current_diff_url=watch['url'],
|
current_diff_url=watch['url'],
|
||||||
extra_title=" - Diff - {}".format(watch['title'] if watch['title'] else watch['url']),
|
extra_title=" - Diff - {}".format(watch['title'] if watch['title'] else watch['url']),
|
||||||
left_sticky=True,
|
left_sticky=True,
|
||||||
screenshot=screenshot_url)
|
screenshot=screenshot_url,
|
||||||
|
is_html_webdriver=is_html_webdriver)
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
|
||||||
@@ -881,6 +888,11 @@ def changedetection_app(config=None, datastore_o=None):
|
|||||||
content.append({'line': "No history found", 'classes': ''})
|
content.append({'line': "No history found", 'classes': ''})
|
||||||
|
|
||||||
screenshot_url = datastore.get_screenshot(uuid)
|
screenshot_url = datastore.get_screenshot(uuid)
|
||||||
|
system_uses_webdriver = datastore.data['settings']['application']['fetch_backend'] == 'html_webdriver'
|
||||||
|
|
||||||
|
is_html_webdriver = True if watch.get('fetch_backend') == 'html_webdriver' or (
|
||||||
|
watch.get('fetch_backend', None) is None and system_uses_webdriver) else False
|
||||||
|
|
||||||
output = render_template("preview.html",
|
output = render_template("preview.html",
|
||||||
content=content,
|
content=content,
|
||||||
extra_stylesheets=extra_stylesheets,
|
extra_stylesheets=extra_stylesheets,
|
||||||
@@ -889,8 +901,9 @@ def changedetection_app(config=None, datastore_o=None):
|
|||||||
current_diff_url=watch['url'],
|
current_diff_url=watch['url'],
|
||||||
screenshot=screenshot_url,
|
screenshot=screenshot_url,
|
||||||
watch=watch,
|
watch=watch,
|
||||||
uuid=uuid)
|
uuid=uuid,
|
||||||
|
is_html_webdriver=is_html_webdriver)
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
|
||||||
@app.route("/settings/notification-logs", methods=['GET'])
|
@app.route("/settings/notification-logs", methods=['GET'])
|
||||||
|
|||||||
14
changedetectionio/static/js/diff-overview.js
Normal file
14
changedetectionio/static/js/diff-overview.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
$(document).ready(function () {
|
||||||
|
// Load it when the #screenshot tab is in use, so we dont give a slow experience when waiting for the text diff to load
|
||||||
|
window.addEventListener('hashchange', function (e) {
|
||||||
|
toggle(location.hash);
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
toggle(location.hash);
|
||||||
|
|
||||||
|
function toggle(hash_name) {
|
||||||
|
if (hash_name === '#screenshot') {
|
||||||
|
$("img#screenshot-img").attr('src', screenshot_url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -1,6 +1,11 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<script>
|
||||||
|
const screenshot_url="{{url_for('static_content', group='screenshot', filename=uuid)}}";
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="{{url_for('static_content', group='js', filename='diff-overview.js')}}" defer></script>
|
||||||
|
|
||||||
<div id="settings">
|
<div id="settings">
|
||||||
<h1>Differences</h1>
|
<h1>Differences</h1>
|
||||||
<form class="pure-form " action="" method="GET">
|
<form class="pure-form " action="" method="GET">
|
||||||
@@ -39,6 +44,7 @@
|
|||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="tab" id="default-tab"><a href="#text">Text</a></li>
|
<li class="tab" id="default-tab"><a href="#text">Text</a></li>
|
||||||
|
<li class="tab" id="screenshot-tab"><a href="#screenshot">Screenshot</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -60,6 +66,21 @@
|
|||||||
</table>
|
</table>
|
||||||
Diff algorithm from the amazing <a href="https://github.com/kpdecker/jsdiff">github.com/kpdecker/jsdiff</a>
|
Diff algorithm from the amazing <a href="https://github.com/kpdecker/jsdiff">github.com/kpdecker/jsdiff</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tab-pane-inner" id="screenshot">
|
||||||
|
<div class="tip">
|
||||||
|
For now, Differences are performed on text, not graphically, only the latest screenshot is available.
|
||||||
|
</div>
|
||||||
|
</br>
|
||||||
|
{% if is_html_webdriver %}
|
||||||
|
{% if screenshot|length >1 %}
|
||||||
|
<img style="max-width: 80%" id="screenshot-img" alt="Current screenshot from most recent request"/>
|
||||||
|
{% else %}
|
||||||
|
No screenshot available just yet! Try rechecking the page.
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
<strong>Screenshot requires Playwright/WebDriver enabled</strong>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<script>
|
||||||
|
const screenshot_url="{{url_for('static_content', group='screenshot', filename=uuid)}}";
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="{{url_for('static_content', group='js', filename='diff-overview.js')}}" defer></script>
|
||||||
|
|
||||||
<div id="settings">
|
<div id="settings">
|
||||||
<h1>Current - {{watch.last_checked|format_timestamp_timeago}}</h1>
|
<h1>Current - {{watch.last_checked|format_timestamp_timeago}}</h1>
|
||||||
@@ -10,6 +14,7 @@
|
|||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="tab" id="default-tab"><a href="#text">Text</a></li>
|
<li class="tab" id="default-tab"><a href="#text">Text</a></li>
|
||||||
|
<li class="tab" id="screenshot-tab"><a href="#screenshot">Screenshot</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -28,5 +33,20 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tab-pane-inner" id="screenshot">
|
||||||
|
<div class="tip">
|
||||||
|
For now, Differences are performed on text, not graphically, only the latest screenshot is available.
|
||||||
|
</div>
|
||||||
|
</br>
|
||||||
|
{% if is_html_webdriver %}
|
||||||
|
{% if screenshot|length >1 %}
|
||||||
|
<img style="max-width: 80%" id="screenshot-img" alt="Current screenshot from most recent request"/>
|
||||||
|
{% else %}
|
||||||
|
No screenshot available just yet! Try rechecking the page.
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
<strong>Screenshot requires Playwright/WebDriver enabled</strong>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user