| 561 | } |
| 562 | |
| 563 | function autopilotLog(a) { |
| 564 | if (!a || !a.completed || !a.completed.length) return ""; |
| 565 | let h = '<ul class="aplog">'; |
| 566 | a.completed.forEach((c) => { |
| 567 | h += |
| 568 | "<li>" + (c.done ? '<span class="apok">✓</span>' : '<span class="apno">•</span>') + |
| 569 | " " + esc(c.title) + |
| 570 | (c.section ? ' <span class="smuted">' + esc(c.section) + "</span>" : "") + |
| 571 | (c.error ? ' <span class="apno">' + esc(c.error) + "</span>" : "") + |
| 572 | "</li>"; |
| 573 | }); |
| 574 | return h + "</ul>"; |
| 575 | } |
| 576 | |
| 577 | // Autopilot launch card on the Plan tab. |
| 578 | function autopilotCard(s) { |