Convert all src/views/*.ts template-literal modules to .ejs templates under views/. Register @fastify/view plugin in server.ts with EJS engine and _layout.ejs as the layout file. Update route handlers to use reply.view() instead of reply.send(layout(...)). Delete the old TypeScript view modules and layout.ts. Closes #19
20 lines
831 B
Plaintext
20 lines
831 B
Plaintext
<div class="file-view">
|
|
<h1><%= file.original_name %></h1>
|
|
<% if (file.mime_type.startsWith('image/')) { %>
|
|
<img src="/f/<%= file.id %>/raw" alt="<%= file.original_name %>">
|
|
<% } else if (file.mime_type.startsWith('video/')) { %>
|
|
<video controls src="/f/<%= file.id %>/raw" preload="metadata"></video>
|
|
<% } else if (file.mime_type.startsWith('audio/')) { %>
|
|
<audio controls src="/f/<%= file.id %>/raw" preload="metadata"></audio>
|
|
<% } %>
|
|
<div class="file-actions">
|
|
<a href="/f/<%= file.id %>/raw" download="<%= file.original_name %>" class="btn">Download</a>
|
|
<a href="/f/<%= file.id %>/raw" target="_blank" class="btn">Open</a>
|
|
</div>
|
|
<% if (isOwner) { %>
|
|
<form method="POST" action="/files/<%= file.id %>/delete">
|
|
<button type="submit" class="danger">Delete</button>
|
|
</form>
|
|
<% } %>
|
|
</div>
|