document.addEventListener('DOMContentLoaded', () => { const textsList = document.getElementById('texts-list'); const createPlanModal = document.getElementById('create-plan-modal'); async function loadTexts() { const response = await fetch('/api/texts'); const texts = await response.json(); textsList.innerHTML = texts .map(text => '
  • ' + text.name + '
  • ' ) .join(''); } const cancelPlanButton = createPlanModal.querySelector( 'button.cancel-plan' ); const savePlanButton = createPlanModal.querySelector( 'button.save-plan' ); const planNameInput = createPlanModal.querySelector('input.plan-name'); const planDateStartInput = createPlanModal.querySelector( 'input.plan-date-start' ); const planDateEndInput = createPlanModal.querySelector( 'input.plan-date-end' ); function openCreatePlanModal(textId) { createPlanModal.dataset.textId = textId; createPlanModal.hidden = false; } function closeCreatePlanModal() { createPlanModal.hidden = true; planNameInput.value = ''; planDateStartInput.value = ''; planDateEndInput.value = ''; } textsList.addEventListener('click', (clickEvent) => { const createPlanButton = clickEvent.target.closest( 'button.create-plan' ); if (createPlanButton === null) { return; } openCreatePlanModal(createPlanButton.dataset.textId); }); cancelPlanButton.addEventListener('click', () => { closeCreatePlanModal(); }); savePlanButton.addEventListener('click', async () => { const planName = planNameInput.value; const dateStart = planDateStartInput.value; const dateEnd = planDateEndInput.value; const textId = Number(createPlanModal.dataset.textId); if (planName === '' || dateStart === '' || dateEnd === '') { return; } const response = await fetch('/api/plans', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ userId: 0, textId: textId, name: planName, dateStart: dateStart, dateEnd: dateEnd, }), }); if (response.ok) { closeCreatePlanModal(); } }); loadTexts(); });