77 lines
3.7 KiB
HTML
77 lines
3.7 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block content %}
|
|
<section class="section">
|
|
<div class="container">
|
|
<h1 class="title is-4">System Maintenance</h1>
|
|
<p class="subtitle is-6">Superuser tools for data cleanup (current user scope).</p>
|
|
|
|
{% if notice_message %}
|
|
<article class="notification is-{{ notice_level|default:'info' }} is-light">
|
|
{{ notice_message }}
|
|
</article>
|
|
{% endif %}
|
|
|
|
<div class="columns is-multiline">
|
|
<div class="column is-12">
|
|
<article class="box">
|
|
<h2 class="title is-6">Purge Non-OSINT Data</h2>
|
|
<p class="is-size-7 has-text-grey" style="margin-bottom: 0.65rem;">
|
|
Removes message/workspace/AI/mitigation runtime rows but keeps OSINT setup objects.
|
|
</p>
|
|
<div class="tags" style="margin-bottom: 0.75rem;">
|
|
<span class="tag is-light">Chat Sessions: {{ counts.chat_sessions }}</span>
|
|
<span class="tag is-light">Messages: {{ counts.messages }}</span>
|
|
<span class="tag is-light">Queued: {{ counts.queued_messages }}</span>
|
|
<span class="tag is-light">Events: {{ counts.message_events }}</span>
|
|
<span class="tag is-light">Workspace: {{ counts.workspace_conversations }}</span>
|
|
<span class="tag is-light">Snapshots: {{ counts.workspace_snapshots }}</span>
|
|
<span class="tag is-light">AI Requests: {{ counts.ai_requests }}</span>
|
|
<span class="tag is-light">AI Results: {{ counts.ai_results }}</span>
|
|
<span class="tag is-light">Memory: {{ counts.memory_items }}</span>
|
|
<span class="tag is-light">Mitigation Plans: {{ counts.mitigation_plans }}</span>
|
|
</div>
|
|
<form method="post">
|
|
{% csrf_token %}
|
|
<input type="hidden" name="action" value="purge_non_osint">
|
|
<button type="submit" class="button is-danger is-light">Purge Non-OSINT</button>
|
|
</form>
|
|
</article>
|
|
</div>
|
|
|
|
<div class="column is-12">
|
|
<article class="box">
|
|
<h2 class="title is-6">Purge OSINT Setup Categories</h2>
|
|
<p class="is-size-7 has-text-grey" style="margin-bottom: 0.65rem;">
|
|
Category-specific cleanup controls.
|
|
</p>
|
|
<div class="buttons are-small" style="margin-bottom: 0.75rem;">
|
|
<form method="post" style="margin: 0;">
|
|
{% csrf_token %}
|
|
<input type="hidden" name="action" value="purge_osint_people">
|
|
<button type="submit" class="button is-warning is-light">Purge People ({{ counts.osint_people }})</button>
|
|
</form>
|
|
<form method="post" style="margin: 0;">
|
|
{% csrf_token %}
|
|
<input type="hidden" name="action" value="purge_osint_identifiers">
|
|
<button type="submit" class="button is-warning is-light">Purge Identifiers ({{ counts.osint_identifiers }})</button>
|
|
</form>
|
|
<form method="post" style="margin: 0;">
|
|
{% csrf_token %}
|
|
<input type="hidden" name="action" value="purge_osint_groups">
|
|
<button type="submit" class="button is-warning is-light">Purge Groups ({{ counts.osint_groups }})</button>
|
|
</form>
|
|
<form method="post" style="margin: 0;">
|
|
{% csrf_token %}
|
|
<input type="hidden" name="action" value="purge_osint_personas">
|
|
<button type="submit" class="button is-warning is-light">Purge Personas ({{ counts.osint_personas }})</button>
|
|
</form>
|
|
</div>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
{% endblock %}
|
|
|