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
32 lines
1007 B
Plaintext
32 lines
1007 B
Plaintext
<h1>My files</h1>
|
|
<p><a href="/upload">Upload new file</a></p>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th><th>Type</th><th>Size</th><th>Uploaded</th><th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<% if (files.length === 0) { %>
|
|
<tr><td colspan="5">No files yet. <a href="/upload">Upload one.</a></td></tr>
|
|
<% } else { %>
|
|
<% files.forEach(function(f) { %>
|
|
<tr>
|
|
<td><a href="/f/<%= f.id %>"><%= f.original_name %></a></td>
|
|
<td><%= f.mime_type %></td>
|
|
<td><%= f.sizeFormatted %></td>
|
|
<td><%= f.created_at %></td>
|
|
<td>
|
|
<button class="copy-link" onclick="navigator.clipboard.writeText('<%= baseUrl %>/f/<%= f.id %>')">Copy link</button>
|
|
<form method="POST" action="/files/<%= f.id %>/delete" style="display:inline">
|
|
<button type="submit" class="danger">Delete</button>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
<% }); %>
|
|
<% } %>
|
|
</tbody>
|
|
</table>
|
|
</div>
|