(function() {
var itemId = document.getElementById('wizard-item-sections-cfg').dataset.itemId;
document.getElementById('add-section-btn').addEventListener('click', function() {
var title = document.getElementById('new-section-title').value.trim();
var body = document.getElementById('new-section-body').value;
var status = document.getElementById('section-add-status');
if (!title) { status.textContent = 'Title is required'; return; }
this.disabled = true;
status.textContent = '';
fetch('/api/items/' + itemId + '/sections', {
method: 'POST',
headers: Object.assign({'Content-Type': 'application/json'}, csrfHeaders()),
body: JSON.stringify({ title: title, body: body })
})
.then(function(res) {
if (!res.ok) return res.json().then(function(d) { throw new Error(d.error || 'Failed'); });
return res.json();
})
.then(function(sec) {
var row = document.createElement('div');
row.className = 'section-row';
row.dataset.id = sec.id;
row.innerHTML =
'' +
'' +
'';
row.querySelector('.section-row-title').textContent = sec.title;
row.querySelector('.section-row-length').textContent = (sec.body || '').length + ' chars';
var delBtn = row.querySelector('.section-delete-btn');
delBtn.dataset.id = sec.id;
delBtn.textContent = 'Delete';
document.getElementById('sections-list').appendChild(row);
attachDeleteHandler(delBtn);
document.getElementById('new-section-title').value = '';
document.getElementById('new-section-body').value = '';
})
.catch(function(err) { status.textContent = err.message; })
.finally(function() { document.getElementById('add-section-btn').disabled = false; });
});
function attachDeleteHandler(btn) {
btn.addEventListener('click', function() {
var id = this.dataset.id;
var row = this.closest('.section-row');
fetch('/api/sections/' + id, { method: 'DELETE', headers: csrfHeaders() })
.then(function(res) { if (res.ok) row.remove(); else showToast('Failed to delete'); })
.catch(function() { showToast('Failed to delete'); });
});
}
document.querySelectorAll('.section-delete-btn').forEach(attachDeleteHandler);
})();