boot.js 1.0 KB

123456789101112131415161718
  1. function display(state) {
  2. document.getElementById('status').textContent = state.message
  3. document.getElementById('actions').hidden = state.phase !== 'error'
  4. document.getElementById('status').setAttribute('role', state.phase === 'error' ? 'alert' : 'status')
  5. document.querySelector('main').setAttribute('aria-busy', String(state.phase === 'starting' || state.phase === 'restarting'))
  6. }
  7. async function render() {
  8. try { display(await window.yaoyaoDesktop.status()) }
  9. catch { display({ phase: 'error', message: '无法读取启动状态,请重试或查看服务日志。' }) }
  10. }
  11. document.getElementById('retry').onclick = async () => {
  12. document.getElementById('retry').disabled = true
  13. try { await window.yaoyaoDesktop.retry(); await render() }
  14. catch { display({ phase: 'error', message: '启动未完成,请重试或查看服务日志。' }) }
  15. finally { document.getElementById('retry').disabled = false }
  16. }
  17. document.getElementById('logs').onclick = () => window.yaoyaoDesktop.logs()
  18. void render();setInterval(() => { void render() }, 500)