diff --git a/templates/admin/social_publisher.html b/templates/admin/social_publisher.html index 37eb6f4..b23c5f4 100644 --- a/templates/admin/social_publisher.html +++ b/templates/admin/social_publisher.html @@ -454,8 +454,9 @@ {% endif %} -
- +
+ +
@@ -823,7 +824,6 @@ return; } renderFbPosts(companyId, data.posts, data.next_cursor, isAppend); - if (!isAppend) saveFbPostsToCache(companyId, data.posts); }) .catch(function(err) { btn.textContent = origText; @@ -952,6 +952,54 @@ } } + async function refreshAllFbPosts(companyId, btn) { + var origText = btn.textContent; + btn.disabled = true; + var container = document.getElementById('fbPostsContainer-' + companyId); + container.innerHTML = '
Pobieranie WSZYSTKICH postow z Facebook API...
'; + + var allPosts = []; + var cursor = null; + var page = 0; + + try { + while (true) { + page++; + btn.textContent = 'Pobieranie... (' + allPosts.length + ' postow, strona ' + page + ')'; + + var url = '/admin/social-publisher/fb-posts/' + companyId; + if (cursor) url += '?after=' + encodeURIComponent(cursor); + + var response = await fetch(url); + var data = await response.json(); + + if (!data.success || !data.posts || data.posts.length === 0) break; + + allPosts = allPosts.concat(data.posts); + + if (!data.next_cursor) break; + cursor = data.next_cursor; + } + + btn.textContent = origText; + btn.disabled = false; + + if (allPosts.length === 0) { + container.innerHTML = '
Brak postow.
'; + return; + } + + renderFbPosts(companyId, allPosts, null, false); + container.insertAdjacentHTML('beforeend', + '
Pobrano ' + allPosts.length + ' postow z Facebook API i zapisano do cache
'); + saveFbPostsToCache(companyId, allPosts); + } catch (err) { + btn.textContent = origText; + btn.disabled = false; + showToast('Blad polaczenia: ' + err.message, 'error'); + } + } + function renderFbCharts(companyId, posts) { // Sort chronologically (oldest first) var sorted = posts.slice().sort(function(a, b) {