chore: replace hand-rolled layout() with @fastify/view + EJS
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
This commit is contained in:
19
views/file-view.ejs
Normal file
19
views/file-view.ejs
Normal file
@@ -0,0 +1,19 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user