change post details tab
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-09-28 19:59:19 +03:00
parent d7c38e112a
commit b8189e9b12
+39 -51
View File
@@ -465,7 +465,7 @@
<div class="col-md-7"> <div class="col-md-7">
<div class="card h-100"> <div class="card h-100">
<div class="card-header d-flex justify-content-between align-items-center"> <div class="card-header d-flex justify-content-between align-items-center">
<h5 class="mb-0">Детали поста</h5> <h5 class="mb-0" id="post-details-header">Детали поста</h5>
<div id="post-actions"></div> <div id="post-actions"></div>
</div> </div>
<div class="card-body scrollable-details" id="post-details"> <div class="card-body scrollable-details" id="post-details">
@@ -1643,7 +1643,13 @@
const formatDate = (dateStr) => { const formatDate = (dateStr) => {
if (!dateStr) return 'Не указано'; if (!dateStr) return 'Не указано';
const date = new Date(dateStr); const date = new Date(dateStr);
return date.toLocaleString('ru-RU'); return date.toLocaleString('ru-RU', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit'
});
}; };
// Загружаем связанные события // Загружаем связанные события
const linkedEvents = await fetch(`${PREFIX}/api/posts/${postId}/linked_events`) const linkedEvents = await fetch(`${PREFIX}/api/posts/${postId}/linked_events`)
@@ -1656,7 +1662,7 @@
let detailsHtml = ` let detailsHtml = `
<div> <div>
<div class="d-flex justify-content-between align-items-center mb-4"> <div class="d-flex justify-content-between align-items-center mb-4">
<h4 class="mb-0">Пост #${post.vk_post_id}</h4> <div></div>
<div> <div>
<button class="btn btn-sm btn-primary me-2" onclick="publishPost(${post.id})"> <button class="btn btn-sm btn-primary me-2" onclick="publishPost(${post.id})">
<i class="fas fa-paper-plane me-1"></i>Опубликовать <i class="fas fa-paper-plane me-1"></i>Опубликовать
@@ -1674,58 +1680,38 @@
</button> </button>
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row">
<div class="col-md-6 mb-3"> <div class="col-md-8">
<label class="form-label fw-bold">Название:</label> <div class="mb-3">
<div class="form-control">${post.shortname || 'Не указано'}</div> <div class="d-flex flex-wrap gap-2 mb-3">
</div> ${post.marked_for_publication && !post.published_in_tg ? '<span class="badge bg-warning">Для публикации</span>' : ''}
<div class="col-md-6 mb-3"> ${post.published_in_tg ? '<span class="badge bg-primary">Опубликовано</span>' : ''}
<label class="form-label fw-bold">Номер события в системе расписания:</label>
<div class="form-control">${post.action_number || 'Не указан'}</div>
</div>
</div>
<div class="mb-4">
<label class="form-label fw-bold">Текст поста:</label>
<div class="border p-3 bg-light rounded">${post.text || 'Нет текста'}</div>
</div>
${post.image_url ? `
<div class="mb-4">
<label class="form-label fw-bold">Изображение:</label>
<div class="text-center">
<img src="${PREFIX}/image_proxy?url=${encodeURIComponent(post.image_url)}"
class="img-fluid detail-image rounded shadow-sm">
</div>
</div>` : ''}
<div class="row mb-3">
<div class="col-md-6 mb-3">
<label class="form-label fw-bold">Дата публикации VK:</label>
<div class="form-control">${formatDate(post.published_at)}</div>
</div>
<div class="col-md-6 mb-3">
<label class="form-label fw-bold">Дата публикации TG:</label>
<div class="form-control">${formatDate(post.tg_publication_date)}</div>
</div>
<div class="col-md-6 mb-3">
<label class="form-label fw-bold">Ссылка на пост VK:</label>
<div class="form-control">${post.vk_post_url || 'Не указана'}</div>
</div>
<div class="col-md-6 mb-3">
<label class="form-label fw-bold">ID сообщения TG:</label>
<div class="form-control">${post.tg_message_id || 'Не указан'}</div>
</div>
</div>
<!-- Отображение типа поста -->
<div class="row mb-3">
<div class="col-md-6 mb-3">
<label class="form-label fw-bold">Тип поста:</label>
<div class="form-control">
<div class="d-flex flex-wrap gap-2">
${post.is_event ? '<span class="badge bg-info">Событие</span>' : ''} ${post.is_event ? '<span class="badge bg-info">Событие</span>' : ''}
${post.is_poll ? '<span class="badge bg-primary">Опрос</span>' : ''} ${post.is_poll ? '<span class="badge bg-success">Опрос</span>' : ''}
${!post.is_event && !post.is_poll ? '<span>Обычный</span>' : ''} ${!post.marked_for_publication && !post.published_in_tg && !post.is_event && !post.is_poll ? '<span class="badge bg-secondary">Никакое</span>' : ''}
</div> </div>
<div class="mb-2">
<strong>ВКонтакте:</strong> <a href="${post.vk_post_url || '#'}" target="_blank" class="text-decoration-none">${post.vk_post_url || 'Не указана'}</a>
</div>
<div class="mb-2">
<i class="fas fa-clock me-1"></i>${formatDate(post.published_at)}
</div>
${post.published_in_tg ? `
<div class="mb-2">
<strong>Телеграм</strong> <i class="fab fa-telegram-plane me-1"></i>${post.tg_message_id || 'Не указан'} <i class="fas fa-clock me-1"></i>${formatDate(post.tg_publication_date)}
</div>` : ''}
</div> </div>
</div> </div>
<div class="col-md-4">
${post.image_url ? `
<div class="text-center">
<img src="${PREFIX}/image_proxy?url=${encodeURIComponent(post.image_url)}"
class="img-fluid rounded shadow-sm" style="max-width: 33%; min-width: 200px;">
</div>` : ''}
</div>
</div>
<div class="mb-4">
<div class="border p-3 bg-light rounded">${post.text || 'Нет текста'}</div>
</div> </div>
${post.is_poll ? ` ${post.is_poll ? `
<div class="card border-primary mb-4"> <div class="card border-primary mb-4">
@@ -1817,6 +1803,8 @@
} }
detailsHtml += `</div>`; detailsHtml += `</div>`;
detailsPanel.innerHTML = detailsHtml; detailsPanel.innerHTML = detailsHtml;
// Обновляем заголовок панели
document.getElementById('post-details-header').textContent = `Пост #${post.vk_post_id}: ${post.shortname || 'Без названия'}`;
// Обработчик для кнопки публикации // Обработчик для кнопки публикации
document.getElementById('toggle-pub-btn').addEventListener('click', () => { document.getElementById('toggle-pub-btn').addEventListener('click', () => {
togglePublication(post.id); togglePublication(post.id);