// Zakładka „Skompiluj" — składanie raportu (PRE-23).
//
// Raport ma trzy kawałki liczone w różnych miejscach:
// 1. horoskop — liczy serwer przy wysłaniu tego formularza,
// 2. interpretacja natalna — z zakładki Interpretacje (natal.js),
// 3. predykcje okresowe — z zakładki Kalendarz (predictions.js).
//
// Punkty 2 i 3 mieszkają w magazynie przeglądarki, więc to tutaj je dokładamy.
// Odczytujemy je przez API tamtych modułów, a nie sięgając wprost do
// localStorage — dzięki temu format danych ma JEDNEGO właściciela.
//
// Pokazujemy też, CZEGO BRAKUJE. Bez tego użytkownik złożyłby niekompletny raport
// i dowiedział się o tym dopiero po otwarciu PDF-a.
(function () {
'use strict';
function esc(s) {
return String(s == null ? '' : s)
.replace(/&/g, '&').replace(//g, '>');
}
function readNatal() {
return (window.astrololoNatal && window.astrololoNatal.read()) || null;
}
function readPredictions() {
return (window.astrololoPredictions && window.astrololoPredictions.read()) || [];
}
function item(ok, label, hint) {
return '
' +
(ok ? '✓ ' : '✗ ') + esc(label) +
(ok ? '' : ' — ' + esc(hint) + '') + '';
}
function renderReadiness(hasChart) {
var host = document.getElementById('readiness');
if (!host) return;
var natal = readNatal();
var preds = readPredictions();
var parts = [
item(hasChart, 'Policzony horoskop', 'wypełnij dane i kliknij „Złóż podsumowanie"'),
item(!!natal, 'Interpretacja natalna',
'wygeneruj ją na zakładce Interpretacje — zapamięta się sama'),
item(preds.length > 0,
'Predykcje okresowe' + (preds.length ? ' (' + preds.length + ')' : ''),
'policz horoskop na wybrany okres w Kalendarzu')
];
host.innerHTML = 'Materiał do raportu
';
}
function renderNatal() {
var host = document.getElementById('reportNatal');
if (!host) return;
var natal = readNatal();
if (!natal) {
host.innerHTML = 'Interpretacja natalna
' +
'Brak — wygeneruj ją na zakładce Interpretacje.
';
return;
}
host.innerHTML = 'Interpretacja natalna ' +
'· zapamiętana ' + esc(String(natal.saved_at).slice(0, 10)) +
'
' + esc(natal.text) + '
';
}
function renderPredictions() {
var host = document.getElementById('reportPredictions');
if (!host) return;
var preds = readPredictions();
if (!preds.length) {
host.innerHTML = 'Predykcje okresowe
' +
'Brak — policz horoskop na wybrany okres w Kalendarzu.
';
return;
}
var blocks = preds.map(function (p) {
return '' + esc(p.from_date) + ' – ' + esc(p.to_date) + '
' +
'' + esc(p.text) + '
';
}).join('');
host.innerHTML = 'Predykcje okresowe (' + preds.length + ')
' + blocks;
}
function ready(fn) {
if (document.readyState !== 'loading') fn();
else document.addEventListener('DOMContentLoaded', fn);
}
ready(function () {
if (!document.getElementById('readiness')) return; // nie ta zakładka
// Horoskop jest w dokumencie tylko po wysłaniu formularza.
renderReadiness(!!document.getElementById('reportPerson'));
renderNatal();
renderPredictions();
});
})();