app/views/alchemy/admin/dashboard/info.html.erb
<p class="center">
<%= image_tag('alchemy/alchemy-logo.svg', width: 267, height: 91) %>
</p>
<h2 class="center">
v<%= @alchemy_version %><br>
<small>
Ruby v<%= RUBY_VERSION %>, Rails v<%= Rails.version %>
</small>
</h2>
<% if can? :update_check, :alchemy_admin_dashboard %>
<p class="center" id="update_check">
<span id="update_available" class="hidden">
<%= render_icon(:exclamation) %>
<%= Alchemy.t 'Update available' %>
</span>
<span id="up_to_date" class="hidden">
<%= render_icon(:check) %>
<%= Alchemy.t 'Alchemy is up to date' %>
</span>
<span id="error" class="hidden">
<%= render_icon(:exclamation) %>
<%= Alchemy.t 'Update status unavailable' %>
</span>
</p>
<script type="module">
var el = $('#update_check');
var spinner = new Alchemy.Spinner('small')
spinner.spin(el[0])
$.get('<%= alchemy.update_check_path %>', function(data, textStatus, jqXHR) {
if (data == 'true') {
$('#update_available').removeClass("hidden")
} else {
$('#up_to_date').removeClass("hidden")
}
}).fail(function(jqXHR, textStatus, errorThrown) {
$('#error').removeClass("hidden")
}).always(function() {
spinner.stop()
})
</script>
<% end %>
<%= render_message do %>
<p><%= Alchemy.t('Alchemy is open software and itself uses open software and free resources:') %></p>
<ul>
<li>
<a href="https://rubyonrails.org" target="_blank">Ruby on Rails</a>
</li>
<li>
<a href="https://jquery.com" target="_blank">jQuery Javascript Library</a>
</li>
<li>
<a href="https://shoelace.style" target="_blank">Shoelace Web Components Library</a>
</li>
<li>
<a href="https://www.tiny.cloud" target="_blank">TinyMCE - Javascript WYSIWYG Editor</a>
</li>
<li>
<a href="https://remixicon.com" target="_blank">Remix Icons</a>
</li>
</ul>
<% end %>