2024-02-21 14:36:19 +01:00
|
|
|
{% from "macros.html" import shorten_string %}
|
|
|
|
|
2024-02-20 17:01:16 +01:00
|
|
|
{% if from_popup %}
|
2020-06-19 00:25:24 +02:00
|
|
|
{% extends "main.html" %}
|
|
|
|
|
2022-01-14 15:58:06 +01:00
|
|
|
{% from 'bootstrap5/utils.html' import render_messages %}
|
2020-06-19 00:25:24 +02:00
|
|
|
|
|
|
|
{% block title %}{{ body_hash }}{% endblock %}
|
|
|
|
|
|
|
|
{% block scripts %}
|
|
|
|
{{ super() }}
|
|
|
|
|
2024-09-04 16:30:33 +02:00
|
|
|
<script type="text/javascript" nonce="{{ csp_nonce() }}">
|
|
|
|
const openNewTabButtons = document.querySelectorAll('.openNewTab');
|
|
|
|
if (openNewTabButtons) {
|
|
|
|
openNewTabButtons.forEach(el => el.addEventListener('click', event => {
|
|
|
|
window.opener.openTreeInNewTab(el.dataset.capture, el.dataset.hostnode);
|
|
|
|
}));
|
|
|
|
}
|
2020-08-07 18:01:06 +02:00
|
|
|
</script>
|
|
|
|
|
2024-10-09 14:18:02 +02:00
|
|
|
<script type="text/javascript" nonce="{{ csp_nonce() }}">
|
|
|
|
new DataTable('#bodyHashDetailsTable', {
|
|
|
|
order: [[ 0, "desc" ]],
|
|
|
|
columnDefs: [{ width: '20%', targets: 0,
|
|
|
|
render: (data) => {
|
|
|
|
const date = new Date(data);
|
|
|
|
return date.getFullYear() + '-' + (date.getMonth() + 1).toString().padStart(2, "0") + '-' + date.getDate().toString().padStart(2, "0") + ' ' + date.toTimeString();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{ width: '40%', targets: 1 },
|
|
|
|
{ width: '40%', targets: 2 }],
|
|
|
|
});
|
|
|
|
</script>
|
2024-09-04 16:30:33 +02:00
|
|
|
|
2020-06-19 00:25:24 +02:00
|
|
|
{% endblock %}
|
2024-02-20 17:01:16 +01:00
|
|
|
|
2024-10-09 14:18:02 +02:00
|
|
|
{%else%}
|
2024-02-21 14:36:19 +01:00
|
|
|
|
2024-09-04 16:30:33 +02:00
|
|
|
<script type="text/javascript" nonce="{{ csp_nonce() }}">
|
2024-02-21 14:36:19 +01:00
|
|
|
new DataTable('#bodyHashDetailsTable', {
|
2024-04-02 19:32:48 +02:00
|
|
|
order: [[ 0, "desc" ]],
|
|
|
|
columnDefs: [{ width: '20%', targets: 0,
|
|
|
|
render: (data) => {
|
|
|
|
const date = new Date(data);
|
|
|
|
return date.getFullYear() + '-' + (date.getMonth() + 1).toString().padStart(2, "0") + '-' + date.getDate().toString().padStart(2, "0") + ' ' + date.toTimeString();
|
|
|
|
}
|
|
|
|
},
|
2024-02-21 14:36:19 +01:00
|
|
|
{ width: '40%', targets: 1 },
|
|
|
|
{ width: '40%', targets: 2 }],
|
|
|
|
});
|
|
|
|
</script>
|
2024-10-09 14:18:02 +02:00
|
|
|
|
|
|
|
{%endif%}
|
|
|
|
|
|
|
|
|
|
|
|
{% block content %}
|
|
|
|
|
|
|
|
{% if from_popup %}
|
|
|
|
<center><button class="btn btn-primary goBack" type="button">Go Back</button></center>
|
|
|
|
{%endif%}
|
|
|
|
|
|
|
|
<center>
|
|
|
|
<h6>{{ body_hash }}</h6>
|
|
|
|
<h6>Only the most recent captures are listed below, this will change soon.</h6>
|
|
|
|
<a href="{{ url_for('ressource_by_hash', sha512=body_hash) }}">Download</a>
|
|
|
|
</center>
|
|
|
|
|
2024-10-07 13:15:15 +02:00
|
|
|
<p>The same file was seen in these captures recently:</p>
|
2024-02-21 14:36:19 +01:00
|
|
|
<table id="bodyHashDetailsTable" class="table table-striped" style="width:100%">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
2024-05-14 18:52:26 +02:00
|
|
|
<th>Capture Time</th>
|
|
|
|
<th>Capture Title</th>
|
2024-02-21 14:36:19 +01:00
|
|
|
<th>URL</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{% for capture_uuid, title, timestamp, hostnode_uuid, url in captures %}
|
|
|
|
<tr>
|
|
|
|
<td>{{ timestamp }}</td>
|
|
|
|
<td>
|
|
|
|
{% if from_popup %}
|
2024-09-04 16:30:33 +02:00
|
|
|
<button type="button" class="btn btn-link openNewTab" data-capture="{{capture_uuid}}" data-hostnode="{{hostnode_uuid}}">{{ title }}</button>
|
2024-02-21 14:36:19 +01:00
|
|
|
{% else %}
|
|
|
|
<a href="{{ url_for('tree', tree_uuid=capture_uuid, node_uuid=hostnode_uuid) }}">{{ title }}</a>
|
|
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
<td>{{ url }}</td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
2020-06-19 00:25:24 +02:00
|
|
|
{% endblock %}
|