Исправление синтаксической ошибки в molecule_executor.py и обновление k8s preset'ов
- Исправлена незакрытая скобка в _build_test_command (строка 745) - Добавлена поддержка k8s preset'ов: выполнение create_k8s_cluster.py перед create.yml - Обновлены образы в k8s preset'ах: заменен недоступный ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy на inecs/ansible-lab:ubuntu22-latest - Обновлены preset'ы в базе данных через SQL - Обновлены файлы: k8s-single.yml, k8s-multi.yml, k8s-istio-full.yml
This commit is contained in:
@@ -91,10 +91,7 @@
|
||||
<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"
|
||||
onclick="deleteDockerfile({{ dockerfile.id }}, '{{ dockerfile.name }}', this)"
|
||||
class="btn btn-outline-danger"
|
||||
title="Удалить"
|
||||
>
|
||||
@@ -119,4 +116,89 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% block scripts %}
|
||||
<script>
|
||||
async function deleteDockerfile(dockerfileId, dockerfileName, button) {
|
||||
// Показываем модальное окно подтверждения
|
||||
const confirmed = await showConfirmModal(
|
||||
`Вы уверены, что хотите удалить Dockerfile '${dockerfileName}'?`,
|
||||
'Подтверждение удаления'
|
||||
);
|
||||
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Отключаем кнопку во время запроса
|
||||
button.disabled = true;
|
||||
const originalHTML = button.innerHTML;
|
||||
button.innerHTML = '<i class="fas fa-spinner fa-spin"></i>';
|
||||
|
||||
try {
|
||||
const response = await fetch(`/api/v1/dockerfiles/${dockerfileId}`, {
|
||||
method: 'DELETE',
|
||||
credentials: 'include',
|
||||
headers: {
|
||||
'Accept': 'application/json'
|
||||
}
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
if (data.success) {
|
||||
// Показываем модальное окно с успешным сообщением
|
||||
if (window.showMessageModal) {
|
||||
window.showMessageModal(
|
||||
data.message || `Dockerfile '${dockerfileName}' успешно удален`,
|
||||
'success',
|
||||
'Успешно',
|
||||
function() {
|
||||
// После закрытия модального окна удаляем строку из таблицы
|
||||
const row = button.closest('tr');
|
||||
if (row) {
|
||||
row.remove();
|
||||
}
|
||||
}
|
||||
);
|
||||
} else {
|
||||
// Если функция недоступна, просто удаляем строку
|
||||
const row = button.closest('tr');
|
||||
if (row) {
|
||||
row.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Ошибка - показываем в модальном окне
|
||||
try {
|
||||
const errorData = await response.json();
|
||||
const errorMessage = errorData.detail || errorData.message || 'Ошибка при удалении Dockerfile';
|
||||
if (window.showMessageModal) {
|
||||
window.showMessageModal(errorMessage, 'error');
|
||||
} else {
|
||||
alert(errorMessage);
|
||||
}
|
||||
} catch (e) {
|
||||
if (window.showMessageModal) {
|
||||
window.showMessageModal('Ошибка при удалении Dockerfile', 'error');
|
||||
} else {
|
||||
alert('Ошибка при удалении Dockerfile');
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Ошибка при удалении Dockerfile:', error);
|
||||
if (window.showMessageModal) {
|
||||
window.showMessageModal('Ошибка при удалении Dockerfile', 'error');
|
||||
} else {
|
||||
alert('Ошибка при удалении Dockerfile');
|
||||
}
|
||||
} finally {
|
||||
// Восстанавливаем кнопку
|
||||
button.disabled = false;
|
||||
button.innerHTML = originalHTML;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user