Files
DevOpsLab/app/templates/pages/dockerfiles/list.html
Сергей Антропов 1fbf9185a2 feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile
- Добавлена колонка 'Тип' во все таблицы истории сборок
- Для push операций отображается registry вместо платформ
- Сохранение пользователя при создании push лога
- Исправлена ошибка с logger в push_docker_image endpoint
- Улучшено отображение истории сборок с визуальными индикаторами
2026-02-15 22:59:02 +03:00

123 lines
5.4 KiB
HTML

{% extends "base.html" %}
{% block title %}Dockerfile - DevOpsLab{% endblock %}
{% block page_title %}Dockerfile{% endblock %}
{% block header_actions %}
<div class="d-flex gap-2">
<a href="/dockerfiles/create" class="btn btn-primary btn-sm">
<i class="fas fa-plus me-2"></i>
Создать Dockerfile
</a>
<a href="/dockerfiles/build-logs" class="btn btn-outline-primary btn-sm">
<i class="fas fa-history me-2"></i>
Логи сборок
</a>
</div>
{% endblock %}
{% block content %}
<div class="card">
<div class="card-header">
<h5 class="mb-0">Список Dockerfile</h5>
</div>
<div class="card-body p-0">
{% if dockerfiles %}
<div class="table-responsive">
<table class="table table-hover mb-0">
<thead class="table-light">
<tr>
<th>Название</th>
<th>Описание</th>
<th>Базовый образ</th>
<th>Теги</th>
<th>Статус</th>
<th style="min-width: 140px;">Действия</th>
</tr>
</thead>
<tbody>
{% for dockerfile in dockerfiles %}
<tr>
<td class="align-middle">
<i class="fas fa-file-code me-2 text-primary"></i>
<a href="/dockerfiles/{{ dockerfile.id }}" class="text-decoration-none fw-semibold">
{{ dockerfile.name }}
</a>
</td>
<td class="align-middle">
{% if dockerfile.description %}
<span class="text-truncate d-inline-block" style="max-width: 300px;" title="{{ dockerfile.description }}">
{{ dockerfile.description }}
</span>
{% else %}
<span class="text-muted"></span>
{% endif %}
</td>
<td class="align-middle">
{% if dockerfile.base_image %}
<span class="badge bg-info">{{ dockerfile.base_image }}</span>
{% else %}
<span class="text-muted"></span>
{% endif %}
</td>
<td class="align-middle">
{% if dockerfile.tags %}
{% for tag in dockerfile.tags %}
<span class="badge bg-secondary me-1">{{ tag }}</span>
{% endfor %}
{% else %}
<span class="text-muted"></span>
{% endif %}
</td>
<td class="align-middle">
<span class="badge {% if dockerfile.status == 'active' %}bg-success{% else %}bg-secondary{% endif %}">
{{ dockerfile.status }}
</span>
</td>
<td class="align-middle">
<div class="btn-group btn-group-sm">
<a
href="/dockerfiles/{{ dockerfile.id }}/edit"
class="btn btn-outline-primary"
title="Редактировать"
>
<i class="fas fa-edit"></i>
</a>
<a
href="/dockerfiles/{{ dockerfile.id }}"
class="btn btn-outline-info"
title="Детали"
>
<i class="fas fa-info-circle"></i>
</a>
<button
hx-delete="/api/v1/dockerfiles/{{ dockerfile.id }}"
hx-confirm="Удалить Dockerfile '{{ dockerfile.name }}'?"
hx-target="closest tr"
hx-swap="outerHTML"
class="btn btn-outline-danger"
title="Удалить"
>
<i class="fas fa-trash"></i>
</button>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<div class="text-center py-5">
<i class="fas fa-inbox fa-3x text-muted mb-3"></i>
<p class="text-muted mb-3">Dockerfile'ов пока нет</p>
<a href="/dockerfiles/create" class="btn btn-primary">
<i class="fas fa-plus me-2"></i>
Создать первый Dockerfile
</a>
</div>
{% endif %}
</div>
</div>
{% endblock %}