function rebuildIndex() { openModal({ title: 'Rebuilding search index…', body: 'Walking the wiki tree.' }); fetch('/_reindex', { method: 'POST' }) .then(function (resp) { if (!resp.ok) throw new Error('rebuild failed: ' + resp.status); window.location.href = window.location.href; }) .catch(function (err) { closeModal(); openModal({ title: 'Rebuild failed', body: String(err), confirm: { label: 'OK' } }); }); } document.addEventListener('DOMContentLoaded', function () { wireDropdown(document.querySelector('[data-action="actions-drop"]')); // Focus the search input on results pages so Tab steps directly into the // first match — the input sits immediately before the results in DOM // order, so the natural tab sequence is input → first result → next, … var input = document.querySelector('.search-input'); if (input && input.value) { input.focus(); var end = input.value.length; try { input.setSelectionRange(end, end); } catch (e) {} } });