pull/1916/head
dgtlmoon 7 months ago
parent 9ffe7e0eaf
commit 0e207399a3

@ -984,8 +984,9 @@ def changedetection_app(config=None, datastore_o=None):
return output
@app.route("/preview/<string:uuid>", methods=['GET'])
@app.route("/preview/<string:uuid>/<string:version>", methods=['GET'])
@login_optionally_required
def preview_page(uuid):
def preview_page(uuid, version= None):
content = []
ignored_line_numbers = []
trigger_line_numbers = []
@ -1008,23 +1009,27 @@ def changedetection_app(config=None, datastore_o=None):
if (watch.get('fetch_backend') == 'system' and system_uses_webdriver) or watch.get('fetch_backend') == 'html_webdriver':
is_html_webdriver = True
request_timestamp = request.args.get('request_timestamp')
timestamp = request_timestamp if request_timestamp and request_timestamp in list(watch.history.keys()) else list(watch.history.keys())[-1]
# Never requested successfully, but we detected a fetch error
if datastore.data['watching'][uuid].history_n == 0 and (watch.get_error_text() or watch.get_error_snapshot()):
flash("Preview unavailable - No fetch/check completed or triggers not reached", "error")
output = render_template("preview.html",
content=content,
history_n=watch.history_n,
extra_stylesheets=extra_stylesheets,
# current_diff_url=watch['url'],
watch=watch,
uuid=uuid,
history_n=watch.history_n,
is_html_webdriver=is_html_webdriver,
last_error=watch['last_error'],
last_error_screenshot=watch.get_error_snapshot(),
last_error_text=watch.get_error_text(),
last_error_screenshot=watch.get_error_snapshot())
uuid=uuid,
versions=list(watch.history.keys()),
watch=watch,
)
return output
timestamp = list(watch.history.keys())[-1]
try:
tmp = watch.get_history_snapshot(timestamp).splitlines()
@ -1057,18 +1062,20 @@ def changedetection_app(config=None, datastore_o=None):
output = render_template("preview.html",
content=content,
history_n=watch.history_n,
current_diff_url=watch['url'],
extra_stylesheets=extra_stylesheets,
history_n=watch.history_n,
ignored_line_numbers=ignored_line_numbers,
triggered_line_numbers=trigger_line_numbers,
current_diff_url=watch['url'],
screenshot=watch.get_screenshot(),
watch=watch,
uuid=uuid,
is_html_webdriver=is_html_webdriver,
last_error=watch['last_error'],
last_error_screenshot=watch.get_error_snapshot(),
last_error_text=watch.get_error_text(),
last_error_screenshot=watch.get_error_snapshot())
screenshot=watch.get_screenshot(),
triggered_line_numbers=trigger_line_numbers,
uuid=uuid,
versions=list(watch.history.keys()),
watch=watch,
)
return output

@ -8,6 +8,13 @@ $(document).ready(function () {
}
})
$('.needs-localtime').each(function () {
for (var option of this.options) {
var dateObject = new Date(option.value * 1000);
option.label = dateObject.toLocaleString(undefined, {dateStyle: "full", timeStyle: "medium"});
}
});
// 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);

@ -79,12 +79,7 @@ $(document).ready(function () {
$('#jump-next-diff').click();
}
$('.needs-localtime').each(function () {
for (var option of this.options) {
var dateObject = new Date(option.value * 1000);
option.label = dateObject.toLocaleString(undefined, {dateStyle: "full", timeStyle: "medium"});
}
})
onDiffTypeChange(
document.querySelector('#settings [name="diff_type"]:checked'),
);

@ -9,8 +9,28 @@
const highlight_submit_ignore_url="{{url_for('highlight_submit_ignore_url', uuid=uuid)}}";
</script>
<script src="{{url_for('static_content', group='js', filename='diff-overview.js')}}" defer></script>
<script src="{{url_for('static_content', group='js', filename='tabs.js')}}" defer></script>
<div id="settings">
<form class="pure-form " action="" method="POST">
<fieldset>
{% if versions|length >= 1 %}
<strong>Select timestamp</strong>
<select id="diff-version" name="from_version" class="needs-localtime">
{% for version in versions|reverse %}
<option value="{{ version }}" {% if version== from_version %} selected="" {% endif %}>
{{ version }}
</option>
{% endfor %}
</select>
<button type="submit" class="pure-button pure-button-primary">Go</button>
{% endif %}
</fieldset>
<br>
<strong>Keyboard:</strong> &leftarrow; <a href="">Previous</a> &nbsp; &rightarrow; <a href="">Next</a>;
</form>
</div>
<div class="tabs">
<ul>
{% if last_error_text %}<li class="tab" id="error-text-tab"><a href="#error-text">Error Text</a></li> {% endif %}
@ -21,7 +41,8 @@
{% endif %}
</ul>
</div>
<form><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"></form>
<div id="diff-ui">
<div class="tab-pane-inner" id="error-text">
<div class="snapshot-age error">{{watch.error_text_ctime|format_seconds_ago}} seconds ago</div>

Loading…
Cancel
Save