<%= t('aupd.title') %>
← <%= t('aupd.back_admin') %>
<% if (success) { %>
<%= success %>
<% } %>
<% if (error) { %>
<%= error %>
<% } %>
<%= t('aupd.version_heading') %>
<%= t('aupd.app_version') %>
<%= appVersion || '—' %>
<%= t('aupd.current') %>
<% if (currentSha) { %><%= currentSha %> <%= currentDesc %>
<% } else { %><%= t('aupd.current_unknown') %><% } %>
<%= t('aupd.latest') %>
<% if (latestSha) { %><%= latestSha %> <%= latestDesc %>
<% } else { %><%= t('aupd.latest_failed') %><% } %>
<% if (!canCheck) { %>
⚠ <%= t('aupd.no_source') %>
<% } else if (upToDate) { %>
✓ <%= t('aupd.uptodate') %>
<% } else { %>
↻ <%= t('aupd.update_available') %><% if (behind) { %> (<%= behind === '1' ? t('aupd.behind_one', { n: behind }) : t('aupd.behind_many', { n: behind }) %>)<% } %>
<% } %>
<% if (canCheck) { %>
<% } %>
<%= t('aupd.help') %>
<% if (changes && changes.length) { %>
<%= t('aupd.changes_heading') %>
<% changes.forEach(function (c) { %>
- <%= c.date %> <%= c.msg %>
<% }) %>
<% } %>