delete functionality on instances page

This commit is contained in:
2025-06-25 11:58:37 +02:00
parent e519dc3a8b
commit 0466b11c71
5 changed files with 388 additions and 15 deletions

View File

@@ -68,6 +68,76 @@
</div>
</div>
<!-- Quick Links to Infrastructure Tools -->
<div class="container-fluid mb-4">
<div class="row">
<div class="col-12">
<div class="card border-0 shadow-sm">
<div class="card-body">
<h5 class="card-title mb-3">
<i class="fas fa-tools me-2" style="color: var(--primary-color);"></i>
Infrastructure Tools
</h5>
<div class="row g-3 infrastructure-tools">
<div class="col-md-3">
<a href="{{ portainer_settings.url if portainer_settings and portainer_settings.url else '#' }}"
target="_blank"
class="btn btn-outline-primary w-100 h-100 d-flex flex-column align-items-center justify-content-center p-3"
{% if not portainer_settings or not portainer_settings.url %}disabled style="pointer-events: none;"{% endif %}
aria-label="Open Portainer Container Management">
<i class="fab fa-docker fa-2x mb-2"></i>
<span class="fw-bold">Portainer</span>
<small class="text-muted">Container Management</small>
</a>
</div>
<div class="col-md-3">
<a href="{{ nginx_settings.url if nginx_settings and nginx_settings.url else '#' }}"
target="_blank"
class="btn btn-outline-success w-100 h-100 d-flex flex-column align-items-center justify-content-center p-3"
{% if not nginx_settings or not nginx_settings.url %}disabled style="pointer-events: none;"{% endif %}
aria-label="Open NGINX Proxy Manager">
<i class="fas fa-globe fa-2x mb-2"></i>
<span class="fw-bold">NGINX Proxy</span>
<small class="text-muted">Reverse Proxy & SSL</small>
</a>
</div>
<div class="col-md-3">
<a href="{{ git_settings.url if git_settings and git_settings.url else '#' }}"
target="_blank"
class="btn btn-outline-info w-100 h-100 d-flex flex-column align-items-center justify-content-center p-3"
{% if not git_settings or not git_settings.url %}disabled style="pointer-events: none;"{% endif %}
aria-label="Open Gitea Code Repository">
<i class="fab fa-git-alt fa-2x mb-2"></i>
<span class="fw-bold">Gitea</span>
<small class="text-muted">Code Repository</small>
</a>
</div>
<div class="col-md-3">
<a href="https://dash.cloudflare.com"
target="_blank"
class="btn btn-outline-warning w-100 h-100 d-flex flex-column align-items-center justify-content-center p-3"
aria-label="Open Cloudflare Dashboard">
<i class="fas fa-cloud fa-2x mb-2"></i>
<span class="fw-bold">Cloudflare</span>
<small class="text-muted">DNS & CDN</small>
</a>
</div>
</div>
{% if not portainer_settings or not portainer_settings.url or not nginx_settings or not nginx_settings.url or not git_settings or not git_settings.url %}
<div class="mt-3">
<div class="alert alert-warning mb-0">
<i class="fas fa-exclamation-triangle me-2"></i>
<strong>Note:</strong> Some infrastructure tools are not configured.
<a href="/settings#connections" class="alert-link">Configure them in Settings</a> to enable quick access.
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-12">
@@ -624,6 +694,9 @@
<h6><i class="fas fa-info-circle me-2"></i>What will be deleted:</h6>
<ul class="mb-0">
<li>Instance configuration</li>
<li>Portainer Docker stack and all containers</li>
<li>All associated Docker volumes and data</li>
<li>NGINX proxy host configuration</li>
<li>All rooms and conversations</li>
<li>User data and files</li>
<li>Database records</li>
@@ -649,5 +722,29 @@
{% endblock %}
{% block extra_js %}
<script>
// Pass settings data to JavaScript
window.portainerSettings = {
url: "{{ portainer_settings.url if portainer_settings and portainer_settings.url else '' }}",
api_key: "{{ portainer_settings.api_key if portainer_settings and portainer_settings.api_key else '' }}"
};
window.nginxSettings = {
url: "{{ nginx_settings.url if nginx_settings and nginx_settings.url else '' }}",
username: "{{ nginx_settings.username if nginx_settings and nginx_settings.username else '' }}",
password: "{{ nginx_settings.password if nginx_settings and nginx_settings.password else '' }}"
};
window.gitSettings = {
url: "{{ git_settings.url if git_settings and git_settings.url else '' }}",
token: "{{ git_settings.token if git_settings and git_settings.token else '' }}",
repo: "{{ git_settings.repo if git_settings and git_settings.repo else '' }}"
};
window.cloudflareSettings = {
api_token: "{{ cloudflare_settings.api_token if cloudflare_settings and cloudflare_settings.api_token else '' }}",
zone_id: "{{ cloudflare_settings.zone_id if cloudflare_settings and cloudflare_settings.zone_id else '' }}"
};
</script>
<script src="{{ url_for('static', filename='js/instances.js') }}?v={{ 'js/instance_detail.js'|asset_version }}"></script>
{% endblock %}