Initial import

This commit is contained in:
Lucas Gabriel Vuotto 2025-04-26 09:41:50 +00:00
commit dd492db92e
37 changed files with 1953 additions and 0 deletions

24
templates/_pager.html.ep Normal file
View file

@ -0,0 +1,24 @@
% if (my $pager = stash("pager")) {
% my @pages = extended_pager($pager);
<footer>
<nav class="text-center pager">
<%= link_to "<<" => url_with->query({page => $pager->{first_page}})
if $pager->{first_page} < $pages[0] %>
<%= link_to "<" => url_with->query({page => $pager->{previous_page}})
if defined($pager->{previous_page}) &&
$pager->{previous_page} > 3 %>
% for my $page (@pages) {
% if ($page == $pager->{current_page}) {
<span><%= $pager->{current_page} %></span>
% } else {
<%= link_to $page => url_with->query({page => $page}) %>
% }
% }
<%= link_to ">" => url_with->query({page => $pager->{next_page}})
if defined($pager->{next_page}) &&
$pager->{next_page} < $pager->{last_page} - 2 %>
<%= link_to ">>" => url_with->query({page => $pager->{last_page}})
if $pager->{last_page} > $pages[-1] %>
</nav>
</footer>
% }

13
templates/gallery.html.ep Normal file
View file

@ -0,0 +1,13 @@
% layout "main";
<%= tag("h1", title) if title %>
<div class="layout-flex-row gallery">
% for my $m ($media->@*) {
<%= link_to $m->{show_media_url} => begin %>
<%= image $m->{media_src} %>
<%= end %>
% }
</div>
%= include "_pager";

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title><%= join(" - ", "Pooru", title() // ()) %></title>
<%= stylesheet "/css/style.css" %>
</head>
<body class="layout-flex-column">
<header>
<nav class="layout-viewport layout-flex-row">
<%= link_to "Pooru~" => "/" %>
<%= link_to "tags" => url_for("list_tags") %>
<%= link_to "random tag" => url_for("random_tag") %>
<%= link_to "random media" => url_for("random_media") %>
<span class="layout-flex-item-fullsize"><!-- spacer --></span>
<%= link_to "login" => "/login" %>
</nav>
</header>
<main class="layout-flex-item-fullsize layout-flex-column">
<div class="layout-viewport layout-flex-item-fullsize layout-flex-column">
<%= content %>
</div>
</main>
<footer>
<p class="layout-viewport text-center">
Powered by <a href="//www.openbsd.org/">OpenBSD</a> /
<a href="//www.mojolicious.org/">Mojolicious</a> /
<a href="//www.haproxy.org/">HAProxy</a>.
</p>
</footer>
</body>
</html>

37
templates/media.html.ep Normal file
View file

@ -0,0 +1,37 @@
% layout "main";
<div class="layout-flex-box media">
<div class="media-metadata">
% if ($tags->@* == 0) {
<p>Non tags yet. &gt;_&lt;</p>
% } else {
<dl>
% for my $entry (tags_by_kind $tags) {
% next if $entry->{tags}->@* == 0;
<dt><%= $entry->{kind} %></dt>
% for my $tag ($entry->{tags}->@*) {
<dd><%= link_for_tag $tag %> <%= $tag->{count} %></dd>
% }
% }
</dl>
% }
<dl>
<dt>ID</dt>
<dd><%= $media->{id} %></dd>
<dt>Original filename</dt>
<dd><%= $media->{filename} %></dd>
<dt>Content-type</dt>
<dd><%= $media->{content_type} %></dd>
<dt>Upload date</dt>
<dd><%= $media->{upload_datetime} %></dd>
</dl>
</div>
<%= link_to $media->{src} =>
class => "layout-flex-item-fullsize media-item" =>
begin %>
<%= image $media->{src} %>
<% end %>
</div>

9
templates/tags.html.ep Normal file
View file

@ -0,0 +1,9 @@
% layout "main";
<p class="text-center">
% for my $tag ($tags->@*) {
<%= link_for_tag $tag %>(<%= $tag->{count} %>)
% }
</p>
%= include "_pager";