45 lines
2.0 KiB
JavaScript
45 lines
2.0 KiB
JavaScript
import {
|
||
getAllLines, getLine, updateLine,
|
||
} from "./cards_api";
|
||
// Функция для создания карточки на основе данных
|
||
function createNewsCard(newsData) {
|
||
const maxTextLength = 150;
|
||
const truncatedText = newsData.text.length > maxTextLength ? newsData.text.substring(0, maxTextLength) + '...' : newsData.text;
|
||
const cardHtml = `
|
||
<div class="col-md-4">
|
||
<div class="card news-card">
|
||
<img src="${newsData.image}" class="card-img-top" alt="Изображение новости">
|
||
<div class="card-body">
|
||
<h5 class="card-title">${newsData.title}</h5>
|
||
<p class="card-text">${truncatedText}</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
`;
|
||
return cardHtml;
|
||
}
|
||
|
||
// Функция для загрузки и отображения карточек
|
||
async function loadAndDisplayNewsCards() {
|
||
try {
|
||
// Получаем данные с сервера с помощью функции из card.js
|
||
const lines = await getAllLines();
|
||
|
||
const newsCardsContainer = document.getElementById('news-cards-container');
|
||
|
||
// Перебираем полученные данные и создаем карточки для каждой новости
|
||
lines.forEach(line => {
|
||
const newsCard = createNewsCard({
|
||
title: line.title,
|
||
text: line.text,
|
||
image: line.image
|
||
});
|
||
newsCardsContainer.innerHTML += newsCard;
|
||
});
|
||
} catch (error) {
|
||
console.error('Ошибка загрузки данных:', error);
|
||
}
|
||
}
|
||
|
||
// Вызываем функцию для загрузки и отображения карточек при загрузке страницы
|
||
window.onload = loadAndDisplayNewsCards; |